human
I wrote the below code

    module_configuration = copy.deepcopy(_module_config.get(module_generator.name, {}))
    module_file_actions = module_configuration.pop('all', {})
    for (spec, conf) in module_configuration.items():
        override = False
        if spec.endswith(':'):
            spec = spec.strip(':')
            override = True
        if module_generator.spec.satisfies(spec):
            if override:
                module_file_actions = {}
            update_dictionary_extending_lists(module_file_actions, conf)
    module_file_actions['hash_length'] = module_configuration.get('hash_length', 7)
    module_file_actions['autoload'] = dependencies(module_generator.spec, module_file_actions.get('autoload', 'none'))
    module_file_actions['prerequisites'] = dependencies(module_generator.spec, module_file_actions.get('prerequisites', 'none'))
    environment_actions = module_file_actions.pop('environment', {})
    env = EnvironmentModifications()
    def process_arglist(arglist):
        if (method == 'unset'):
            for x in arglist:
                (yield (x,))
        else:
            for x in iteritems(arglist):
                (yield x)
    for (method, arglist) in environment_actions.items():
        for args in process_arglist(arglist):
            getattr(env, method)(*args)
    return (module_file_actions, env)

What's a good function header?
assistant
#Here's a good function header.

def parse_config_options(module_generator):