def normalize_config(config, modules):
def work_in(config, module, name):<EOL><INDENT>f = getattr(module, '<STR_LIT>', None)<EOL>if f:<EOL><INDENT>f(config)<EOL><DEDENT><DEDENT>return _walk_config(config, modules, work_in)<EOL>
Normalize configuration values in the entire tree.

    `config` is a dictionary holding the almost-final configuration.
    Each module's
    :method:`yakonfig.configurable.Configurable.normalize_config`
    function is called to make changes such as pushing configuration
    into sub-module configuration blocks and making file paths
    absolute.

    :param dict config: configuration tree to update
    :param modules: modules or Configurable instances to use
    :type modules: iterable of :class:`~yakonfig.configurable.Configurable`