#!/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, но безуспешно.
Большое спасибо!