class_docstr: Jedi API for Python REPLs.
  
  In addition to completion of simple attribute access, Jedi
  supports code completion based on static code analysis.
  Jedi can complete attributes of object which is not initialized
  yet.
  
  >>> from os.path import join
  >>> namespace = locals()
  >>> script = Interpreter('join("").up', [namespace])
  >>> print(script.completions()[0].name)
  upper
class_docstr_tok: ["Jedi","API","for","Python","REPLs",".","In","addition","to","completion","of","simple","attribute","access",",","Jedi","supports","code","completion","based","on","static","code","analysis",".","Jedi","can","complete","attributes","of","object","which","is","not","initialized","yet",".",">",">",">","from","os.path","import","join",">",">",">","namespace","=","locals","(",")",">",">",">","script","=","Interpreter","(","'join","(","``","''",")",".up","'",",","[","namespace","]",")",">",">",">","print","(","script.completions","(",")","[","0","]",".name",")","upper"]
docstr: Parse `source` and mixin interpreted Python objects from `namespaces`.
  
  :type source: str
  :arg  source: Code to parse.
  :type namespaces: list of dict
  :arg  namespaces: a list of namespace dictionaries such as the one
                    returned by :func:`locals`.
  
  Other optional arguments are same as the ones for :class:`Script`.
  If `line` and `column` are None, they are assumed be at the end of
  `source`.
code: def __init__(self, source, namespaces, **kwds):
      """
      Parse `source` and mixin interpreted Python objects from `namespaces`.
  
      :type source: str
      :arg  source: Code to parse.
      :type namespaces: list of dict
      :arg  namespaces: a list of namespace dictionaries such as the one
                        returned by :func:`locals`.
  
      Other optional arguments are same as the ones for :class:`Script`.
      If `line` and `column` are None, they are assumed be at the end of
      `source`.
      """
      try:
          namespaces = [dict(n) for n in namespaces]
      except Exception:
          raise TypeError(
              "namespaces must be a non-empty list of dicts."
          )
  
      environment = kwds.get("environment", None)
      if environment is None:
          environment = InterpreterEnvironment()
      else:
          if not isinstance(environment, InterpreterEnvironment):
              raise TypeError(
                  "The environment needs to be an InterpreterEnvironment subclass."
              )
  
      super(Interpreter, self).__init__(
          source, environment=environment, **kwds
      )
      self.namespaces = namespaces
  
imports: import os
  import sys
  import warnings
  import parso
  from parso.python import tree
  from jedi._compatibility import force_unicode, is_py3
  from jedi.parser_utils import get_executable_nodes
  from jedi import debug
  from jedi import settings
  from jedi import cache
  from jedi.api import classes
  from jedi.api import interpreter
  from jedi.api import helpers
  from jedi.api.completion import Completion
  from jedi.api.environment import InterpreterEnvironment
  from jedi.api.project import get_default_project
  from jedi.evaluate import Evaluator
  from jedi.evaluate import imports
  from jedi.evaluate import usages
  from jedi.evaluate.arguments import try_iter_content
  from jedi.evaluate.helpers import get_module_names, evaluate_call_of_leaf
  from jedi.evaluate.sys_path import dotted_path_in_sys_path
  from jedi.evaluate.filters import TreeNameDefinition, ParamName
  from jedi.evaluate.syntax_tree import tree_name_to_contexts
  from jedi.evaluate.context import ModuleContext
  from jedi.evaluate.context.iterable import unpack_tuple_to_dict
label_desc: Use image node_id 1 to create a new Interpreter object from inherited base classes: Script with example: obj = Interpreter(source, namespaces)