Приложение My Click 7.0 имеет одну группу с несколькими командами, вызываемыми основной функцией cli
следующим образом:
import click
@click.group()
@click.pass_context
def cli(ctx):
"This is cli helptext"
click.echo('cli called')
click.echo('cli args: {0}'.format(ctx.args))
@cli.group(chain=True)
@click.option('-r', '--repeat', default=1, type=click.INT, help='repeat helptext')
@click.pass_context
def chainedgroup(ctx, repeat):
"This is chainedgroup helptext"
for _ in range(repeat):
click.echo('chainedgroup called')
click.echo('chainedgroup args: {0}'.format(ctx.args))
@chainedgroup.command()
@click.pass_context
def command1(ctx):
"This is command1 helptext"
print('command1 called')
print('command1 args: {0}'.format(ctx.args))
@chainedgroup.command()
@click.pass_context
def command2(ctx):
"This is command2 helptext"
print('command2 called')
print('command2 args: {0}'.format(ctx.args))
Пробег:
$ testcli --help
$ testcli chainedgroup --help
$ testcli chainedgroup command1 --help
Текст справки отображается должным образом, за исключением того, что родительские функции непреднамеренно выполняются в процессе. Одной условной проверки, чтобы увидеть, содержится ли '--help'
в ctx.args
, должно быть достаточно для решения этой проблемы, но кто-нибудь знает, как / когда передается '--help'
? Потому что с этим кодом ctx.args
пусто каждый раз.