summaryrefslogtreecommitdiff
path: root/config.py
diff options
context:
space:
mode:
authorScott <[email protected]>2022-01-07 11:14:29 -0800
committerScott <[email protected]>2022-01-07 11:14:29 -0800
commite8671a716da868332d3ac1f66d4d2f7f8d33fc28 (patch)
treeb62a841528cfc3bc64963666143083fcdac7c975 /config.py
parent5f75cf834725ac26b289cc5f157af0cb71cd5f0e (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.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/config.py b/config.py
index ea5f68a..dc0042d 100644
--- a/config.py
+++ b/config.py
@@ -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.