当前,我正在构建一个CLI工具,我想给它这种形式的表格。
usage: PROG SUBPARSER [-h]
(-l {optionA,optionB,optionC} | -s TERM [-a, [-b, [-c]]])
我正在做的是我有一个主要的cli
模块,它将从我要公开给用户的所有模块中导入所有arguments_parser函数,并将其动态动态添加为{ {1}}
下面是python代码的功能,该功能将解析器添加到主解析器中,该解析器是来自sub parsers
类型的对象,可以是根解析器,也可以是子解析器。 (我对每个模块都这样做,因此它们的方法作为CLI公开)。
现在我要在这种特殊情况下要做的是让命令ArgumentParser
带有第一个参数PROG
,该命令具有两个(可能更多)互斥的参数序列(而不创建新的子解析器),说我有两个函数,SUBPARSER
和search
搜索和列表可能具有通用参数(将向子解析器而不是组),但也有标记和参数专用于list
或--list
,以便进行构建像
--search
我尝试将具有互斥和常规组的嵌套组添加到解析器中,但它不允许我(或至少我没有找到方法)具有多个参数的互斥组,而不是只是一个标志或属性。
到目前为止,这是我所掌握的,不会崩溃,并且可以有效地运行。
PROG SUBARSER --list optionA -a -o -b
PROG SUBARSER --list optionA -a -o
PROG SUBARSER --list optionA -a -b
PROG SUBARSER --list optionA -a
PROG SUBARSER --list optionA
PROG SUBARSER --search TERM -a -k
PROG SUBARSER --search TERM -c
PROG SUBARSER --search TERM
usage: PROG SUBPARSER [-h]
[-l {all,draft,staged,publish,build,not-build} | -s SEARCH]
请不要介意帮助字符串。
有帮助吗?