Python нажмите установить допустимые значения для параметра - PullRequest
1 голос
/ 08 марта 2019

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

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

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

2 - Назначениеfiles

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, чтобы установить допустимые значения опции?

1 Ответ

1 голос
/ 08 марта 2019

Вы хотите использовать 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")
...