<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_options(files, env_prefix='CONFPY', strict=True):
 """Parse configuration options and return a configuration object. Args: files (iter of str):
 File paths which identify configuration files. These files are processed in order with values in later files overwriting values in earlier files. env_prefix (str):
 The static prefix prepended to all options when set as environment variables. The default is CONFPY. strict (bool):
 Whether or not to parse the files in strict mode. Returns: confpy.core.config.Configuration: The loaded configuration object. Raises: MissingRequiredOption: If a required option is not defined in any file. NamespaceNotRegistered: If a file contains a namespace which is not defined. OptionNotRegistered: If a file contains an option which is not defined but resides under a valid namespace. UnrecognizedFileExtension: If there is no loader for a path. """

    return check_for_missing_options(
        config=set_cli_options(
            config=set_environment_var_options(
                config=configuration_from_paths(
                    paths=files,
                    strict=strict,
                ),
                prefix=env_prefix,
            ),
        )
    )