点击:如何制作Argument mutex

Click: how to make Argument mutex

我正在使用漂亮的 click 库编写 CLI

我想实现的用例是这样的:

cmd <arg> <option --list>

arg: required
--list: optional

理由

但是... --list 仅显示可用的参数 所以我的目的是在这个用例中使所有参数都是可选的。

我是从 this request on the official repo, and a 开始的,非常相似,但它只适用于选项。

我还没有找到一个优雅的解决方案,因为 Arguments 的工作方式不同, 在我的真实案例中,我有很多参数和选项,因此不可能将所有参数都减少到选项中。

从点击的角度来看,这是解决此类问题的错误方法。 正确的方法是使用 here

中描述的选项优先级

以这种方式,--list 选项将被视为 --version。