diff options
| author | Scott <[email protected]> | 2022-01-07 11:14:29 -0800 |
|---|---|---|
| committer | Scott <[email protected]> | 2022-01-07 11:14:29 -0800 |
| commit | e8671a716da868332d3ac1f66d4d2f7f8d33fc28 (patch) | |
| tree | b62a841528cfc3bc64963666143083fcdac7c975 /config.py | |
| parent | 5f75cf834725ac26b289cc5f157af0cb71cd5f0e (diff) | |
Make logging optionally remove global handlers added by (shitty) pip
modules. Make config optionally halt on unrecognized arguments.
Make profanity filter smarter.
Diffstat (limited to 'config.py')
| -rw-r--r-- | config.py | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -133,6 +133,16 @@ group.add_argument( default=None, help='Populate config file compatible with --config_loadfile to save global config for later use.', ) +group.add_argument( + '--config_rejects_unrecognized_arguments', + default=False, + action='store_true', + help=( + 'If present, config will raise an exception if it doesn\'t recognize an argument. The ' + + 'default behavior is to ignore this so as to allow interoperability with programs that ' + + 'want to use their own argparse calls to parse their own, separate commandline args.' + ) +) def is_flag_already_in_argv(var: str): @@ -249,6 +259,12 @@ def parse(entry_module: Optional[str]) -> Dict[str, Any]: # future argument parsers. For example, unittest_main in python # has some of its own flags. If we didn't recognize it, maybe # someone else will. + if len(unknown) > 0: + if config['config_rejects_unrecognized_arguments']: + raise Exception( + f'Encountered unrecognized config argument(s) {unknown} with --config_rejects_unrecognized_arguments enabled; halting.' + ) + saved_messages.append(f'Config encountered unrecognized commandline arguments: {unknown}') sys.argv = sys.argv[:1] + unknown # Check for savefile and populate it if requested. |
