Захват вывода при вызове команды click внутри другой команды
Я звоню create
команда внутри run
команда, но не может захватить вывод create
, result
Нет Я что-то пропустил?
Как правильно вызвать другую команду и перехватить ее вывод?
@click.command(
'create')
@click.pass_context
def create(ctx):
...
click.echo(click.style(response['name'], fg='green'))
return response['name']
@click.command(
'run')
@click.pass_context
def run(ctx):
result = ctx.invoke(create)
1 ответ
Контексты кликов связаны с родительскими, поэтому я просто передаю значение родительскому контексту.
@click.command('create')
@click.pass_context
def create(ctx):
...
click.echo(click.style(response['name'], fg='green'))
if 'invoked_by_subcommand' in ctx.parent.__dict__:
ctx.parent.return = response['output']
@click.command('run')
@click.pass_context
def run(ctx):
ctx.invoked_by_subcommand = True
result = ctx.invoke(create)