docstr: @param count true iff it should count number of times each
               line is executed
  @param trace true iff it should print out each line that is
               being counted
  @param countfuncs true iff it should just output a list of
               (filename, modulename, funcname,) for functions
               that were called at least once;  This overrides
               `count' and `trace'
  @param ignoremods a list of the names of modules to ignore
  @param ignoredirs a list of the names of directories to ignore
               all of the (recursive) contents of
  @param infile file from which to read stored counts to be
               added into the results
  @param outfile file in which to write the results
  @param timing true iff timing information be displayed
docstr_tok: ["@","param","count","true","iff","it","should","count","number","of","times","each","line","is","executed","@","param","trace","true","iff","it","should","print","out","each","line","that","is","being","counted","@","param","countfuncs","true","iff","it","should","just","output","a","list","of","(","filename",",","modulename",",","funcname",",",")","for","functions","that","were","called","at","least","once",";","This","overrides","`","count","'","and","`","trace'","@","param","ignoremods","a","list","of","the","names","of","modules","to","ignore","@","param","ignoredirs","a","list","of","the","names","of","directories","to","ignore","all","of","the","(","recursive",")","contents","of","@","param","infile","file","from","which","to","read","stored","counts","to","be","added","into","the","results","@","param","outfile","file","in","which","to","write","the","results","@","param","timing","true","iff","timing","information","be","displayed"]
code: def __init__(
      self,
      count=1,
      trace=1,
      countfuncs=0,
      countcallers=0,
      ignoremods=(),
      ignoredirs=(),
      infile=None,
      outfile=None,
      timing=False,
  ):
      """
      @param count true iff it should count number of times each
                   line is executed
      @param trace true iff it should print out each line that is
                   being counted
      @param countfuncs true iff it should just output a list of
                   (filename, modulename, funcname,) for functions
                   that were called at least once;  This overrides
                   `count' and `trace'
      @param ignoremods a list of the names of modules to ignore
      @param ignoredirs a list of the names of directories to ignore
                   all of the (recursive) contents of
      @param infile file from which to read stored counts to be
                   added into the results
      @param outfile file in which to write the results
      @param timing true iff timing information be displayed
      """
      self.infile = infile
      self.outfile = outfile
      self.ignore = _Ignore(ignoremods, ignoredirs)
      self.counts = {}  # keys are (filename, linenumber)
      self.pathtobasename = {}  # for memoizing os.path.basename
      self.donothing = 0
      self.trace = trace
      self._calledfuncs = {}
      self._callers = {}
      self._caller_cache = {}
      self.start_time = None
      if timing:
          self.start_time = _time()
      if countcallers:
          self.globaltrace = self.globaltrace_trackcallers
      elif countfuncs:
          self.globaltrace = self.globaltrace_countfuncs
      elif trace and count:
          self.globaltrace = self.globaltrace_lt
          self.localtrace = self.localtrace_trace_and_count
      elif trace:
          self.globaltrace = self.globaltrace_lt
          self.localtrace = self.localtrace_trace
      elif count:
          self.globaltrace = self.globaltrace_lt
          self.localtrace = self.localtrace_count
      else:
          # Ahem -- do nothing?  Okay.
          self.donothing = 1
  
imports: import io
  import linecache
  import os
  import sys
  import sysconfig
  import token
  import tokenize
  import inspect
  import gc
  import dis
  import pickle
  from time import monotonic
  import threading
label_desc: Use image node_id 1 to create a new Trace object  with example: obj = Trace(count, trace, countfuncs, countcallers, ignoremods, ignoredirs, infile, outfile, timing)