code: def stream_upload(self, data, callback):
          
          while True:
              chunk = data.read(self.config.connection.data_block_size)
              if not chunk:
                  break
              if callback and callable(callback):
                  callback(chunk, response=None)
              yield chunk
docs: Generator for streaming request body data.
  
          :param data: A file-like object to be streamed.
          :param callback: Custom callback for monitoring progress.