<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save( project: 'projects.Project', write_list: typing.List[tuple] = None ) -> typing.List[tuple]: """ Computes the file write list for the current state of the project if no write_list was specified in the arguments, and then writes each entry in that list to disk. :param project: The project to be saved :param write_list: The file writes list for the project if one already exists, or None if a new writes list should be computed :return: The file write list that was used to save the project to disk """


    try:
        writes = (
            to_write_list(project)
            if write_list is None
            else write_list.copy()
        )
    except Exception as err:
        raise

    environ.systems.remove(project.output_directory)
    os.makedirs(project.output_directory)

    file_io.deploy(writes)
    return writes