code: def _make_retry_fields(file_name, metadata, tags, project):
      
      upload_args = {"filename": file_name}
  
      if metadata:
          # format metadata keys as snake case
          new_metadata = {}
  
          for md_key, md_val in metadata.items():
              new_metadata[snake_case(md_key)] = md_val
  
          upload_args["metadata"] = new_metadata
  
      if tags:
          upload_args["tags"] = tags
  
      if project:
          upload_args["project"] = getattr(project, "id", project)
  
      return upload_args
docs: Generate fields to send to init_multipart_upload in the case that a Sample upload via
      fastx-proxy fails.
  
      Parameters
      ----------
      file_name : `string`
          The file_name you wish to associate this fastx file with at One Codex.
      metadata : `dict`, optional
      tags : `list`, optional
      project : `string`, optional
          UUID of project to associate this sample with.
  
      Returns
      -------
      `dict`
          Contains metadata fields that will be integrated into the Sample model created when
          init_multipart_upload is called.