X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=config.py;h=fc19f3d70a89483bf8d0f35e8601a220beea69d6;hb=aad84a3abe06d127918d09f2ad3b8f4264a9d02b;hp=574449f54f7dc57bce107f071affa126d15a00da;hpb=b10d30a46e601c9ee1f843241f2d69a1f90f7a94;p=python_utils.git diff --git a/config.py b/config.py index 574449f..fc19f3d 100644 --- a/config.py +++ b/config.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 -"""Global configuration driven by commandline arguments (even across -different modules). Usage: +"""Global configuration driven by commandline arguments, environment variables +and saved configuration files. This works across several modules. + +Usage: module.py: ---------- @@ -36,7 +38,8 @@ different modules). Usage: config.parse() # Very important, this must be invoked! If you set this up and remember to invoke config.parse(), all commandline - arguments will play nicely together: + arguments will play nicely together. This is done automatically for you + if you're using the bootstrap module's initialize wrapper. % main.py -h usage: main.py [-h] @@ -119,14 +122,14 @@ group.add_argument( '--config_dump', default=False, action='store_true', - help='Display the global configuration on STDERR at program startup.', + help='Display the global configuration (possibly derived from multiple sources) on STDERR at program startup.', ) group.add_argument( '--config_savefile', type=str, metavar='FILENAME', default=None, - help='Populate config file compatible with --config_loadfile to save config for later use.', + help='Populate config file compatible with --config_loadfile to save global config for later use.', ) @@ -139,7 +142,10 @@ def is_flag_already_in_argv(var: str): def parse(entry_module: Optional[str]) -> Dict[str, Any]: - """Main program should call this early in main()""" + """Main program should call this early in main(). Note that the + bootstrap.initialize wrapper takes care of this automatically. + + """ global config_parse_called if config_parse_called: return config @@ -162,8 +168,8 @@ def parse(entry_module: Optional[str]) -> Dict[str, Any]: reordered_action_groups.insert(0, group) args._action_groups = reordered_action_groups - # Examine the environment variables that match known flags. For a - # flag called --example_flag the corresponding environment + # Examine the environment for variables that match known flags. + # For a flag called --example_flag the corresponding environment # variable would be called EXAMPLE_FLAG. usage_message = args.format_usage() optional = False