@@ -69,7 +69,7 @@ def _constructor_expanddim(self) -> Self: # type: ignore[name-defined] # noqa:
6969 __pandas_priority__ = 3500
7070
7171
72- class NestResolver (dict ):
72+ class _NestResolver (dict ):
7373 """
7474 Used by NestedFrame.eval to resolve the names of nests at the top level.
7575 While the resolver is normally a dictionary, with values that are fixed
@@ -83,22 +83,15 @@ def __init__(self, outer: NestedFrame):
8383 super ().__init__ ()
8484
8585 def __contains__ (self , item ):
86- if not isinstance (item , str ):
87- return False
8886 top_nest = item if "." not in item else item .split ("." )[0 ].strip ()
8987 return top_nest in self ._outer .nested_columns
9088
91- def __len__ (self ):
92- return len (self ._outer .nested_columns )
93-
9489 def __getitem__ (self , item ):
95- if not isinstance (item , str ):
96- raise KeyError (f"Unknown nest { item } " )
9790 top_nest = item if "." not in item else item .split ("." )[0 ].strip ()
9891 if not super ().__contains__ (top_nest ):
9992 if top_nest not in self ._outer .nested_columns :
10093 raise KeyError (f"Unknown nest { top_nest } " )
101- super ().__setitem__ (top_nest , NestedFieldResolver (top_nest , self ._outer ))
94+ super ().__setitem__ (top_nest , _NestedFieldResolver (top_nest , self ._outer ))
10295 return super ().__getitem__ (top_nest )
10396
10497 def __setitem__ (self , key , value ):
@@ -110,7 +103,7 @@ def __setitem__(self, key, value):
110103 pass
111104
112105
113- class NestedFieldResolver :
106+ class _NestedFieldResolver :
114107 """
115108 Used by NestedFrame.eval to resolve the names of fields in nested columns when
116109 encountered in expressions, interpreting __getattr__ in terms of a
@@ -448,7 +441,7 @@ def eval(self, expr: str, *, inplace: bool = False, **kwargs) -> Any | None:
448441 --------
449442 https://pandas.pydata.org/docs/reference/api/pandas.eval.html
450443 """
451- kwargs ["resolvers" ] = tuple (kwargs .get ("resolvers" , ())) + (NestResolver (self ),)
444+ kwargs ["resolvers" ] = tuple (kwargs .get ("resolvers" , ())) + (_NestResolver (self ),)
452445 kwargs ["inplace" ] = inplace
453446 kwargs ["parser" ] = "nested-pandas"
454447 return super ().eval (expr , ** kwargs )
0 commit comments