code: def statement(self, stmnt, equiv=None, expected_ast=None):
      expected_ast = (
          compile(stmnt, filename, "exec", _ast.PyCF_ONLY_AST)
          if expected_ast is None
          else expected_ast
      )
      code = compile(expected_ast, filename, "exec")
  
      if equiv is None:
          mod_ast = make_module(code)
      else:
          mod_ast = make_module(code)
  
          expected_ast = compile(
              equiv, filename, "exec", _ast.PyCF_ONLY_AST
          )
  
      self.assertAstEqual(mod_ast, expected_ast)
  
      code = compile(mod_ast, filename, "exec")
      expected_code = compile(expected_ast, filename, "exec")
  
      self.assertEqual(code.co_code, expected_code.co_code)
  
file_path: turicreate/src/python/turicreate/meta/decompiler/tests/__init__.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  import sys
  import _ast
  from ...decompiler import make_module
  from ...asttools import cmp_ast, print_ast
  from ...testing import py2, py2only
label_desc: Use image node_id 2 for calling the Base obj's underlying member method code with example usage: obj.statement(stmnt, equiv, expected_ast) without return types