From d1527ef3d8ca20c325afdb89afb59b2bced352f4 Mon Sep 17 00:00:00 2001 From: elicn Date: Thu, 22 Apr 2021 14:38:14 +0300 Subject: [PATCH] Fix env and verbose handling --- qltool | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/qltool b/qltool index 307a6aa4..84790df0 100755 --- a/qltool +++ b/qltool @@ -26,22 +26,23 @@ def read_file(fname: str): return content -def __arg_env(argval: str) -> dict: - if argval: - if os.path.exists(argval): - with open(argval, 'rb') as f: - env = pickle.load(f) - else: - env = ast.literal_eval(argval) - else: +class __arg_env(argparse.Action): + def __call__(self, parser, namespace, values, option_string): env = {} - return env + if os.path.exists(values): + with open(values, 'rb') as f: + env = pickle.load(f) + else: + env = ast.literal_eval(values) -def __arg_verbose(argval: str) -> QL_VERBOSE: - return verbose_map[argval] + setattr(namespace, self.dest, env) -def handle_code(options): +class __arg_verbose(argparse.Action): + def __call__(self, parser, namespace, values, option_string): + setattr(namespace, self.dest, verbose_map[values]) + +def handle_code(options: argparse.Namespace): if options.format == 'hex': if options.input is not None: print ("Load HEX from ARGV")