docs: def clear_range(self, share_name, directory_name, file_name, start_range,
                      end_range, timeout=None):
          '''
          Clears the specified range and releases the space used in storage for 
          that range.
           
          :param str share_name:
              Name of existing share.
          :param str directory_name:
              The path to the directory.
          :param str file_name:
              Name of existing file.
          :param int start_range:
              Start of byte range to use for clearing a section of the file.
              The range can be up to 4 MB in size.
              The start_range and end_range params are inclusive.
              Ex: start_range=0, end_range=511 will download first 512 bytes of file.
          :param int end_range:
              End of byte range to use for clearing a section of the file.
              The range can be up to 4 MB in size.
              The start_range and end_range params are inclusive.
              Ex: start_range=0, end_range=511 will download first 512 bytes of file.
          :param int timeout:
              The timeout parameter is expressed in seconds.
          '''
          _validate_not_none('share_name', share_name)
          _validate_not_none('file_name', file_name)
          request = HTTPRequest()
          request.method = 'PUT'
          request.host = self._get_host()
          request.path = _get_path(share_name, directory_name, file_name)
          request.query = [
              ('comp', 'range'),
              ('timeout', _int_to_str(timeout)),
          ]
          request.headers = [
              ('Content-Length', '0'),
              ('x-ms-write', 'clear'),
          ]
          _validate_and_format_range_headers(
              request, start_range, end_range)
  
          self._perform_request(request)