【发布时间】:2016-10-22 08:32:36
【问题描述】:
我正在尝试弄清楚如何使用 pythons arparse 库在子解析器场景中添加全局选项。
现在我的代码如下所示:
def parseArgs(self):
parent_parser = argparse.ArgumentParser(add_help=False)
parent_parser.add_argument('--debug', default=False, required=False,
action='store_true', dest="debug", help='debug flag')
main_parser = argparse.ArgumentParser()
main_parser.add_argument('--debug', default=False, required=False,
action='store_true', dest="debug", help='debug flag')
service_subparsers = main_parser.add_subparsers(title="category",
dest="category")
agent_parser = service_subparsers.add_parser("agent",
help="agent commands", parents=[parent_parser])
return main_parser.parse_args()
这适用于命令行./test --help 并且--debug 选项被列为全局:
但是,当我使用命令行./test agent --help 触发代理子解析器时,--debug 选项现在不再列为全局选项,而是列为子解析器的选项。此外,它现在必须指定为 ./test agent --debug 和 ./test --debug agent 不再有效:
我想做的是将--debug 定义为全局的,以便始终可以为所有子解析器指定它,并在帮助输出中适当地列出。
【问题讨论】: