25.10.2 Programming Interface

##
25.10.2 Programming Interface

class `Trace`( | [count=1[, trace=1[, countfuncs=0[, countcallers=0[, ignoremods=()[, ignoredirs=()[, infile=None[, outfile=None]]]]]]]])

  Create an object to trace execution of a single statement or expression. All parameters are optional. count enables counting of line numbers. trace enables line execution tracing. countfuncs enables listing of the functions called during the run. countcallers enables call relationship tracking. ignoremods is a list of modules or packages to ignore. ignoredirs is a list of directories whose modules or packages should be ignored. infile is the file from which to read stored count information. outfile is a file in which to write updated count information.

`run`( | cmd)

  Run cmd under control of the Trace object with the current tracing parameters.

`runctx`( | cmd[, globals=None[, locals=None]])

  Run cmd under control of the Trace object with the current tracing parameters in the defined global and local environments. If not defined, globals and locals default to empty dictionaries.

`runfunc`( | func, *args, **kwds)

  Call func with the given arguments under control of the `Trace` object with the current tracing parameters.

This is a simple example showing the use of this module:

    import sys
    import trace

    # create a Trace object, telling it what to ignore, and whether to
    # do tracing or line-counting or both.
    tracer = trace.Trace(
        ignoredirs=[sys.prefix, sys.exec_prefix],
        trace=0,
        count=1)

    # run the new command using the given tracer
    tracer.run('main()')

    # make a report, placing output in /tmp
    r = tracer.results()
    r.write_results(show_missing=True, coverdir="/tmp")