Захват вывода при вызове команды 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)
Другие вопросы по тегам