基于互斥组参数的条件子解析器

conditional subparser based on mutually exclusive group argument

我正在使用我的代码扩展 credstash 中的代码:

https://github.com/willcrain1/credstash

我的问题是我想添加一个必需的参数,但前提是您 select -b 作为互斥项之一(您必须提供存储桶名称以及 'credstash' 名称)所以 s3 需要 2 个参数,其中 dynamodb - -t 参数只需要一个(只是 table 名称)。

现在代码已经包含了您要执行的操作的子解析器。我是 python 的新手,也是 argparse 的新手,所以任何有关如何添加条件参数 -c Credstash 但仅在使用 -b 时的有效方法的建议都值得赞赏。

usage: credstash [-h] [-r REGION] [-b BUCKET | -t TABLE] [-p PROFILE | -n ARN] {delete,get,getall,list,put,setup} ...

从我的评论中复制:

尝试为 -b 设置 nargs=2。然后用法看起来像

[-b BUCKET BUCKET | -t TABLE]

添加 metavar=('bucket', 'credstash')(元组,而不是列表)应将用法更改为:

[-b bucket credstach | -t TABLE]