Как установить значение по умолчанию для параметров с несколькими значениями

Я хочу что-то вроде этого:

import click

@click.command()
@click.option("-r", "--range", nargs=2, type=int, default=(1,2), show_default=True)
def scale(range):
   print "scale to %d - %d" % range

if __name__ == '__main__':
   scale()

Но значение по умолчанию для опции нескольких значений здесь не работает. Как это сделать правильно?

1 ответ

Решение

Теперь это реализовано в master и будет общедоступно после выхода v3. Он будет работать так, как вы написали, передавая итерируемый default=, nargs= а также multiple=True поддерживаются, индивидуально и вместе.

@click.command()
@click.option('--foo', default=[23, 42], type=click.FLOAT, multiple=True)
def cli(foo):
    for item in foo:
        click.echo(item)

@click.command()
@click.option('--arg', default=((1, 2), (3, 4)), nargs=2, multiple=True, type=click.INT)
def cli(arg):
    for item in arg:
        click.echo('<%d|%d>' % item)
Другие вопросы по тегам