code: def __init__(
      self,
      include_directories,
      compiler_directives,
      cpp=False,
      language_level=None,
      options=None,
  ):
      # cython_scope is a hack, set to False by subclasses, in order to break
      # an infinite loop.
      # Better code organization would fix it.
  
      from . import Builtin, CythonScope
  
      self.modules = {"__builtin__": Builtin.builtin_scope}
      self.cython_scope = CythonScope.create_cython_scope(self)
      self.modules["cython"] = self.cython_scope
      self.include_directories = include_directories
      self.future_directives = set()
      self.compiler_directives = compiler_directives
      self.cpp = cpp
      self.options = options
  
      self.pxds = {}  # full name -> node tree
      self._interned = (
          {}
      )  # (type(value), value, *key_args) -> interned_value
  
      if language_level is not None:
          self.set_language_level(language_level)
  
      self.gdb_debug_outputwriter = None
  
imports: from __future__ import absolute_import
  import os
  import re
  import sys
  import io
  from .None import Errors
  from .StringEncoding import EncodedString
  from .Scanning import PyrexScanner, FileSourceDescriptor
  from .Errors import PyrexError, CompileError, error, warning
  from .Symtab import ModuleScope
  from ..None import Utils
  from .None import Options
  from .None import Version
label_desc: Use image node_id 1 to create a new Context object from inherited base classes: object with example: obj = Context(include_directories, compiler_directives, cpp, language_level, options)