<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_env(resultdir=None):
 """Loads the env from `resultdir` if not `None` or makes a new one. An Enos environment handles all specific variables of an experiment. This function either generates a new environment or loads a previous one. If the value of `resultdir` is `None`, then this function makes a new environment and return it. If the value is a directory path that contains an Enos environment, then this function loads and returns it. In case of a directory path, this function also rereads the configuration file (the reservation.yaml) and reloads it. This lets the user update his configuration between each phase. Args: resultdir (str):
 directory path to load the env from. """

    env = {
        "config":      {},          # The config
        "resultdir":   "",          # Path to the result directory
        "config_file": "",          # The initial config file
        "nodes":       {},          # Roles with nodes
        "phase":       "",          # Last phase that have been run
        "user":        "",          # User id for this job
        "cwd":         os.getcwd()  # Current Working Directory
    }

    if resultdir:
        env_path = os.path.join(resultdir, "env")
        if os.path.isfile(env_path):
            with open(env_path, "r") as f:
                env.update(yaml.load(f))
                logger.debug("Loaded environment %s", env_path)

        if "config_file" in env and env["config_file"] is not None:
            # Resets the configuration of the environment
            if os.path.isfile(env["config_file"]):
                with open(env["config_file"], "r") as f:
                    env["config"].update(yaml.load(f))
                    logger.debug("Reloaded config %s", env["config"])

    return env