22 """Parses arguments until double hyphen."""
24 main_parser = ArgumentParser(add_help=
False)
26 main_parser.add_argument(
"-h",
"--help", action=
"store_true")
27 main_parser.add_argument(
"-t",
"--tutorial", nargs=
"?", action=Tutorial)
28 main_parser.add_argument(
"-v",
"--verbose", action=
"store_true")
29 main_parser.add_argument(
"-i",
"--input_ext", nargs=1, default=[], action=
"extend")
30 main_parser.add_argument(
"-o",
"--output_ext", nargs=1, default=[], action=
"extend")
35 expl_args, pos_args = main_parser.parse_known_intermixed_args(sys.argv[1:])
37 if len(sys.argv) == 1
or expl_args.help:
39 "helper exec [input(s)] [output(s)] [args] [-i .ext] [-o .ext] [-j] [-h] [-v] -- [exec options]"
43 if not "--" in pos_args:
44 raise ValueError(
"Expecting values after double-hyphen")
46 sep = pos_args.index(
"--")
47 helper_pos_args = pos_args[:sep]
48 cmd_pos_args = pos_args[sep + 1 :]
51 print(
"Explicit arguments: " +
" ".
join(helper_pos_args))
52 print(
"Positional arguments: " +
" ".
join(cmd_pos_args))
54 return expl_args, helper_pos_args, cmd_pos_args