def get_global_config(*args):
global _config_cache<EOL>c = _config_cache<EOL>if c is None:<EOL><INDENT>if len(args) == <NUM_LIT:0>:<EOL><INDENT>args = (None,)<EOL><DEDENT>raise KeyError(args[<NUM_LIT:0>])<EOL><DEDENT>for a in args:<EOL><INDENT>c = c[a]<EOL><DEDENT>return c<EOL>
Get (a subset of) the global configuration.

    If no arguments are provided, returns the entire configuration.
    Otherwise, start with the entire configuration, and get the item
    named by the first parameter; then search that for the second
    parameter; and so on.

    :param args: configuration name path to fetch
    :return: configuration item or subtree
    :raise KeyError: if an argument is missing