class_docstr: Interpret AST nodes to gleam useful debugging information. 
class_docstr_tok: ["Interpret","AST","nodes","to","gleam","useful","debugging","information","."]
code: def visit_Assign(self, assign):
      value_explanation, value_result = self.visit(assign.value)
      explanation = "... = %s" % (value_explanation,)
      name = ast.Name(
          "__exprinfo_expr",
          ast.Load(),
          lineno=assign.value.lineno,
          col_offset=assign.value.col_offset,
      )
      new_assign = ast.Assign(
          assign.targets,
          name,
          lineno=assign.lineno,
          col_offset=assign.col_offset,
      )
      mod = ast.Module([new_assign])
      co = self._compile(mod, "exec")
      try:
          self.frame.exec_(co, __exprinfo_expr=value_result)
      except Exception:
          raise Failure(explanation)
      return explanation, value_result
  
imports: import sys
  import ast
  import py
  from py._code.assertion import _format_explanation, BuiltinAssertionError
label_desc: Use image node_id 15 for calling the DebugInterpreter obj's underlying member method code with example usage: obj.visit_Assign(assign) and returns: explanation,  value_result