如何使用click在Python中基于另一个参数的值使参数成为可选参数?

时间:2019-09-11 20:32:44

标签: python python-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()

我想根据对view获得的值来操纵--provider选项。例如,如果--provideraws,则required=True代表view,否则required=False使view是可选的,在运行我的代码时。

1 个答案:

答案 0 :(得分:1)

不需要任何花哨的东西,像这样的东西会起作用

def create(name, provider, view=None):
    if provider == "aws" and view is None:
        raise AttributeError("View is required when provider is 'aws'")