Я хочу передать объект контекста через 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?