Метод option
Метод option применяется к объекту команды или группы
Click и регистрирует опцию командной строки. Первым
параметром передаётся список имён опции, затем идут
именованные аргументы, такие как default,
help, type, required, is_flag
и другие. Опция становится доступна в функции-обработчике
через параметр, имя которого совпадает с самым длинным
именем опции без префиксов --.
Синтаксис
@click.command()
@click.option(param_decls, [default], [help], [type], [required], [is_flag])
Пример
Давайте добавим простую опцию --name к команде:
import click
@click.command()
@click.option('--name', default='user', help='User name.')
def hello(name):
click.echo(f'hello {name}')
if __name__ == '__main__':
hello()
Результат выполнения команды без опции:
<+terminal+>
python app.py
hello user
<-terminal+>
Результат выполнения команды с опцией:
<+terminal+>
python app.py --name abcde
hello abcde
<-terminal+>
Пример
Давайте сделаем опцию-флаг --verbose:
import click
@click.command()
@click.option('--verbose', is_flag=True, help='Enable verbose mode.')
def run(verbose):
if verbose:
click.echo('verbose mode enabled')
else:
click.echo('verbose mode disabled')
if __name__ == '__main__':
run()
Результат выполнения команды с флагом:
<+terminal+>
python app.py --verbose
verbose mode enabled
<-terminal+>
Пример
Давайте добавим опцию с типом int и значением по умолчанию:
import click
@click.command()
@click.option('--count', default=1, type=int, help='Number of times.')
def repeat(count):
for i in range(count):
click.echo('hello')
if __name__ == '__main__':
repeat()
Результат выполнения команды с опцией --count 3:
<+terminal+>
python app.py --count 3
hello
hello
hello
<-terminal+>