忽略某些标志的空参数

时间:2016-07-30 14:18:24

标签: python click command-line-interface

我有一个带有1个参数的命令,可以带几个标志。

@click.command()
@click.argument('item')
@click.option('--list-items', help='list items', is_flag=True)
def cli(item, list_items):
    if list_items:
        click.echo(ITEMS)
        return

目前它返回:

Error: Missing argument "item".

即使我没有提供论证,我怎样才能访问--list-items的功能?就像--help flag一样。

2 个答案:

答案 0 :(得分:1)

您必须item可选:

@click.argument('item', required=False)

然后在函数中进行错误处理(例如,引发BadParameter() exeception)。

答案 1 :(得分:0)

你把它作为必修参数,通过添加required = False或添加默认值使其成为可选项