如何使用 click 根据 Python 中另一个参数的值使一个参数可选?
How to make an argument optional based upon another argument's value in Python using click?
我使用 python 中的 click
模块创建了以下 CLI 方法。
import click
@click.command()
@click.argument("name")
@click.option("--provider", "-p", default="aws", help="Cloud Provider")
@click.argument("view", required=True)
def create(name, view, provider):
print name
print view
print provider
if __name__ == '__main__':
create()
我想根据 --provider
获得的值来操作 view
选项。例如,如果 --provider
是 aws
那么 required=True
对于 view
否则 required=False
使 view
可选,而 运行 我的代码。
不需要花哨的东西,像这样就可以了
def create(name, provider, view=None):
if provider == "aws" and view is None:
raise AttributeError("View is required when provider is 'aws'")
我使用 python 中的 click
模块创建了以下 CLI 方法。
import click
@click.command()
@click.argument("name")
@click.option("--provider", "-p", default="aws", help="Cloud Provider")
@click.argument("view", required=True)
def create(name, view, provider):
print name
print view
print provider
if __name__ == '__main__':
create()
我想根据 --provider
获得的值来操作 view
选项。例如,如果 --provider
是 aws
那么 required=True
对于 view
否则 required=False
使 view
可选,而 运行 我的代码。
不需要花哨的东西,像这样就可以了
def create(name, provider, view=None):
if provider == "aws" and view is None:
raise AttributeError("View is required when provider is 'aws'")