diff options
Diffstat (limited to 'src/ee/tools/__init__.py')
-rw-r--r-- | src/ee/tools/__init__.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/ee/tools/__init__.py b/src/ee/tools/__init__.py index 112e306..0d4ef14 100644 --- a/src/ee/tools/__init__.py +++ b/src/ee/tools/__init__.py @@ -1,4 +1,6 @@ +import argparse import os.path +import sys from pathlib import Path from typing import Union @@ -34,3 +36,34 @@ def mk_dirs(path: Union[str, Path]): if not os.path.isdir(dirname): os.mkdir(dirname) + + +def add_default_argparse_group(parser: argparse.ArgumentParser): + group = parser.add_argument_group("common") + + # Ideally these would not be shown when the default output is shown (for example when missing a required argument), + # only when --help is given. + + group.add_argument("-v", "--verbose", + help="Verbose output", + dest="verbose", action="store_const", const=True) + + group.add_argument("--log", + help="Set log level", + choices=["warn", "info", "debug"], + dest="log", + metavar="LEVEL") + + +def process_default_argparse_group(args): + if args.verbose is not None and args.log is not None: + print("Can't specify both -v and --log", file=sys.stderr) + sys.exit(1) + + log_level = args.log + if args.verbose: + log_level = "debug" + + log_level = log_level if log_level is not None else "info" + + log.set_level(log_level) |