From ec5cc9bab23902f68e6344e6c80aa967c88a6aaf Mon Sep 17 00:00:00 2001 From: Jameson Graef Rollins <jameson.rollins@ligo.org> Date: Wed, 16 Dec 2020 10:00:43 -0800 Subject: [PATCH] cli: better arg parsing error handling --- gwinc/__main__.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gwinc/__main__.py b/gwinc/__main__.py index 0ee0c8f2..0e231fb1 100644 --- a/gwinc/__main__.py +++ b/gwinc/__main__.py @@ -141,8 +141,11 @@ def main(): if args.ifo: for paramval in args.ifo: - param, val = paramval.split('=', 1) - ifo[param] = float(val) + try: + param, val = paramval.split('=', 1) + ifo[param] = float(val) + except ValueError: + parser.error("Improper IFO parameter specification.") if args.yaml: if not ifo: @@ -178,6 +181,8 @@ def main(): for path in args.save: if os.path.splitext(path)[1] in io.DATA_SAVE_FORMATS: out_data_files.add(path) + else: + parser.exit(2, "Save file extension not specified.\n") out_plot_files = set(args.save) - out_data_files if args.plot or out_plot_files: @@ -215,9 +220,12 @@ def main(): for param in args.range.split(','): if not param: continue - p, v = param.split('=') - if not v: - raise ValueError('missing parameter value "{}"'.format(p)) + try: + p, v = param.split('=') + if not v: + raise ValueError + except ValueError: + parser.error("Improper range parameter specification.") try: v = float(v) except ValueError: -- GitLab