1313
1414import pandas as pd
1515import pandas .core .common as com
16- from pandas .core .computation import expr , ops
16+ from pandas .core .computation import expr , ops , scope as _scope
1717from pandas .core .computation .common import _ensure_decoded
1818from pandas .core .computation .expr import BaseExprVisitor
1919from pandas .core .computation .ops import UndefinedVariableError , is_term
2020
2121from pandas .io .formats .printing import pprint_thing , pprint_thing_encoded
2222
2323
24- class Scope (expr .Scope ):
24+ class Scope (_scope .Scope ):
2525 __slots__ = ("queryables" ,)
2626
27- def __init__ (self , level , global_dict = None , local_dict = None , queryables = None ):
27+ def __init__ (self , level : int , global_dict = None , local_dict = None , queryables = None ):
2828 super ().__init__ (level + 1 , global_dict = global_dict , local_dict = local_dict )
2929 self .queryables = queryables or dict ()
3030
@@ -40,6 +40,7 @@ def __init__(self, name, env, side=None, encoding=None):
4040 def _resolve_name (self ):
4141 # must be a queryables
4242 if self .side == "left" :
43+ # Note: The behavior of __new__ ensures that self.name is a str here
4344 if self .name not in self .env .queryables :
4445 raise NameError ("name {name!r} is not defined" .format (name = self .name ))
4546 return self .name
0 commit comments