Щелчок python устанавливает допустимые значения для параметра

Я создал команду Click, которая будет копировать файлы из источника в место назначения.

Команда принимает 3 параметра:

1 - Источник файлов

2 - Назначение файлов

3 - Режим передачи (локальный, ftp)

import click    

@click.group()
def cli():
    pass

@cli.command()
@click.argument('source')
@click.argument('destination')
@click.option('--mode', required = True)
def copy(source, destination, mode):

    print("copying files from " + source + " to " + destination + "using " + mode + " mode")


if __name__ == '__main__':
    cli() 

Когда я вызываю скрипт, используя это: command.py copy "C:/" "D:/" --mode=network

Я получаю следующий вывод: copying files from C:/ to D:/using network mode

Как видите, в качестве режима я указал сеть, но мне нужны только два варианта: локальный или ftp.

Итак, как я могу использовать Click для установки допустимых значений параметра?


person Amine Messaoudi    schedule 08.03.2019    source источник


Ответы (1)


Вы хотите использовать click.Choice

@cli.command()
@click.argument('source')
@click.argument('destination')
@click.option('--mode', type=click.Choice(['local', 'ftp']), required = True)
def copy(source, destination, mode):
    print("copying files from " + source + " to " + destination + "using " + mode + " mode")
person pistolpete    schedule 08.03.2019