diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2019-05-27 23:05:06 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2019-05-27 23:15:11 +0200 |
commit | 1955eb67e57fbd93d4d8fd313445d84640b78377 (patch) | |
tree | 097f7a3ed94511c50d8e985d9b48cb49f6172221 /src/ee/tools/__init__.py | |
parent | d8bb3aa6f51b331ef6ce3558707627be7a50c7ad (diff) | |
download | ee-python-1955eb67e57fbd93d4d8fd313445d84640b78377.tar.gz ee-python-1955eb67e57fbd93d4d8fd313445d84640b78377.tar.bz2 ee-python-1955eb67e57fbd93d4d8fd313445d84640b78377.tar.xz ee-python-1955eb67e57fbd93d4d8fd313445d84640b78377.zip |
all tools: Creating a shared group of argument options. Processing this
shared group too, changing the log level when logging options are
specified.
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) |