[我在解析某些CLI选项时与Python Click库有一个难题。
我希望有一个选项可以自己充当标志,但是可以选择接受字符串值。例如:
[$ myscript
⇒选项= False
[$ myscript -o
⇒选项= True
[$ myscript -o foobar
⇒选项= Foobar
此外,我希望该选项“急切”(例如,以“点击”一词在回调后中止执行,但是现在可以忽略。)>
当我这样定义参数时:
@click.command() @click... @click.option("-o", "option", is_flag=True, default=False) def myscript(..., option):
我实现了示例1和2,但是3自然是不可能的,因为该标志仅检测到存在/不存在。
当我这样定义参数时:
@click.command() @click... @click.option("-o", "--option", default="") # Let's assume I will cast empty string to False def myscript(..., option):
我达到1和3,但是2会失败,并带有
Error: -c option requires an argument
。
这似乎并不像是世界之外的情况,但是我似乎无法实现这一目标或找到表现出这种行为的示例。
我如何定义一个像下面这样解析的@click.option
:
False
True
设置但没有值str
当设置值时解析某些CLI选项时,我对Python Click库感到困惑。我希望有一个选项可以自己充当标志,但是可以选择接受字符串值。例如:$ myscript⇒option = ...
我设法实现此行为的一种方法是通过实际使用以下参数。我将其发布为一种变通方法,同时尝试查看是否可以使用某个选项来完成此操作,并相应地更新我的信息