Получение словаря словаря от argparse - PullRequest
1 голос
/ 07 ноября 2019

У меня есть файл 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 также не является решением, поскольку оно является эксклюзивным для подпарсеров.

...