Command line interface
You can execute arbitrary scripts with instrumentation enabled using the pyc
command line tool (installed as both pyc and pyccolo). For example, to
run some script bar.py under the optional-chaining example tracer:
# bar.py
bar = None
# prints `None` since bar?.foo coalesces to `None`
print(bar?.foo)
$ pyc bar.py -t pyccolo.examples.optional_chaining.ScriptOptionalChainer
You can also run bar as a module (indeed, pyc does this internally when
given a file):
$ pyc -m bar -t pyccolo.examples.optional_chaining.ScriptOptionalChainer
The -t value is a fully-qualified reference to a tracer class. Note that we
use ScriptOptionalChainer rather than the bare OptionalChainer: because
pyc runs your file through Pyccolo’s import machinery, the tracer must opt
that file in by overriding
should_instrument_file() (which
ScriptOptionalChainer does, and OptionalChainer does not — see
Instrumenting imported modules).
You can specify multiple tracer classes after -t; in case you were not
already aware, Pyccolo is composable! (see Composing tracers).
Options
Pyccolo command line tool.
usage: pyc [-h] [-m MODULE] -t TRACER [TRACER ...] [script]
Positional Arguments
- script
Script to run with instrumentation.
Named Arguments
- -m, --module
The module to run, if script not specified.
- -t, --tracer
Tracers to use for instrumentation.