class_docstr: Interpret AST nodes to gleam useful debugging information. 
class_docstr_tok: ["Interpret","AST","nodes","to","gleam","useful","debugging","information","."]
code: def visit_Compare(self, comp):
      left = comp.left
      left_explanation, left_result = self.visit(left)
      for op, next_op in zip(comp.ops, comp.comparators):
          next_explanation, next_result = self.visit(next_op)
          op_symbol = operator_map[op.__class__]
          explanation = "%s %s %s" % (
              left_explanation,
              op_symbol,
              next_explanation,
          )
          source = "__exprinfo_left %s __exprinfo_right" % (op_symbol,)
          co = self._compile(source)
          try:
              result = self.frame.eval(
                  co,
                  __exprinfo_left=left_result,
                  __exprinfo_right=next_result,
              )
          except Exception:
              raise Failure(explanation)
          try:
              if not result:
                  break
          except KeyboardInterrupt:
              raise
          except:
              break
          left_explanation, left_result = next_explanation, next_result
  
      rcomp = py.code._reprcompare
      if rcomp:
          res = rcomp(op_symbol, left_result, next_result)
          if res:
              explanation = res
      return explanation, result
  
imports: import sys
  import ast
  import py
  from py._code.assertion import _format_explanation, BuiltinAssertionError
label_desc: Use image node_id 7 for calling the DebugInterpreter obj's underlying member method code with example usage: obj.visit_Compare(comp) and returns: explanation,  result