docs: def put(f, s3_path, multipart_chunk_size_mb=500, logger=None):
      '''
      Uploads a single file to S3, using s3cmd.
  
      Args:
  
          f (str): Path to a single file.
  
          s3_path (str): The S3 path, with the filename omitted. The S3 filename
              will be the basename of the ``f``. For example::
  
                  put(f='/path/to/myfile.tar.gz', s3_path='s3://my_bucket/path/to/')
  
              will result in an uploaded S3 path of ``s3://my_bucket/path/to/myfile.tar.gz``
      '''
      if not logger:
          logger = log.get_logger('s3')
      fname = os.path.basename(f)
      target = os.path.join(s3_path, fname)
      s3cmd_cline = 's3cmd put {} {} --multipart-chunk-size-mb {}'.format(f,
                                                                          target,
                                                                          multipart_chunk_size_mb)
      print_put_info(fname, target, logger)
      s3cmd = sp.Popen(s3cmd_cline,
                       stdout=sp.PIPE,
                       stderr=sp.PIPE,
                       shell=True)
      stdout, stderr = s3cmd.communicate()