class_docstr: Object to hold scope, with a few bells to deal with some custom syntax
  and contexts added by pandas.
  
  Parameters
  ----------
  level : int
  global_dict : dict or None, optional, default None
  local_dict : dict or Scope or None, optional, default None
  resolvers : list-like or None, optional, default None
  target : object
  
  Attributes
  ----------
  level : int
  scope : DeepChainMap
  target : object
  temps : dict
class_docstr_tok: ["Object","to","hold","scope",",","with","a","few","bells","to","deal","with","some","custom","syntax","and","contexts","added","by","pandas",".","Parameters","--","--","--","--","--","level",":","int","global_dict",":","dict","or","None",",","optional",",","default","None","local_dict",":","dict","or","Scope","or","None",",","optional",",","default","None","resolvers",":","list-like","or","None",",","optional",",","default","None","target",":","object","Attributes","--","--","--","--","--","level",":","int","scope",":","DeepChainMap","target",":","object","temps",":","dict"]
code: def __init__(
      self,
      level: int,
      global_dict=None,
      local_dict=None,
      resolvers=(),
      target=None,
  ) -> None:
      self.level = level + 1
  
      # shallow copy because we don't want to keep filling this up with what
      # was there before if there are multiple calls to Scope/_ensure_scope
      self.scope = DeepChainMap(DEFAULT_GLOBALS.copy())
      self.target = target
  
      if isinstance(local_dict, Scope):
          self.scope.update(local_dict.scope)
          if local_dict.target is not None:
              self.target = local_dict.target
          self._update(local_dict.level)
  
      frame = sys._getframe(self.level)
  
      try:
          # shallow copy here because we don't want to replace what's in
          # scope when we align terms (alignment accesses the underlying
          # numpy array of pandas objects)
          scope_global = self.scope.new_child(
              (
                  global_dict
                  if global_dict is not None
                  else frame.f_globals
              ).copy()
          )
          self.scope = DeepChainMap(scope_global)
          if not isinstance(local_dict, Scope):
              scope_local = self.scope.new_child(
                  (
                      local_dict
                      if local_dict is not None
                      else frame.f_locals
                  ).copy()
              )
              self.scope = DeepChainMap(scope_local)
      finally:
          del frame
  
      # assumes that resolvers are going from outermost scope to inner
      if isinstance(local_dict, Scope):
          resolvers += tuple(local_dict.resolvers.maps)
      self.resolvers = DeepChainMap(*resolvers)
      self.temps = {}
  
imports: from __future__ import annotations
  import datetime
  import inspect
  from io import StringIO
  import itertools
  import pprint
  import struct
  import sys
  from typing import ChainMap, TypeVar
  import numpy
  from pandas._libs.tslibs import Timestamp
  from pandas.errors import UndefinedVariableError
label_desc: Use image node_id 1 to create a new Scope object  with example: obj = Scope(level, global_dict, local_dict, resolvers, target)