hyb
2026-01-30 7657e1b2fa251a2ea372710ad75cb395a3c0e374
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
Ë
nñúhµbãóŠ—dZddlmZddlZddlmZmZddlmZddl    Z    ddl
m Z m Z m Z ddlZddlmZddlmZddlmcmZdd    lmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&dd
l'm(Z(m)Z)dd l*m+Z+dd l,m-Z-d-d „Z.d-d„Z/d-d„Z0d„Z1d„Z2e2e0e/e.e(«f            d.d„Z3d„Z4e4e5«Z6e4e7«Z8e9d„d„e:e«D«D««Z;e;fd„Z<e9d„e;D««Z=e<ej|«Z?e<ej€«ZAe<ej„«ZCe<ejˆ«ZEe<ejŒ«ZGe<ej«ZIe<ej”«ZKe<ej˜«ZMe<ejœ«ZOe<ej «ZQe<ej¤«ZSe<ej«ZTe<ejª«ZVe9gd¢«ZWe9gd¢«ZXeAe?zeQzeSzeTzeVzeEzeXzeWz
ZYe=eYz
eWzZZeYeZzZ[de[›Z\e[rJe\«‚d/d„Z]e d«Z^d0d„Z_d„Z`e e%dœZad „Zbe_eY«ebea«Gd!„d"ejÆ«««Zde9gd#¢«Zee9eez«Zfe_eYeezeGe9gd$¢«zz
«Gd%„d&ed««Zge_eYeeze9d'g«z«Gd(„d)ed««ZhGd*„d+«Ziehegd,œZjy)1z
:func:`~pandas.eval` parsers.
é)Ú annotationsN)ÚpartialÚreduce©Ú    iskeyword)ÚCallableÚClassVarÚTypeVar)ÚUndefinedVariableError)Úis_string_dtype)ÚARITH_OPS_SYMSÚ BOOL_OPS_SYMSÚ CMP_OPS_SYMSÚ    LOCAL_TAGÚMATHOPSÚ
REDUCTIONSÚUNARY_OPS_SYMSÚBinOpÚConstantÚFuncNodeÚOpÚTermÚUnaryOpÚis_term)Úclean_backtick_quoted_toksÚtokenize_string)ÚScope)Úprintingcó$—|\}}||dk(rdfS|fS)a`
    Rewrite the assignment operator for PyTables expressions that use ``=``
    as a substitute for ``==``.
 
    Parameters
    ----------
    tok : tuple of int, str
        ints correspond to the all caps constants in the tokenize module
 
    Returns
    -------
    tuple of int, str
        Either the input or token or the replacement values
    ú=ú==©©ÚtokÚtoknumÚtokvals   úOH:\Change_password\venv_build\Lib\site-packages\pandas/core/computation/expr.pyÚ_rewrite_assignr(3s&€ðN€FˆFØ ˜6 Sš=4Ð 4Ð4¨fÐ 4Ð4ócóž—|\}}|tjk(r2|dk(rtjdfS|dk(rtjdfS||fS||fS)aj
    Replace ``&`` with ``and`` and ``|`` with ``or`` so that bitwise
    precedence is changed to boolean precedence.
 
    Parameters
    ----------
    tok : tuple of int, str
        ints correspond to the all caps constants in the tokenize module
 
    Returns
    -------
    tuple of int, str
        Either the input or token or the replacement values
    ú&Úandú|Úor)ÚtokenizeÚOPÚNAMEr#s   r'Ú_replace_booleansr2FsY€ðN€FˆFØ ”—‘ÒØ SŠ=Ü—=‘= %Ð'Ð 'Ø sŠ]Ü—=‘= $Ð&Ð &ؐvˆ~ÐØ 6ˆ>Ðr)cóp—|\}}|tjk(r|dk(rtjtfS||fS)a(
    Replace local variables with a syntactically valid name.
 
    Parameters
    ----------
    tok : tuple of int, str
        ints correspond to the all caps constants in the tokenize module
 
    Returns
    -------
    tuple of int, str
        Either the input or token or the replacement values
 
    Notes
    -----
    This is somewhat of a hack in that we rewrite a string such as ``'@a'`` as
    ``'__pd_eval_local_a'`` by telling the tokenizer that ``__pd_eval_local_``
    is a ``tokenize.OP`` and to replace the ``'@'`` symbol with it.
    ú@)r/r0rr#s   r'Ú_replace_localsr5_s8€ð(N€FˆFØ ”—‘Ò ¨3¢Ü{‰{œIÐ%Ð%Ø 6ˆ>Ðr)c󇇗ˆˆfd„S)z
    Compose 2 callables.
    có •—‰‰|i|¤Ž«S©Nr")ÚargsÚkwargsÚfÚgs  €€r'ú<lambda>z_compose2.<locals>.<lambda>}sø€¡1¡Q¨Ð%7°Ñ%7Ó#8€r)r")r;r<s``r'Ú    _compose2r>ys ù€ô 9Ð8r)cóL—t|«dkDsJd«‚tt|«S)z&
    Compose 2 or more callables.
    éz.At least 2 callables must be passed to compose)Úlenrr>)Úfuncss r'Ú_composerC€s'€ô ˆu‹:˜Š>ÐKÐKÓKˆ>Ü ”)˜UÓ #Ð#r)cóv‡—t‰«sJd«‚tjˆfd„t|«D««S)aÒ
    Compose a collection of tokenization functions.
 
    Parameters
    ----------
    source : str
        A Python source code string
    f : callable
        This takes a tuple of (toknum, tokval) as its argument and returns a
        tuple with the same structure but possibly different elements. Defaults
        to the composition of ``_rewrite_assign``, ``_replace_booleans``, and
        ``_replace_locals``.
 
    Returns
    -------
    str
        Valid Python source code
 
    Notes
    -----
    The `f` parameter can be any callable that takes *and* returns input of the
    form ``(toknum, tokval)``, where ``toknum`` is one of the constants from
    the ``tokenize`` module and ``tokval`` is a string.
    zf must be callablec3ó.•K—|] }‰|«–—Œy­wr8r")Ú.0Úxr;s  €r'ú    <genexpr>z_preparse.<locals>.<genexpr>§søèø€ÒE¨™q ŸtÑEùsƒ)Úcallabler/Ú
untokenizer©Úsourcer;s `r'Ú    _preparserMˆs3ø€ô< AŒ;Ð,Ð,Ó,ˆ;Ü × Ñ ÓE¬_¸VÓ-DÔEÓ EÐEr)có‡—ˆfd„S)zO
    Factory for a type checking function of type ``t`` or tuple of types.
    có0•—t|j‰«Sr8)Ú
isinstanceÚvalue)rGÚts €r'r=z_is_type.<locals>.<lambda>®sø€”Z §¡¨Ó+€r)r")rRs`r'Ú_is_typerSªs ø€ó ,Ð+r)c#ótK—|]0}t|t«rt|tj«r|–—Œ2y­wr8)rPÚtypeÚ
issubclassÚastÚAST)rFÚnodes  r'rHrH¶s/èø€òà ܐ$œÔ¤*¨T´3·7±7Ô";ô    ñùs‚68c#ó<K—|]}tt|«–—Œy­wr8)ÚgetattrrW)rFÚnames  r'rHrH¸sèø€Ò9¨”œ˜d×#Ñ9ùs‚có0‡—ˆfd„|D«}t|«S)zE
    Filter out AST nodes that are subclasses of ``superclass``.
    c3óP•K—|]}t|‰«sŒ|j–—Œy­wr8)rVÚ__name__)rFrYÚ
superclasss  €r'rHz _filter_nodes.<locals>.<genexpr>Ásøèø€ÒV D¼ÀDÈ*Õ9U$—-•-ÑVùsƒ&•&)Ú    frozenset)r`Ú    all_nodesÚ
node_namess`  r'Ú _filter_nodesrd½sø€óW¨IÔV€JÜ ZÓ  Ð r)c#ó4K—|]}|j–—Œy­wr8)r_©rFrGs  r'rHrHÅsèø€Ò;¨1˜AŸJJÑ;ùó‚)ÚAssignÚModuleÚExpr) ÚYieldÚ GeneratorExpÚIfExpÚDictCompÚSetCompÚReprÚLambdaÚSetrXÚIsÚIsNotz$cannot both support and not support có‡—ˆfd„}|S)zV
    Return a function that raises a NotImplementedError with a passed node name.
    có"•—td‰›d«‚)Nú'z' nodes are not implemented)ÚNotImplementedError)Úselfr9r:Ú    node_names   €r'r;z _node_not_implemented.<locals>.fsø€Ü! A i [Ð0KÐ"LÓMÐMr)r")rzr;s` r'Ú_node_not_implementedr{þsø€ô
Nð €Hr)Ú_Tcó‡—dˆfd„ }|S)z‹
    Decorator to disallow certain nodes from parsing. Raises a
    NotImplementedError instead.
 
    Returns
    -------
    callable
    cóŠ•—d|_‰D]5}t|«}d|›}|xj|fz c_t|||«Œ7|S)Nr"Úvisit_)Úunsupported_nodesr{Úsetattr)ÚclsrYÚ
new_methodr\Únodess    €r'Ú
disallowedzdisallow.<locals>.disallowedsUø€à "ˆÔØò    +ˆDÜ.¨tÓ4ˆJؘD˜6?ˆDà × !Ò ! d WÑ ,Õ !Ü C˜˜zÕ *ð     +ð ˆ
r))r‚útype[_T]Úreturnr†r")r„r…s` r'Údisallowrˆsø€õ    ð Ðr)c󇇗ˆˆfd„}|S)zw
    Return a function to create an op class with its symbol already passed.
 
    Returns
    -------
    callable
    có$•—t‰‰g|¢­i|¤ŽS)z’
        Return a partial function with an Op subclass with an operator already passed.
 
        Returns
        -------
        callable
        )r)ryrYr9r:Úop_classÚ    op_symbols    €€r'r;z_op_maker.<locals>.f0sø€ôx Ð<¨TÒ<°VÑ<Ð<r)r")r‹rŒr;s`` r'Ú    _op_makerr'sù€õ=ð €Hr))ÚbinaryÚunarycó‡—ˆfd„}|S)z9
    Decorator to add default implementation of ops.
    cóʕ—‰j«D]N\}}t||›d«}t||›d«}|D]&}||}|€Œ t||«}t|d|›|«Œ(ŒP|S)NÚ_opsÚ _op_nodes_mapr)Úitemsr[rr)    r‚Ú op_attr_namer‹ÚopsÚops_mapÚopÚop_nodeÚmade_opÚ
op_classess            €r'r;zadd_ops.<locals>.fEsŠø€Ø&0×&6Ñ&6Ó&8ò    >Ñ "ˆL˜(ܘ# , ¨tÐ4Ó5ˆCܘc l ^°=Ð#AÓBˆGØò >Ø! "™+ØÑ&Ü'¨°"Ó5GܘC 6¨'¨Ð!3°WÕ=ñ     >ð    >ðˆ
r)r")r›r;s` r'Úadd_opsrœ@sø€ô
    ð €Hr)có
—eZdZUdZeZded<eZded<e    e
ze zZ dZ eee e ««ZeZdZeeee««Zej,ej.ej0ej2ej.ej.ej2ej2iZded<efd%d    „Zd
„Zd „Zd „Zd „Z d&d„Z!d„Z"d„Z#        d'd„Z$d„Z%d„Z&d(d„Z'd(d„Z(d(d„Z)d(d„Z*d(d„Z+d(d„Z,e,Z-d„Z.d(d„Z/d)d„Z0d„Z1d„Z2d*d „Z3d!„Z4d"„Z5d#„Z6d$„Z7y)+ÚBaseExprVisitorzÌ
    Custom ast walker. Parsers of other engines should subclass this class
    if necessary.
 
    Parameters
    ----------
    env : Scope
    engine : str
    parser : str
    preparser : callable
    zClassVar[type[Term]]Ú
const_typeÚ    term_type)ÚGtÚLtÚGtEÚLtEÚEqÚNotEqÚInÚNotInÚBitAndÚBitOrÚAndÚOrÚAddÚSubÚMultÚDivÚPowÚFloorDivÚMod)ÚUAddÚUSubÚInvertÚNotztuple[str, ...]r€cóJ—||_||_||_||_d|_yr8)ÚenvÚengineÚparserÚ    preparserÚassigner)ryr¹rºr»r¼s     r'Ú__init__zBaseExprVisitor.__init__Šs%€ØˆŒØˆŒ ؈Œ Ø"ˆŒØˆ r)c ód—t|t«r:|j|«}    tjtj
|««}dt|«j›}t||«}||fi|¤ŽS#t $r.}td„|j«D««rd|_    |‚d}~wwxYw)Nc3ó2K—|]}t|«–—Œy­wr8rrfs  r'rHz(BaseExprVisitor.visit.<locals>.<genexpr>—sèø€Ò;¨”y —|Ñ;ùs‚z4Python keyword not valid identifier in numexpr queryr) rPÚstrr¼rWÚfix_missing_locationsÚparseÚ SyntaxErrorÚanyÚsplitÚmsgrUr_r[)ryrYr:ÚcleanÚeÚmethodÚvisitors       r'ÚvisitzBaseExprVisitor.visit‘sŸ€Ü dœCÔ  Ø—N‘N 4Ó(ˆEð Ü×0Ñ0´·±¸5Ó1AÓBð œ$˜t›*×-Ñ-Ð.Ð/ˆÜ˜$ Ó'ˆÙtÑ&˜vÑ&Ð&øôò ÜÑ;¨U¯[©[«]Ô;Ô;ØRA”Eؐûð ús£(A8Á8    B/Â)B*Â*B/c óŒ—t|j«dk7r td«‚|jd}|j|fi|¤ŽS)Nr@z#only a single expression is allowedr)rAÚbodyrÄrÌ)ryrYr:Úexprs    r'Ú visit_ModulezBaseExprVisitor.visit_ModuleŸsA€Ü ˆty‰y‹>˜QÒ ÜÐCÓDÐ D؏y‰y˜‰|ˆØˆtz‰z˜$Ñ) &Ñ)Ð)r)c ó<—|j|jfi|¤ŽSr8©rÌrQ©ryrYr:s   r'Ú
visit_ExprzBaseExprVisitor.visit_Expr¥s€Øˆtz‰z˜$Ÿ*™*Ñ/¨Ñ/Ð/r)cóB—|j}t|«}t|«rçt|«rÜ||jvrÎt    t
||f«\}}t    t ||f«\}}    |s|s|s|    r|j|«}|    rB|jj|jg«}
|j|
|j«}|rB|jj|jg«}
|j|
|j«}|j|«} | |||fSr8) r˜rUrÚ rewrite_mapÚmapÚ_is_listÚ_is_strr¹Úadd_tmprQr rÌ) ryrYÚleftÚrightÚ op_instanceÚop_typeÚ    left_listÚ
right_listÚleft_strÚ    right_strr\r˜s             r'Ú_rewrite_membership_opz&BaseExprVisitor._rewrite_membership_op¨sü€à—g‘gˆ ܐ{Ó#ˆô 4Œ=œW Uœ^°¸4×;KÑ;KÑ0KÜ$'¬°4¸°-Ó$@Ñ !ˆIzÜ"%¤g°°e¨}Ó"=Ñ ˆHiñ™J©(±iØ7˜d×.Ñ.¨wÑ7Ó9 ñØ—x‘x×'Ñ'¨¯©¨ Ó6ØŸ™ t¨T¯X©XÓ6áØ—x‘x×'Ñ'¨¯©¨ Ó5Ø—~‘~ d¨D¯H©HÓ5à Z‰Z˜ Ó $ˆØ;  eÐ+Ð+r)Ncóº—|€|j|jd¬«}|€|j|jd¬«}|j|||«\}}}}||||fS)NrÛ)ÚsiderÜ)rÌrÛrÜrã)ryrYrÛrÜr˜r‹s      r'Ú_maybe_transform_eq_nez&BaseExprVisitor._maybe_transform_eq_neÃsd€Ø ˆ<Ø—:‘:˜dŸi™i¨f:Ó5ˆDØ ˆ=Ø—J‘J˜tŸz™z°JÓ8ˆEØ$(×$?Ñ$?ÀÀdÈEÓ$RÑ!ˆˆHd˜Eؐ8˜T 5Ð(Ð(r)cól—tjtj«}|jr{t    |d«ro|jsc|j
|k(rT|j jtj|j««}|j||j «}|jr{t    |d«ro|jsc|j
|k(rT|j jtj|j««}|j||j «}||fS)NrQ)
ÚnpÚdtypeÚfloat32Ú    is_scalarÚhasattrÚ return_typer¹rÚrQr )ryrÛrÜÚf32r\s     r'Ú_maybe_downcast_constantsz)BaseExprVisitor._maybe_downcast_constantsËs؀܏h‰h”r—z‘zÓ"ˆà NŠNܘ˜gÔ&Ø—O’OØ×!Ñ! SÒ(ð—8‘8×#Ñ#¤B§J¡J¨t¯z©zÓ$:Ó;ˆDØ—>‘> $¨¯©Ó1ˆDà OŠOܘ˜wÔ'Ø—N’NØ× Ñ  CÒ'ð—8‘8×#Ñ#¤B§J¡J¨u¯{©{Ó$;Ó<ˆDØ—N‘N 4¨¯©Ó2ˆEàUˆ{Ðr)có|—|j|j|j|j|j|«Sr8)Úevaluater¹rºr»r )ryÚbinopÚeval_in_pythons   r'Ú _maybe_evalzBaseExprVisitor._maybe_evalâs0€ð~‰~Ø H‰Hd—k‘k 4§;¡;°·±Àó
ð    
r)c    ót—|||«}|jr3td|j›d|j›d|j›d«‚|jdk7rH|jt
vr t |dd«s t |dd«r|j||j«S|j|vr|j||«S|jdk7rit |dd«tk(s@tt |dd««s*t |dd«tk(stt |dd««r|j|||z«S|S)    Nz unsupported operand type(s) for z: 'z' and 'rwÚpytablesÚ is_datetimeFrí) Úhas_invalid_return_typeÚ    TypeErrorr˜rUrºrr[rôÚ
binary_opsÚobjectr )ryr˜r‹ÚlhsÚrhsróÚmaybe_eval_in_pythonÚress        r'Ú_maybe_evaluate_binopz%BaseExprVisitor._maybe_evaluate_binopís)€ñc‹lˆà × &Ò &ÜØ2°3·6±6°(ð;Ø—H‘H:˜W S§X¡X J¨að1óð ð
;‰;˜*Ò $Ø F‰F”lÑ "ܘ˜]¨EÔ2ܐs˜M¨5Ô1ð×#Ñ# C¨¯©Ó9Ð 9à 6‰6^Ñ #à×#Ñ# C¨Ó8Ð 8Ø [‰[˜JÒ &䘘]¨DÓ1´VÒ;Ü"¤7¨3° ¸tÓ#DÔEܘ3  ¨tÓ4¼Ò>Ü"¤7¨3° ¸tÓ#DÔEð×'Ñ'¨¨^Ð>RÑ-RÓSÐS؈
r)c ó€—|j|«\}}}}|j||«\}}|j||||«Sr8)rærïr)ryrYr:r˜r‹rÛrÜs       r'Ú visit_BinOpzBaseExprVisitor.visit_BinOpsH€Ø$(×$?Ñ$?ÀÓ$EÑ!ˆˆHd˜EØ×4Ñ4°T¸5ÓA‰ ˆˆeØ×)Ñ)¨"¨h¸¸eÓDÐDr)c ó~—|j|j«}|j|j«}||«Sr8)rÌr˜Úoperand)ryrYr:r˜rs     r'Ú visit_UnaryOpzBaseExprVisitor.visit_UnaryOps0€Ø Z‰Z˜Ÿ™Ó  ˆØ—*‘*˜TŸ\™\Ó*ˆÙ'‹{Ðr)c óR—|j|j|jfi|¤ŽSr8)r Úidr¹rÓs   r'Ú
visit_NamezBaseExprVisitor.visit_Name s"€Øˆt~‰~˜dŸg™g t§x¡xÑ:°6Ñ:Ð:r)c óN—|j|j|j«Sr8©rŸrQr¹rÓs   r'Úvisit_NameConstantz"BaseExprVisitor.visit_NameConstant$ó€Ø‰˜tŸz™z¨4¯8©8Ó4Ð4r)c óN—|j|j|j«Sr8r
rÓs   r'Ú    visit_NumzBaseExprVisitor.visit_Num(r r)c óN—|j|j|j«Sr8r
rÓs   r'Úvisit_ConstantzBaseExprVisitor.visit_Constant+r r)c ó„—|jj|j«}|j||j«Sr8)r¹rÚÚsr )ryrYr:r\s    r'Ú    visit_StrzBaseExprVisitor.visit_Str/s/€Øx‰x×Ñ §¡Ó'ˆØ~‰~˜d D§H¡HÓ-Ð-r)c     óè—|jj|jDcgc]#}|j|«|j«‘Œ%c}«}|j    ||j«Scc}wr8)r¹rÚÚeltsrÌr )ryrYr:rÉr\s     r'Ú
visit_ListzBaseExprVisitor.visit_List3sS€Øx‰x×ÑÀ$Ç)Á)Ö L¸Q  §¡¨A£¨t¯x©xÕ!8Ò LÓMˆØ~‰~˜d D§H¡HÓ-Ð-ùò!Ms¤(A/c ó8—|j|j«S)z df.index[4]rÒrÓs   r'Ú visit_IndexzBaseExprVisitor.visit_Index9s€àz‰z˜$Ÿ*™*Ó%Ð%r)c óÚ—ddlm}|j|j«}|j|j«}|||j
|j |j¬«}    |j|}|j
j|«}    |j|    |j
¬«S#t$r2|||j
|j |j¬«}||}YŒrwxYw)Nr)Úeval)Ú
local_dictrºr»)r¹) ÚpandasrrÌrQÚslicer¹rºr»ÚAttributeErrorrÚr )
ryrYr:Úpd_evalrQÚslobjÚresultÚvrür\s
          r'Úvisit_SubscriptzBaseExprVisitor.visit_Subscript=sÀÝ*à—
‘
˜4Ÿ:™:Ó&ˆØ—
‘
˜4Ÿ:™:Ó&ˆÙØ ˜dŸh™h¨t¯{©{À4Ç;Á;ô
ˆð    à— ‘ ˜FÑ#ˆAðx‰x×Ñ Ó"ˆØ~‰~˜d¨¯©ˆ~Ó1Ð1øôò    áØ $§(¡(°4·;±;ÀtÇ{Á{ôˆCðF‘ ŠAð     úsÁ(B/Â/8C*Ã)C*c ó—|j}||j|«j}|j}||j|«j}|j}||j|«j}t |||«S)zdf.index[slice(4,6)])ÚlowerrÌrQÚupperÚstepr)ryrYr:r%r&r's      r'Ú visit_SlicezBaseExprVisitor.visit_SliceQsz€à—
‘
ˆØ Ð Ø—J‘J˜uÓ%×+Ñ+ˆEØ—
‘
ˆØ Ð Ø—J‘J˜uÓ%×+Ñ+ˆE؏y‰yˆØ Ð Ø—:‘:˜dÓ#×)Ñ)ˆDäU˜E 4Ó(Ð(r)c ó —t|j«dk7r td«‚t|jdtj
«s td«‚|j j€ td«‚    |j|jdfi|¤Ž}t|d|«|_ |j€ td«‚|j|jfi|¤ŽS#t$r|jdj}YŒjwxYw)zÄ
        support a single assignment node, like
 
        c = a + b
 
        set the assigner at the top level, must be a Name node which
        might or might not exist in the resolvers
 
        r@z#can only assign a single expressionrz5left hand side of an assignment must be a single namez%cannot assign without a target objectr\z@left hand side of an assignment must be a single resolvable name)rAÚtargetsrÄrPrWÚNamer¹ÚtargetÚ
ValueErrorrÌr rr[r½rQ)ryrYr:r½s    r'Ú visit_AssignzBaseExprVisitor.visit_Assign_së€ô ˆt|‰|Ó  Ò !ÜÐCÓDÐ Dܘ$Ÿ,™, q™/¬3¯8©8Ô4ÜÐUÓVÐ VØ 8‰8?‰?Ð "ÜÐDÓEÐ Eð    *Ø!t—z‘z $§,¡,¨q¡/Ñ<°VÑ<ˆHô  ¨&°(Ó;ˆŒ Ø =‰=Ð  ÜØRóð ðˆtz‰z˜$Ÿ*™*Ñ/¨Ñ/Ð/øô&ò    *Ø—|‘| A‘×)Ñ)ŠHð    *úsÁ8 CÃ"DÄDc óô—|j}|j}|j}t|tj
«r_|j |«j}    t||«}|jj|«}|j||j«Stdt|«j ›«‚#t$r/t|tj«r|j|k(r|cYS‚wxYw)NzInvalid Attribute context )ÚattrrQÚctxrPrWÚLoadrÌr[r¹rÚr rr+rr-rUr_)    ryrYr:r0rQr1Úresolvedr"r\s             r'Úvisit_AttributezBaseExprVisitor.visit_Attribute}sˀ؏y‰yˆØ—
‘
ˆàh‰hˆÜ cœ3Ÿ8™8Ô $à—z‘z %Ó(×.Ñ.ˆHð ܘH dÓ+Ø—x‘x×'Ñ'¨Ó*Ø—~‘~ d¨D¯H©HÓ5Ð5ôÐ5´d¸3³i×6HÑ6HÐ5IÐJÓKÐKøô "ò ä˜e¤S§X¡XÔ.°5·8±8¸tÒ3CØ#’OØð     úsÁAB?Â?4C7Ã5C7c ó*—t|jtj«r5|jjdk7r|j |j«}nKt|jtj «s td«‚    |j|j«}|€"td|jj›«‚t|d«r |j}t|t«rR|jDcgc]}|j|«‘Œ}}|j rtd|j"›d«‚||ŽS|jDcgc]#}|j|«|j$«‘Œ%}}|j D]„}t|tj&«s#td|jj›d«‚|j(sŒM|j|j«|j$«||j(<Œ†|j$j+||i|¤Ž«}|j-||j$¬    «S#t$r3    t|jj«}n#t$r‚wxYwYŒâwxYwcc}wcc}w)
NÚ__call__z"Only named functions are supportedzInvalid function call rQz
Function "z$" does not support keyword argumentsz keyword error in function call 'rw)r\r¹)rPÚfuncrWÚ    Attributer0r4r+rùrÌr rrr-rìrQr9Úkeywordsr\r¹ÚkeywordÚargrÚr )    ryrYrår:rÿr;Únew_argsÚkeyr\s             r'Ú
visit_CallzBaseExprVisitor.visit_Call‘s&€Ü d—i‘i¤§¡Ô /°D·I±I·N±NÀjÒ4PØ×&Ñ& t§y¡yÓ1‰CܘDŸI™I¤s§x¡xÔ0ÜÐ@ÓAÐ Að Ø—j‘j §¡Ó+ð ˆ;äØ(¨¯©¯©¨Ð7óð ô 3˜Ô  Ø—)‘)ˆCä cœ8Ô $Ø37·9±9Ö=¨C˜Ÿ
™
 3Ð=ˆHÐ=à}Š}ÜØ  §¡ 
Ð*NÐOóðñ˜>Ð !ð>B¿Y¹YÖG°c˜˜Ÿ
™
 3›¨¯©Õ1ÐGˆHÐGà—}‘}ò     FÜ! #¤s§{¡{Ô3ä$ðØ ŸI™IŸL™L˜>¨ð,óðð
—7“7Ø&; d§j¡j°·±Ó&;¸D¿H¹HÓ&EF˜3Ÿ7™7’Oð     Fð—8‘8×#Ñ#¡C¨Ð$<°VÑ$<Ó=ˆDØ—>‘> t°·±>Ó:Ð :øôS*ò ðÜ" 4§9¡9§<¡<Ó0‘CøÜ!òàðúòð üò">ùòHs6Â
I Ã?J Å(JÉ     JÉI6É5JÉ6 JÊJÊJcó—|Sr8r")ryr˜s  r'Ú translate_InzBaseExprVisitor.translate_InÄs€Øˆ    r)c
ó,—|j}|j}t|«dk(rJ|j|d«}t    j
||j |d¬«}|j|«S|j }g}t||«D]P\}}    |jt    j|    g||j|«g¬««}
|    }|j|
«ŒR|jt    jt    j«|¬««S)Nr@r)r˜rÛrÜ)Ú comparatorsrÛr–)r˜Úvalues) r–rBrAr@rWrrÛrÌÚzipÚCompareÚappendÚBoolOpr«) ryrYr:r–Úcompsr˜ròrÛrCÚcompÚnew_nodes            r'Ú visit_ComparezBaseExprVisitor.visit_CompareÇsí€Øh‰hˆØ× Ñ ˆô ˆu‹:˜Š?Ø×"Ñ" 3 q¡6Ó*ˆBÜ—I‘I ¨$¯)©)¸5À¹8ÔDˆEØ—:‘:˜eÓ$Ð $ðy‰yˆØˆÜ˜C ›ò    $‰HˆBØ—z‘zÜ— ‘ ¨¨°TÀ×@QÑ@QÐRTÓ@UÐ?VÔWóˆHðˆDØ M‰M˜(Õ #ð     $ð z‰zœ#Ÿ*™*¬¯©«    ¸&ÔAÓBÐBr)cóT—t|ttf«r|S|j|«Sr8)rPrrrÌ)ryÚbops  r'Ú_try_visit_binopz BaseExprVisitor._try_visit_binopÜs#€Ü cœB¤˜:Ô &؈J؏z‰z˜#‹Ðr)c óB‡‡—ˆˆfd„}‰j}t||«S)Ncó´•—‰j|«}‰j|«}‰j‰||«\}}}}‰j|‰j||«Sr8)rNrærr˜)rGÚyrürýr˜r‹rYrys      €€r'rËz-BaseExprVisitor.visit_BoolOp.<locals>.visitorâs[ø€Ø×'Ñ'¨Ó*ˆCØ×'Ñ'¨Ó*ˆCà%)×%@Ñ%@ÀÀsÈCÓ%PÑ "ˆB˜#˜sØ×-Ñ-¨b°$·'±'¸3ÀÓDÐ Dr))rCr)ryrYr:rËÚoperandss``   r'Ú visit_BoolOpzBaseExprVisitor.visit_BoolOpás!ù€õ    Eð—;‘;ˆÜg˜xÓ(Ð(r)©r‡ÚNone)NN))Úinznot in)r!z!=ú<ú>z<=z>=)r‡r)r‡rr8)8r_Ú
__module__Ú __qualname__Ú__doc__rrŸÚ__annotations__rr rrr rúÚbinary_op_nodesÚdictrDÚbinary_op_nodes_maprÚ    unary_opsÚunary_op_nodesÚunary_op_nodes_maprWr¥r§r¦r¨rÖrMr¾rÌrÐrÔrãrærïrôrrrrr rrrrÚ visit_Tuplerr#r(r.r4r>r@rKrNrSr"r)r'ržržSsH…ñ
ð(0€JÐ$Ó/Ø&*€IÐ#Ó*à  Ñ-°Ñ>€Jð€Oñ*™s :¨Ó?Ó@Ðà€IØ4€NÙ™c )¨^Ó<Ó=Ðð     ‰—‘Ø     ‰    3—9‘9Ø ‰—‘Ø     ‰    3—9‘9ð    €Kð'Ó&à6?ôò 'ò*ò 0ò,ó6)òò.    
ð"(Ø?ó'òREò
ó
;ó5ó5ó5ó.ó.ð€Kò&ó2ó( )ò0ò<Ló(1;òfòCò*ó
    )r)rž)ÚDictrGr§r¨)rGr8r§r¨ÚTuplecóF‡—eZdZeeeeee«¬«f    dˆfd„ Z    ˆxZ
S)ÚPandasExprVisitor)r;có*•—t‰|||||«yr8©Úsuperr¾©ryr¹rºr»r¼Ú    __class__s     €r'r¾zPandasExprVisitor.__init__ösø€ô    ‰Ñ˜˜f f¨iÕ8r)rT) r_rYrZrrMrCr5r2rr¾Ú __classcell__©rls@r'rgrgñs2ø„ñØ ÙÐ(9Ð;UÓVô
ð
9ð
÷
9ñ
9r)rgr·có*‡—eZdZdd„f    dˆfd„ ZˆxZS)ÚPythonExprVisitorcó—|Sr8r"rKs  r'r=zPythonExprVisitor.<lambda>s€ÀF€r)có,•—t‰|||||¬«y)N)r¼rirks     €r'r¾zPythonExprVisitor.__init__sø€ô    ‰Ñ˜˜f f¸    ÐÕBr)r8rT)r_rYrZr¾rmrns@r'rprpsø„ò.KðCà     ÷CñCr)rpcó—eZdZUdZded<ded<ded<                d                                    dd„Zed    „«Zd
„Zdd „Z    dd „Z
d „Z ed„«Z y)rja
    Object encapsulating an expression.
 
    Parameters
    ----------
    expr : str
    engine : str, optional, default 'numexpr'
    parser : str, optional, default 'pandas'
    env : Scope, optional, default None
    level : int, optional, default 2
    rr¹rÁrºr»Ncóî—||_|xst|dz¬«|_||_||_t ||j|j|j«|_|j«|_y)Nr@)Úlevel)    rÏrr¹rºr»ÚPARSERSÚ_visitorrÃÚterms)ryrÏrºr»r¹rus      r'r¾z Expr.__init__s[€ðˆŒ    ØÒ0œ% e¨a¡iÔ0ˆŒØˆŒ ؈Œ Ü ™¨¯©°$·+±+¸t¿{¹{ÓKˆŒ Ø—Z‘Z“\ˆ
r)có0—t|jdd«S)Nr½)r[rw©rys r'r½z Expr.assigner+s€ät—}‘} j°$Ó7Ð7r)có8—|j|j«Sr8)rxr¹rzs r'r6z Expr.__call__/s€Øz‰z˜$Ÿ(™(Ó#Ð#r)có@—tj|j«Sr8)rÚ pprint_thingrxrzs r'Ú__repr__z Expr.__repr__2s€Ü×$Ñ$ T§Z¡ZÓ0Ð0r)có,—t|j«Sr8)rArÏrzs r'Ú__len__z Expr.__len__5s€Ü4—9‘9‹~Ðr)cóL—|jj|j«S)z&
        Parse an expression.
        )rwrÌrÏrzs r'rÃz
Expr.parse8s€ð}‰}×"Ñ" 4§9¡9Ó-Ð-r)cóʗt|j«r t|jjg«Std„t    j
|j«D««S)z1
        Get the names in an expression.
        c3ó4K—|]}|j–—Œy­wr8)r\)rFÚterms  r'rHzExpr.names.<locals>.<genexpr>Esèø€ÒG t˜ŸÑGùrg)rrxrar\ÚcomÚflattenrzs r'Únamesz
Expr.names>sD€ô
4—:‘:Ô Ü˜dŸj™jŸo™oÐ.Ó/Ð /ÜÑG¬s¯{©{¸4¿:¹:Ó/FÔGÓGÐGr))ÚnumexprrNr)
rºrÁr»rÁr¹z Scope | NoneruÚintr‡rU)r‡rÁ)r‡r‰) r_rYrZr[r\r¾Úpropertyr½r6r~r€rÃr‡r"r)r'rjrj s›…ñ
ð
ƒJØ ƒKØ ƒKð
 ØØ Øð "ðð "ðð     "ð
ð "ð ð "ð
ó "ðñ8óð8ò$ó1óò.ð ñHóñHr)rj)Úpythonr)r$útuple[int, str]r‡rŒ)rLrÁr‡rÁ)rzrÁr‡zCallable[..., None])r„zset[str]r‡zCallable[[type[_T]], type[_T]])kr[Ú
__future__rrWÚ    functoolsrrr:rr/Útypingrr    r
ÚnumpyrèÚ pandas.errorsr Úpandas.core.dtypes.commonr Úpandas.core.commonÚcoreÚcommonr…Úpandas.core.computation.opsr rrrrrrrrrrrrrÚpandas.core.computation.parsingrrÚpandas.core.computation.scoperÚpandas.io.formatsrr(r2r5r>rCrMrSÚlistrØrÁrÙraÚdirÚ
_all_nodesrdÚ_all_node_namesÚmodÚ
_mod_nodesÚstmtÚ _stmt_nodesrÏÚ _expr_nodesÚ expr_contextÚ_expr_context_nodesÚboolopÚ _boolop_nodesÚoperatorÚ_operator_nodesÚunaryopÚ_unary_op_nodesÚcmpopÚ _cmp_op_nodesÚ comprehensionÚ_comprehension_nodesÚ excepthandlerÚ_handler_nodesÚ    argumentsÚ_arguments_nodesÚ_keyword_nodesÚaliasÚ _alias_nodesÚ _hacked_nodesÚ_unsupported_expr_nodesÚ_unsupported_nodesÚ_base_supported_nodesÚ intersectionÚ_msgr{r|rˆrÚ _op_classesrœÚ NodeVisitorržÚ_python_not_supportedÚ_numexpr_supported_callsrgrprjrvr"r)r'ú<module>rÀsrðñõ#ã
÷õÛ÷ñó å0å5ç Ð ÷÷÷÷÷ õ0å&ó5ó&ó2ò49ò$ñØÐ*¨OÐ=WóðFØ ðFð
    ó FòD,ñ D‹>€Ù
3‹-€ññá9±°C³Ô9ôó€
ð)3ó!ñÑ;°
Ô;Ó;€Ù ˜3Ÿ7™7Ó #€
Ù˜CŸH™HÓ%€ Ù˜CŸH™HÓ%€ Ù# C×$4Ñ$4Ó5ÐÙ˜cŸj™jÓ)€ Ù § ¡ Ó-€Ù § ¡ Ó,€Ù˜cŸi™iÓ(€ Ù$ S×%6Ñ%6Ó7ÐÙ˜s×0Ñ0Ó1€Ù  §¡Ó/ÐÙ˜sŸ{™{Ó+€Ù˜SŸY™YÓ'€ ñÒ6Ó7€ ñ$ò óÐð$Øñàñðñðñ    ð
ñ ð ñ ðñðñ    Ðð)Ð+=Ñ=ÀÑNÐØ!Ð$9Ñ9€ Ø    -¨l¨^Ð<€Ù ИÓÐó ñ ˆTƒ]€óò0 ð,¨Ñ1€ ò ñ&
Ð
ÓÙˆÓôU)c—o‘oóU)óóðU)ñp "Ò"CÓDÐÙ$ Z°'Ñ%9Ó:Ðñ
ØÐ/Ñ/Ø‘yÒ!PÓQÑQñSóô 9˜ó 9ó    ð 9ñ
Ð
Ð4Ñ
4±yÀ%ÀÓ7IÑ
IÓJôC˜óCóKðC÷:Hñ:Hðz'Ð2CÑ
Dr)