From 369d3d766d4fd48ead6e7ce194010dda9cb936dd Mon Sep 17 00:00:00 2001 From: Thomas Kluyver <thomas@kluyver.me.uk> Date: Thu, 9 Jul 2020 16:19:19 +0100 Subject: [PATCH] Let errors parsing 'intelli-list' propagate --- xfel_calibrate/calibrate.py | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/xfel_calibrate/calibrate.py b/xfel_calibrate/calibrate.py index b865c1384..52470a648 100755 --- a/xfel_calibrate/calibrate.py +++ b/xfel_calibrate/calibrate.py @@ -101,6 +101,7 @@ def make_intelli_list(ltype): """ class IntelliListAction(argparse.Action): + element_type = ltype def __init__(self, *args, **kwargs): super(IntelliListAction, self).__init__(*args, **kwargs) @@ -109,24 +110,22 @@ def make_intelli_list(ltype): parsed_values = [] values = ",".join(values) - try: - if isinstance(values, str): - for rcomp in values.split(","): - if "-" in rcomp: - start, end = rcomp.split("-") - parsed_values += list(range(int(start), int(end))) - else: - parsed_values += [int(rcomp)] - elif isinstance(values, (list, tuple)): - parsed_values = values - else: - parsed_values = [values, ] - except Exception as e: - print('ERROR:', e) - parsed_values = [self.ltype(p) for p in parsed_values] + if isinstance(values, str): + for rcomp in values.split(","): + if "-" in rcomp: + start, end = rcomp.split("-") + parsed_values += list(range(int(start), int(end))) + else: + parsed_values += [int(rcomp)] + elif isinstance(values, (list, tuple)): + parsed_values = values + else: + parsed_values = [values, ] + + parsed_values = [self.element_type(p) for p in parsed_values] print("Parsed input {} to {}".format(values, parsed_values)) setattr(namespace, self.dest, parsed_values) - IntelliListAction.ltype = ltype + return IntelliListAction -- GitLab