Как я могу передать pass_context через более чем 2 вложенных CLI в Click - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу передать объект контекста через 3 вложенные командные строки. Это код:

@click.group()
@click.pass_context
def cli(ctx):
    tracer = trace.Trace(
    ignoredirs=[sys.prefix, sys.exec_prefix],
    trace=0,
    count=1)
    ctx.obj['TRACER'] = tracer
    print(ctx.obj['TRACER'])

@cli.command()
@click.pass_context
def start(ctx):
    click.echo("start coverage")
    tracer = ctx.obj['TRACER']
    tracer.run('main()')
    ctx.obj['TRACER'] = tracer
    print(ctx.obj['TRACER'])

@cli.command()
@click.pass_context
def end(ctx):
    print(ctx.obj['TRACER'])
    tracer = ctx.obj['TRACER']
    r = tracer.results()
    r.write_results(show_missing=True, coverdir=".")
    click.echo("end coverage")



if __name__ == '__main__':
    cli(obj={})

трассировка в начале отличается от таковой в конце.Другими словами, адрес tracer в cli и start одинаков, но отличается от tracer между cli и end.Как передать один и тот же трассер между cli, start и end?

...