code: def populate_cython_scope(self):
      # These are used to optimize isinstance in FinalOptimizePhase
      type_object = self.declare_typedef(
          "PyTypeObject",
          base_type=c_void_type,
          pos=None,
          cname="PyTypeObject",
      )
      type_object.is_void = True
      type_object_type = type_object.type
  
      self.declare_cfunction(
          "PyObject_TypeCheck",
          CFuncType(
              c_bint_type,
              [
                  CFuncTypeArg("o", py_object_type, None),
                  CFuncTypeArg("t", c_ptr_type(type_object_type), None),
              ],
          ),
          pos=None,
          defining=1,
          cname="PyObject_TypeCheck",
      )
  
file_path: catboost/contrib/tools/cython/Cython/Compiler/CythonScope.py
imports: from __future__ import absolute_import
  from .Symtab import ModuleScope
  from .PyrexTypes import *
  from .UtilityCode import CythonUtilityCode
  from .Errors import error
  from .Scanning import StringSourceDescriptor
  from .None import MemoryView
label_desc: Use image node_id 8 for calling the CythonScope obj's underlying member method code with example usage: obj.populate_cython_scope() without return types