From 3337696369eb5bd363f6aa1b6fee108a0b4fdfc6 Mon Sep 17 00:00:00 2001 From: Thomas Kluyver <thomas@kluyver.me.uk> Date: Fri, 10 Sep 2021 15:57:59 +0100 Subject: [PATCH] Simplify getting command line arguments to fill notebook template path --- src/xfel_calibrate/calibrate.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/xfel_calibrate/calibrate.py b/src/xfel_calibrate/calibrate.py index 9d8fade75..82fbcdd68 100755 --- a/src/xfel_calibrate/calibrate.py +++ b/src/xfel_calibrate/calibrate.py @@ -400,21 +400,18 @@ def make_extended_parser() -> argparse.ArgumentParser: # notebook TODO: This is a very hacky workaround, better implementation # is not really possible with the current state of this module user_notebook_path = nb_info["user"]["notebook"] - # Pulls out the variables in the templated path string, so that they - # can be added to the argument parser + # Pull out the variables in the templated path string, and get values + # from command line args (e.g. --proposal 1234 -> {proposal}) user_notebook_variables = [ name for (_, name, _, _) in string.Formatter().parse(user_notebook_path) if name is not None ] - user_notebook_parser = argparse.ArgumentParser() - + user_notebook_parser = argparse.ArgumentParser(add_help=False) for var in user_notebook_variables: user_notebook_parser.add_argument(f"--{var}") - user_notebook_args, _ = user_notebook_parser.parse_known_args( - args=list(filter(lambda x: x != "-h", _)) # Drop help from args - ) + user_notebook_args, _ = user_notebook_parser.parse_known_args() nb_info["notebook"] = user_notebook_path.format(**vars(user_notebook_args)) notebook = nb_info["notebook"] -- GitLab