code: def line_listener(self, module, name, filename, line, info, frame):
      code = info.code_context[0].strip()
      if code.startswith("sys.settrace(None)"):
          return
  
      # Don't generate a statement visualization more than once
      h = hash(code)
      if h in self.done:
          return
      self.done.add(h)
  
      p = tsensor.parsing.PyExprParser(code)
      t = p.parse()
      if t is not None:
          # print(f"A line encountered in {module}.{name}() at {filename}:{line}")
          # print("\t", code)
          # print("\t", repr(t))
          self.linecount += 1
          self.viz_statement(code, frame)
  
imports: import os
  import sys
  import traceback
  import inspect
  import hashlib
  from pathlib import Path
  import matplotlib.pyplot
  import tsensor
label_desc: Use image node_id 3 for calling the ExplainTensorTracer obj's underlying member method code with example usage: obj.line_listener(module, name, filename, line, info, frame) without return types