Вызов вложенных функций щелчка с помощью подкоманд - PullRequest
0 голосов
/ 12 января 2020
#!/usr/bin/env python

import click


@click.group(invoke_without_command=True)
@click.pass_context
def cli(ctx):
    if ctx.invoked_subcommand is None:
        click.echo('I was invoked without subcommand')
    else:
        click.echo('I am about to invoke %s' % ctx.invoked_subcommand)


@cli.command()
@click.option('--test',
              prompt='SYNC ME BABY ONE MORE TIME')
def sync(test):
    click.echo(test)
    second_level()


@click.command()
def second_level():
    print("wtf")


if __name__ == '__main__':
    cli()

приводит к

cli_minimal_working_example.py sync
I am about to invoke sync
SYNC ME BABY ONE MORE TIME: asd
asd
Usage: cli_minimal_working_example.py [OPTIONS]
Try "cli_minimal_working_example.py --help" for help.

Error: Got unexpected extra argument (sync)

Я ожидаю, что я смогу продолжить цепочку команд вторым уровнем.

Как мне этого добиться? Я уже пытался вызвать его с standalone_mode = true или добавить second_level также в группу cli, но безуспешно.

Большое спасибо!

...