aboutsummaryrefslogtreecommitdiff
path: root/src/ee/tools/__init__.py
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2019-05-27 23:05:06 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2019-05-27 23:15:11 +0200
commit1955eb67e57fbd93d4d8fd313445d84640b78377 (patch)
tree097f7a3ed94511c50d8e985d9b48cb49f6172221 /src/ee/tools/__init__.py
parentd8bb3aa6f51b331ef6ce3558707627be7a50c7ad (diff)
downloadee-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__.py33
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)