parameters: (self, bucket, key, fileobj, extra_args=None,
                   subscribers=None)
return_statement: return self._submit_transfer(
              call_args, DownloadSubmissionTask, extra_main_kwargs)
docstring: Downloads a file from S3
  
          :type bucket: str
          :param bucket: The name of the bucket to download from
  
          :type key: str
          :param key: The name of the key to download from
  
          :type fileobj: str or seekable file-like object
          :param fileobj: The name of a file to download or a seekable file-like
              object to download. It is recommended to use a filename because
              file-like objects may result in higher memory usage.
  
          :type extra_args: dict
          :param extra_args: Extra arguments that may be passed to the
              client operation
  
          :type subscribers: list(s3transfer.subscribers.BaseSubscriber)
          :param subscribers: The list of subscribers to be invoked in the
              order provided based on the event emit during the process of
              the transfer request.
  
          :rtype: s3transfer.futures.TransferFuture
          :returns: Transfer future representing the download
docstring_summary: Downloads a file from S3
docstring_tokens: Downloads a file from S3
function: def download(self, bucket, key, fileobj, extra_args=None,
                   subscribers=None):
          """Downloads a file from S3
  
          :type bucket: str
          :param bucket: The name of the bucket to download from
  
          :type key: str
          :param key: The name of the key to download from
  
          :type fileobj: str or seekable file-like object
          :param fileobj: The name of a file to download or a seekable file-like
              object to download. It is recommended to use a filename because
              file-like objects may result in higher memory usage.
  
          :type extra_args: dict
          :param extra_args: Extra arguments that may be passed to the
              client operation
  
          :type subscribers: list(s3transfer.subscribers.BaseSubscriber)
          :param subscribers: The list of subscribers to be invoked in the
              order provided based on the event emit during the process of
              the transfer request.
  
          :rtype: s3transfer.futures.TransferFuture
          :returns: Transfer future representing the download
          """
          if extra_args is None:
              extra_args = {}
          if subscribers is None:
              subscribers = []
          self._validate_all_known_args(extra_args, self.ALLOWED_DOWNLOAD_ARGS)
          call_args = CallArgs(
              bucket=bucket, key=key, fileobj=fileobj, extra_args=extra_args,
              subscribers=subscribers
          )
          extra_main_kwargs = {'io_executor': self._io_executor}
          if self._bandwidth_limiter:
              extra_main_kwargs['bandwidth_limiter'] = self._bandwidth_limiter
          return self._submit_transfer(
              call_args, DownloadSubmissionTask, extra_main_kwargs)
function_tokens: def download ( self , bucket , key , fileobj , extra_args = None , subscribers = None ) : if extra_args is None : extra_args = { } if subscribers is None : subscribers = [ ] self . _validate_all_known_args ( extra_args , self . ALLOWED_DOWNLOAD_ARGS ) call_args = CallArgs ( bucket = bucket , key = key , fileobj = fileobj , extra_args = extra_args , subscribers = subscribers ) extra_main_kwargs = { 'io_executor' : self . _io_executor } if self . _bandwidth_limiter : extra_main_kwargs [ 'bandwidth_limiter' ] = self . _bandwidth_limiter return self . _submit_transfer ( call_args , DownloadSubmissionTask , extra_main_kwargs )