Сначала нажмите команду вызова Python, а затем опции - PullRequest
0 голосов
/ 22 мая 2019

есть ли способ в библиотеке Python Click изменить порядок выполнения?

Я хочу иметь cli my_command --options --options

теперь у меня есть cli --options --options my_command

Я не хочу, чтобы команда вызывалась в конце.

1 Ответ

0 голосов
/ 01 июня 2019

Структура команды щелчка выглядит следующим образом:

command <options> subcommand <subcommand options>

Я не уверен, как бы вы имели две опции с одинаковым именем для одной команды.Однако две опции «--options» применяются к команде «cli», а не к вашей команде «my_command».

Чтобы добиться чего-то похожего на то, что вы хотите:

import click

@click.group()
@click.option('--options/--not-options', default=False)
def cli(options):
    if options:
        click.echo("Recieved options")

@cli.command()
@click.option('--options/--not-options', default=False)
def my_command(options):
    if options:
        click.echo("Recieved options")

if __name__ == '__main__':
    cli(obj={})

Для запускаэто из терминала (имя файла заменяет точку входа команды cli):

python mytool.py --options my-command --options

>>Recieved options
>>Received options
...