<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _make_retry_fields(file_name, metadata, tags, project):
 """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. """

    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