. trace, , . Trace.run, :
sys.settrace(globaltrace)
exec function
sys.settrace(None)
globaltrace Trace.__init__ . , , Trace.globaltrace_lt , Trace.localtrace_trace . Trace.localtrace, :
import trace
import sys
import time
import linecache
class Trace(trace.Trace):
def localtrace_trace(self, frame, why, arg):
if why == "line":
filename = frame.f_code.co_filename
lineno = frame.f_lineno
if self.start_time:
print '%.2f' % (time.time() - self.start_time),
print "%s (%d): %s" % (filename, lineno,
linecache.getline(filename, lineno)),
return self.localtrace
tracer = Trace(count=False, trace=True, ignoredirs=[sys.prefix, sys.exec_prefix])
r = tracer.run('run()')
; Trace.run, - write_results. , , , tracer.results().write_results() . , , trace.CoverageResults.write_results .