code: def run(self, frame):
      expr = Interpretable(self.expr)
      expr.eval(frame)
      self.result = expr.result
      self.explanation = "... = " + expr.explanation
      # fall-back-run the rest of the assignment
      ass = ast.Assign(self.nodes, ast.Name("__exprinfo_expr"))
      mod = ast.Module(None, ast.Stmt([ass]))
      mod.filename = "<run>"
      co = pycodegen.ModuleCodeGenerator(mod).getCode()
      try:
          frame.exec_(co, __exprinfo_expr=expr.result)
      except passthroughex:
          raise
      except:
          raise Failure(self)
  
imports: import py
  import sys, inspect
  from compiler import parse, ast, pycodegen
  from py._code.assertion import BuiltinAssertionError, _format_explanation
  import types
label_desc: Use image node_id 1 for calling the Assign obj's underlying member method code with example usage: obj.run(frame) without return types