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
  from collections import ChainMap
  import datetime
  import inspect
  from io import StringIO
  import itertools
  import pprint
  import struct
  import sys
  from typing import 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)