У меня есть файл Python, который выглядит примерно так:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
etc...
args = parser.parse_args()
function_one(a=args.a, b=args.b)
function_two(c=args.c, d=args.d, e=args.e)
Я хотел бы получить следующее:
import argparse
parser = argparse.ArgumentParser()
parser_one = parser.add_parser(name1)
parser_one.add_argument('--a')
parser_two = parser.add_parser(name2)
parser_two.add_argument('--d')
args = parser.parse_args()
Так что args
будет что-то вродесловарь словаря и args.name1
будет обычным NameSpace
.
Это позволило бы мне разделить мой синтаксический анализатор на подпарсер и вызвать функции с помощью:
function_one(**vars(args.name1))
function_two(**vars(args.name2))
Мне известна функция add_argument_group
, но это объединяет аргументы в один NameSpace
после звонка parser_args
.
И add_subparsers
также не является решением, поскольку оно является эксклюзивным для подпарсеров.