code: def prepare_post_parameters(self, post_params=None, files=None):
          
          params = post_params or []
          for key, values in (files or {}).items():
              for maybe_file_or_path in values if isinstance(values, list) else [values]:
                  try:
                      # use the parameter as if it was an open file object
                      data = maybe_file_or_path.read()
                      maybe_file_or_path = maybe_file_or_path.name
                  except AttributeError:
                      # then it is presumably a file path
                      with open(maybe_file_or_path, 'rb') as fh:
                          data = fh.read()
                  basepath = os.path.basename(maybe_file_or_path)
                  mimetype = mimetypes.guess_type(basepath)[0] or 'application/octet-stream'
                  params.append((key, (basepath, data, mimetype)))
          return params
docs: Builds form parameters.
  
          :param post_params: Normal form parameters.
          :param files: File parameters.
          :return: Form parameters with files.