+
    xȇiS                       R t ^ RIHt ^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
HtHtHtHt ^ RIt^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ RIHu Ht ^ R
IHtH t H!t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t( ^ RI)H*t* ^ RI+H,t, ^ RI-H.t.H/t/ ]
'       d	   ^ RI0H1t1H2t2  ! R R]"Pf                  4      t4 ! R R] Pj                  4      t5 ! R R]54      t6 ! R R] Pn                  4      t7 ! R R]74      t8 ! R R]84      t9 ! R R]74      t: ! R  R!]:4      t; ! R" R#] Px                  4      t< ! R$ R%]&4      t=R& t> ! R' R(]P~                  4      t@ ! R) R*4      tAR+ R, ltBR# )-z/manage PyTables query interface via Expressions)annotationsN)DecimalInvalidOperation)partial)TYPE_CHECKINGAnyClassVarSelfcast)lib)	Timedelta	Timestamp)UndefinedVariableError)is_list_like)expropsscope)ensure_decoded)BaseExprVisitor)is_term)extract_array)Index)pprint_thingpprint_thing_encoded)TimeUnitnptc                  B   a  ] tR t^6t$ RtR]R&   RR V 3R llltRtV ;t# )PyTablesScope
queryablesdict[str, Any]c               $    V ^8  d   QhRRRRRR/# )   levelintr   dict[str, Any] | NonereturnNone )formats   "p/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/computation/pytables.py__annotate__PyTablesScope.__annotate__;   s(     + ++
 *+ 
+    c                	Z   < \         SV `  V^,           W#R7       T;'       g    / V n        R# )   )global_dict
local_dictN)super__init__r   )selfr"   r/   r0   r   	__class__s   &&&&&r)   r2   PyTablesScope.__init__;   s*     	S$**r,   )r   )NNN)	__name__
__module____qualname____firstlineno__	__slots____annotations__r2   __static_attributes____classcell__r4   s   @r)   r   r   6   s    I+ + +r,   r   c                  ^   a  ] tR t^Ft$ R]R&   R	R ltR	R V 3R llltR t]R 4       t	Rt
V ;t# )
Termr   envc                	j    \        V\        4      '       d   T pM\        p\        P	                  V4      # N)
isinstancestrConstantobject__new__)clsnamerA   sideencodingklasss   &&&&& r)   rH   Term.__new__I   s(    dC  EE~~e$$r,   c                    V ^8  d   QhRRRR/# r!   rA   r   r%   r&   r'   )r(   s   "r)   r*   Term.__annotate__P   s     B B- Bd Br,   c                	*   < \         SV `  WW4R 7       R# )rK   rL   N)r1   r2   r3   rJ   rA   rK   rL   r4   s   &&&&&r)   r2   Term.__init__P   s    Ar,   c                	D   V P                   R 8X  dL   V P                  V P                  P                  9  d   \	        RV P                  : R24      hV P                  #  V P                  P                  V P                  RR7      #   \         d    T P                  u # i ; i)leftzname z is not definedF)is_local)rK   rJ   rA   r   	NameErrorresolver   r3   s   &r)   _resolve_nameTerm._resolve_nameS   s    99yy 3 33%		}O DEE99	88##DII#>>% 	99	s   &B BBc                	    V P                   # rC   )_valuer[   s   &r)   value
Term.valueb   s    {{r,   r'   NN)r6   r7   r8   r9   r;   rH   r2   r\   propertyr`   r<   r=   r>   s   @r)   r@   r@   F   s3    	%B B  r,   r@   c                  8   a  ] tR t^gtRR V 3R llltR tRtV ;t# )rF   c                    V ^8  d   QhRRRR/# rP   r'   )r(   s   "r)   r*   Constant.__annotate__h   s     B B- Bd Br,   c                	v   < \        V\        4      '       g   Q \        V4      4       h\        SV `  WW4R 7       R# rS   )rD   r   typer1   r2   rT   s   &&&&&r)   r2   Constant.__init__h   s1    #}--8tCy8-Ar,   c                	    V P                   # rC   )_namer[   s   &r)   r\   Constant._resolve_namel   s    zzr,   r'   rb   )r6   r7   r8   r9   r2   r\   r<   r=   r>   s   @r)   rF   rF   g   s    B B r,   rF   c                     a  ] tR t^pt$ ^tR]R&   R]R&   R]R&   R V 3R lltR	 R
 ltR tR t	]
R R l4       t]
R R l4       t]
R 4       t]
R 4       t]
R 4       tR R ltR R ltR R ltRtV ;t# )BinOprE   opr   r   z
str | None	conditionc               $    V ^8  d   QhRRRRRR/# )r!   ro   rE   r   r   r%   r&   r'   )r(   s   "r)   r*   BinOp.__annotate__w   s"      3 n SW r,   c                	N   < \         SV `  WV4       W@n        WPn        R V n        R # rC   )r1   r2   r   rL   rp   )r3   ro   lhsrhsr   rL   r4   s   &&&&&&r)   r2   BinOp.__init__w   s#    #&$ r,   c                   V ^8  d   QhRR/# r!   r%   r&   r'   )r(   s   "r)   r*   rr   }   s       r,   c                	    R # rC   r'   r[   s   &r)   _disallow_scalar_only_bool_ops$BinOp._disallow_scalar_only_bool_ops}       r,   c                	r  a a VV 3R  lpS P                   S P                  rC\        V4      '       d1   \        V4      '       d    V! VP                  VP                  4      pV# \        V4      '       g6   \        V4      '       d%   V! VP	                  S4      VP                  4      pV# \        V4      '       d6   \        V4      '       g%   V! VP                  VP	                  S4      4      pV# \        V4      '       g9   \        V4      '       g(   V! VP	                  S4      VP	                  S4      4      pX# )c                  < V f   V# Vf   V # Sp\        V \        4      '       dE   \        V\        4      '       d   \        pM\        W4      '       d   V # \        W4      '       d   V# MY\        V \        4      '       dD   \        V\        4      '       d   \        pM&\        W4      '       d   V # \        W4      '       d   V# V! SP
                  WSP                  SP                  R7      P                  4       # )z5create and return a new specialized BinOp from myself)r   rL   )	rD   ConditionBinOpJointConditionBinOpFilterBinOpJointFilterBinOpro   r   rL   evaluate)rW   rightkrM   r3   s   && r)   prBinOp.prune.<locals>.pr   s    |A$//e^44+A((K)) L * D+..e[11(A((K)) L4==hjr,   )rt   ru   r   r`   prune)r3   rM   r   rW   r   ress   ff    r)   r   BinOp.prune   s    	8 hhe4==WU^^TZZ-C 
 75>>TZZ&4C 
 T]]75>>TZZU!34C 
 $--75>>TZZ&E(:;C
r,   c                    \        V4      '       g   V.p\        V\        P                  4      '       d   VP	                  4       pV# )zinplace conform rhs)r   rD   npndarrayravel)r3   ru   s   &&r)   conformBinOp.conform   s5    C  %Cc2::&&))+C
r,   c                   V ^8  d   QhRR/# r!   r%   boolr'   )r(   s   "r)   r*   rr      s     + +$ +r,   c                4    V P                   V P                  9   # )z$return True if this is a valid field)rt   r   r[   s   &r)   is_validBinOp.is_valid   s     xx4??**r,   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   rr      s     9 9T 9r,   c                P    V P                   P                  V P                  4      RJ# )z`
return True if this is a valid column name for generation (e.g. an
actual column in the table)
N)r   getrt   r[   s   &r)   is_in_tableBinOp.is_in_table   s"     ""488,D88r,   c                b    \        V P                  P                  V P                  4      RR4      # )zthe kind of my fieldkindNgetattrr   r   rt   r[   s   &r)   r   
BinOp.kind   &     t**4884fdCCr,   c                b    \        V P                  P                  V P                  4      RR4      # )zthe meta of my fieldmetaNr   r[   s   &r)   r   
BinOp.meta   r   r,   c                b    \        V P                  P                  V P                  4      RR4      # )zthe metadata of my fieldmetadataNr   r[   s   &r)   r   BinOp.metadata   s&     t**4884j$GGr,   c                   V ^8  d   QhRR/# r!   r%   rE   r'   )r(   s   "r)   r*   rr      s     / /S /r,   c                x    VP                  V P                  4      pRV P                   RV P                   RV R2# )z2create and return the op string for this TermValue( ))tostringrL   rt   ro   )r3   vvals   && r)   generateBinOp.generate   s7    jj'488*AdggYauA..r,   c                   V ^8  d   QhRR/# )r!   r%   	TermValuer'   )r(   s   "r)   r*   rr      s     N N Nr,   c           	     @  a  V 3R lp\        S P                  4      p\        S P                  4      pVR8X  g    V'       d   VP                  R4      '       d   \	        V\
        \        34      '       d	   V! V4      p\        V4      p\        V4      P                  R4      pVP                  e   VP                  R4      p\        WP                  V4      # VP                  R4      '       d   RpRV9   d&   \        R	VP                  R4      R,          RR 4      p\	        V\        4      '       d   \!        V4      pMQ\"        P$                  ! V4      '       g   \"        P&                  ! V4      '       d   \!        VR
R7      pM\!        V4      pVP                  V4      P                  p\        \        V4      W4      # VR8X  dL   \)        S P*                  RR7      pW9  d   RpM\,        P.                  ! Wa8H  4      ^ ,          p\        WwR4      # VR8X  d4    \1        V4      p\        VP3                  RR7      4      p\        WV4      # VR8X  d   \        V4      p\        WV4      # VR8X  dP   \	        V\        4      '       d#   VP7                  4       P9                  4       R9  pM\;        V4      p\        WV4      # \	        V\        4      '       d   \        W! V4      R4      # \=        RV R\?        V4       RV R24      h  \4         d    \        T4        Li ; i)zV
convert the expression that is in the term to something that is
accepted by pytables
c                d   < SP                   e   \        V SP                   R7      # \        V 4      # )N)rL   )rL   r   r   )r`   r3   s   &r)   	stringify&BinOp.convert_value.<locals>.stringify   s)    }}(+EDMMJJ&&r,   datetime
datetime64nsNUTC	timedelta[r   s)unitcategoryT)extract_numpyintegerROUND_HALF_EVEN)roundingfloatr   stringzCannot compare z	 of type z to z column)	falsefnonnone0z[]z{} ) r   r   r   
startswithrD   r#   r   r   as_unittz
tz_convertr   r_   r
   splitrE   r   r   
is_integeris_floatr   r   r   flatnonzeror   to_integral_exactr   striplowerr   	TypeErrorrh   )	r3   conv_valr   r   r   r   r   resultv_decs	   f&       r)   convert_valueBinOp.convert_value   s   	'
 dii(dii(:$4??<+H+H(S%L11$X.%h/H *2248H{{&#..u5X==__[))Dd{J

3(;CR(@A(C(($X.))S\\(-C-C$XC8$X.''-44HS]H;;Z$T]]$GH' (<=a@VY77YT) u66@Q6RSX66W_XHX66V^(C((#>>+113 
< 
  >X66#&&Xy':HEE!(9T(^4DDgV = $   h s   L LLc                   V ^8  d   QhRR/# rx   r'   )r(   s   "r)   r*   rr   #  s       r,   c                	    R # rC   r'   r[   s   &r)   convert_valuesBinOp.convert_values#  r|   r,   )rp   rL   r   )r6   r7   r8   r9   _max_selectorsr;   r2   rz   r   r   rc   r   r   r   r   r   r   r   r   r<   r=   r>   s   @r)   rn   rn   p   s    NG (T + + 9 9 D D D D H H/
N` r,   rn   c                  `    ] tR tRt$ RtR]R&   R R ltR R ltR	 tR
 R lt	RR R llt
RtR# )r   i'  Nztuple[Any, Any, Index] | Nonefilterc                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   FilterBinOp.__annotate__*  s     S S# Sr,   c                	    V P                   f   R# \        RV P                   ^ ,           RV P                   ^,           R24      # )NzFilter: Not Initializedz[Filter : [z] -> [])r   r   r[   s   &r)   __repr__FilterBinOp.__repr__*  s;    ;;,k$++a.)9A?OqQRRr,   c                   V ^8  d   QhRR/# r!   r%   r	   r'   )r(   s   "r)   r*   r   /  s       r,   c                    V P                   e=   V P                   ^ ,          V P                  RR7      V P                   ^,          3V n         V # )zinvert the filterT)invert)r   generate_filter_opr[   s   &r)   r   FilterBinOp.invert/  sC    ;;"A''t'4ADK
 r,   c                    V P                   .# )zreturn the actual filter formatr   r[   s   &r)   r(   FilterBinOp.format9  s    }r,   c                   V ^8  d   QhRR/# r!   r%   zSelf | Noner'   )r(   s   "r)   r*   r   >  s      + r,   c                	
   V P                   '       g   \        R V  R24      hV P                  V P                  4      p\	        V4      pV P
                  '       d]   V P                  R9   dJ   \        V4      V P                  8  d0   V P                  4       pV P                  V\        V4      3V n        V # R# V P                  R9   d0   V P                  4       pV P                  V\        V4      3V n        V # \        RV  R24      h)query term is not valid [r   Nz7passing a filterable condition to a non-table indexer [==!=)r   
ValueErrorr   ru   listr   ro   lenr   r   rt   r   r   r   )r3   ru   values	filter_ops   &   r)   r   FilterBinOp.evaluate>  s    }}}8a@AAll488$cww,&3v;9L9L+L 335	#xxE&MB 77l"//1I88Yf>DK 	 I$qQ r,   c                   V ^8  d   QhRR/# )r!   r   r   r'   )r(   s   "r)   r*   r   Z  s     6 6 6r,   c                	r    V P                   R 8X  d	   V'       d   V P                   R8X  d   V'       d   R # R # )r   r   c                &    V P                  V4      ( # rC   isinaxisvalss   &&r)   <lambda>0FilterBinOp.generate_filter_op.<locals>.<lambda>\  s    tyy&6r,   c                $    V P                  V4      # rC   r  r	  s   &&r)   r  r  ^  s    diior,   )ro   )r3   r   s   &&r)   r   FilterBinOp.generate_filter_opZ  s'    GGtOF4F6655r,   r   )F)r6   r7   r8   r9   r   r;   r   r   r(   r   r   r<   r'   r,   r)   r   r   '  s,    ,0F)0S

86 6r,   r   c                  (    ] tR tRtR tR R ltRtR# )r   ia  c                	    \        R 4      h)z unable to collapse Joint FiltersNotImplementedErrorr[   s   &r)   r(   JointFilterBinOp.formatb  s    !"DEEr,   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   JointFilterBinOp.__annotate__f  s      $ r,   c                	    V # rC   r'   r[   s   &r)   r   JointFilterBinOp.evaluatef  s    r,   r'   N)r6   r7   r8   r9   r(   r   r<   r'   r,   r)   r   r   a  s    F r,   r   c                  :    ] tR tRtR R ltR tR tR R ltRtR	# )
r   ij  c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   ConditionBinOp.__annotate__k  s     A A# Ar,   c                	4    \        R V P                   R24      # )z[Condition : [z]])r   rp   r[   s   &r)   r   ConditionBinOp.__repr__k  s    nT^^,<B?@@r,   c                    \        R4      h)zinvert the conditionz6cannot use an invert condition when passing to numexprr  r[   s   &r)   r   ConditionBinOp.invertn  s    
 "D
 	
r,   c                    V P                   # )zreturn the actual ne formatrp   r[   s   &r)   r(   ConditionBinOp.formatw  s    ~~r,   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r  |  s      + r,   c                	   V P                   '       g   \        R V  R24      hV P                  '       g   R# V P                  V P                  4      pV Uu. uF  q P                  V4      NK  	  ppV P                  R9   dX   \        V4      V P                  8:  d<   V Uu. uF  q P                  V4      NK  	  ppRRP                  V4       R2V n        V # R# V P                  V^ ,          4      V n        V # u upi u upi )r   r   Nr   z | r   r   )r   r   r   r   ru   r   ro   r   r   r   joinrp   )r3   ru   r   r  vss   &    r)   r   ConditionBinOp.evaluate|  s    }}}8a@AA ll488$145A$$Q'5 77l"6{d1110671mmA&7#$UZZ^$4A!6 	 !]]6!95DN 6 8s   C7C<r!  N)	r6   r7   r8   r9   r   r   r(   r   r<   r'   r,   r)   r   r   j  s    A

 r,   r   c                  "    ] tR tRtR R ltRtR# )r   i  c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*    JointConditionBinOp.__annotate__  s      $ r,   c                	    R V P                   P                   RV P                   RV P                  P                   R2V n        V # )r   r   r   )rt   rp   ro   ru   r[   s   &r)   r   JointConditionBinOp.evaluate  s=    TXX//0$''!DHH<N<N;OqQr,   r!  N)r6   r7   r8   r9   r   r<   r'   r,   r)   r   r     s     r,   r   c                      ] tR tRtR tRtR# )UnaryOpi  c                	\   V P                   R 8w  d   \        R4      hV P                  pVP                  V4      pVeo   \	        V\
        4      '       d   VP                  f;   \	        V\
        4      '       g5   \	        V\        4      '       d   VP                  e   VP                  4       # R# )~z$UnaryOp only support invert type opsN)
ro   r  operandr   
issubclassr   rp   r   r   r   )r3   rM   r1  s   && r)   r   UnaryOp.prune  s    77c>%&LMM,,--&~..73D3D3Pun55uk22NN. >>##r,   r'   N)r6   r7   r8   r9   r   r<   r'   r,   r)   r.  r.    s    r,   r.  c                     a  ] tR tRt$ ]tR]R&   ]tR]R&   R V 3R llt	R R	 lt
R
 tR tR R ltR tR tR tRtV ;t# )PyTablesExprVisitori  zClassVar[type[ops.Term]]
const_typezClassVar[type[Term]]	term_typec                   V ^8  d   QhRR/# rx   r'   )r(   s   "r)   r*    PyTablesExprVisitor.__annotate__  s       r,   c                	   <a \         SV `  WV4       V P                   F-  pV P                  V,          p\	        V R V 2V3V3R ll4       K/  	  R# )visit_c                &   < \        \        V3/ SB # rC   )r   rn   )nodebin_opkwargss   &&r)   r  .PyTablesExprVisitor.__init__.<locals>.<lambda>  s    GE6,LV,Lr,   N)r1   r2   
binary_opsbinary_op_nodes_mapsetattr)r3   rA   engineparserr?  r>  bin_noder4   s   &&&&l  r)   r2   PyTablesExprVisitor.__init__  sK    f-ooF//7H
#$*L &r,   c                   V ^8  d   QhRR/# )r!   r%   zops.Term | UnaryOp | Noner'   )r(   s   "r)   r*   r9    s      /H r,   c                	   \        VP                  \        P                  \        P                  34      '       d&   \        R V P                  VP                  4      4      # \        VP                  \        P                  4      '       dA   V P                  V P                  VP                  4      P                  ) V P                  4      # \        VP                  \        P                  4      '       d   \        R4      hR# )r0  zUnary addition not supportedN)rD   ro   astNotInvertr.  visitr1  USubr6  r`   rA   UAddr  r3   r=  r?  s   &&,r)   visit_UnaryOp!PyTablesExprVisitor.visit_UnaryOp  s    dgg4553

4<< 899**??DJJt||$<$B$B#BDHHMM**%&DEEr,   c                	L    V P                  VP                  4      P                  # rC   )rM  r`   rP  s   &&,r)   visit_IndexPyTablesExprVisitor.visit_Index  s    zz$**%+++r,   c                	    \         P                  ! \         P                  ! 4       .VP                  ^ ,          VP                  .R7      pV P                  V4      # )    )r   rW   comparators)rJ  CompareEqtargetsr`   rM  )r3   r=  r?  cmprs   &&, r)   visit_Assign PyTablesExprVisitor.visit_Assign  s>    {{
atzzl
 zz$r,   c                   V ^8  d   QhRR/# )r!   r%   zops.Termr'   )r(   s   "r)   r*   r9    s     T T Tr,   c                	   V P                  VP                  4      pV P                  VP                  4      p VP                  p\	        V\
        4      '       d   VP                  p V P                  W4,          V P                  4      #   \         d     LRi ; i  \         d   p\        R T: RT: 24      ThRp?ii ; i)zcannot subscript z with N)
rM  r`   sliceAttributeErrorrD   r@   r6  rA   r   r   )r3   r=  r?  r`   slobjerrs   &&,   r)   visit_Subscript#PyTablesExprVisitor.visit_Subscript  s     

4::&

4::&	KKE eT""KKE	T??5<::  		  	T0	yIJPSS	Ts)   B	 '!B 	BBB>%B99B>c                	   VP                   pVP                  p\        VP                  4      pV\        P
                  8X  dE   V P                  V4      p VP                  p V P                  \        Wc4      V P                  4      # \        R VP                   24      h  \         d     LKi ; i  \         d9    \        T\        P                  4      '       d   TP                  T8X  d   Tu #  Lki ; i)zInvalid Attribute context )attrr`   rh   ctxrJ  LoadrM  rb  r7  r   rA   rD   Nameidr   r6   )r3   r=  r?  rh  r`   ri  resolveds   &&,    r)   visit_Attribute#PyTablesExprVisitor.visit_Attribute  s    yy

488n#((?zz%(H#>>$~~gh&=txxHH 5cll^DEE " 
 " $eSXX..588t3C#O$s$   B "$B0 B-,B-0>C32C3c                	p    \        V\        P                  4      '       d   \        P                  ! 4       # T# rC   )rD   rJ  InrZ  )r3   ro   s   &&r)   translate_In PyTablesExprVisitor.translate_In  s#    %b#&&11svvx9r9r,   c                	R    V P                  VP                  4      VP                  W#3# rC   )rM  ro   )r3   r=  rW   r   s   &&&&r)   _rewrite_membership_op*PyTablesExprVisitor._rewrite_membership_op  s     zz$''"DGGT88r,   r'   )r6   r7   r8   r9   rF   r6  r;   r@   r7  r2   rQ  rT  r]  re  rn  rr  ru  r<   r=   r>   s   @r)   r5  r5    sM    +3J(3&*I#* , T&F0:9 9r,   r5  c                v    \        V \        \        34      '       g   \        V 4      '       g   \	        R4      hV # )ag  
Validate that the where statement is of the right type.

The type may either be String, Expr, or list-like of Exprs.

Parameters
----------
w : String term expression, Expr, or list-like of Exprs.

Returns
-------
where : The original where clause if the check was successful.

Raises
------
TypeError : An invalid data type was passed in for w (e.g. dict).
zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExpr)rD   PyTablesExprrE   r   r   )ws   &r)   _validate_whererz    s7    $ q<-..,q//+
 	

 Hr,   c                  \    ] tR tRt$ RtR]R&   R]R&   R]R&   RR
 R lltR R ltR tRt	R	# )rx  i   ae  
Hold a pytables-like expression, comprised of possibly multiple 'terms'.

Parameters
----------
where : string term expression, PyTablesExpr, or list-like of PyTablesExprs
queryables : a "kinds" map (dict of column name -> kind), or None if column
    is non-indexable
encoding : an encoding that will encode the query terms

Returns
-------
a PyTablesExpr object

Examples
--------
'index>=date'
"columns=['A', 'D']"
'columns=A'
'columns==A'
"~(columns=['A','B'])"
'index>df.index[3] & string="bar"'
'(index>df.index[3] & index<=df.index[6]) | string="bar"'
"ts>=Timestamp('2012-02-01')"
"major_axis>=20130101"
zPyTablesExprVisitor | None_visitorr   rA   rE   r   Nc               $    V ^8  d   QhRRRRRR/# )r!   r   r$   scope_levelr#   r%   r&   r'   )r(   s   "r)   r*   PyTablesExpr.__annotate__@  s*     .& .& *.&
 .& 
.&r,   c                	n   \        V4      pW0n        R V n        R V n        R V n        R V n        R p\        V\        4      '       d$   VP                  P                  pVP                  pM\        V4      '       d   \        V4      p\        V4       F@  w  rx\        V\        4      '       d   VP                  P                  pK3  \        V4      W&   KB  	  RP                  \        P                   ! V4       Uu. uF	  pRV R2NK  	  up4      pMTpW`n
        \#        V^,           VR7      V n        Ve~   \        V P                  \$        4      '       d\   V P                  P&                  P)                  V4       \+        V P                  VRRVR7      V n        V P-                  4       V n        R # R # R # u upi )Nz & r   r   )r0   pytables)r   rE  rD  rL   )rz  rL   rp   r   termsr|  rD   rx  rA   r   r   r   r   	enumerater%  comflattenr   rE   r   updater5  parse)	r3   wherer   rL   r~  r0   _whereidxry  s	   &&&&&    r)   r2   PyTablesExpr.__init__@  s`     & 
 <@
e\**JZZF%  KE#E*a..!"J!0!3EJ	 +
 ZZ3;;u3E F3Ea1QCq3E FGF F	 qZH!jC&@&@HH&&z2/%!!!DM DJ 'A! !Gs   7F2c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r  p  s     ' '# 'r,   c                	r    V P                   e   \        V P                   4      # \        V P                  4      # rC   )r  r   r   r[   s   &r)   r   PyTablesExpr.__repr__p  s*    ::!

++DII&&r,   c                    V P                   P                  \        4      V n         T P                   P                  \        4      T n        T P                  T P                  3#   \         d#   p\        RT P                   RT  R24      ThRp?ii ; i  \         d#   p\        RT P                   RT  R24      ThRp?ii ; i)z2create and return the numexpr condition and filterzcannot process expression [z], [z] is not a valid conditionNz] is not a valid filter)	r  r   r   rp   rb  r   r   r   r   )r3   rd  s   & r)   r   PyTablesExpr.evaluateu  s    	!ZZ--n=DN	****;7DK ~~t{{**  	-dii[TF C+ + 	  	-dii[TF C( ( 	s.   $A# $B #B.BBC B;;C )r|  rp   rL   rA   r   r   r  )NNrW  )
r6   r7   r8   r9   __doc__r;   r2   r   r   r<   r'   r,   r)   rx  rx     s*    6 )(	
I.&`'
+r,   rx  c                  2    ] tR tRtRtR R ltR R ltRtR# )	r   i  z<hold a term value the we use to construct a condition/filterc                    V ^8  d   QhRRRR/# )r!   r   rE   r%   r&   r'   )r(   s   "r)   r*   TermValue.__annotate__  s      s t r,   c                	d    \        V\        4      '       g   Q V4       hWn        W n        W0n        R # rC   )rD   rE   r`   	convertedr   )r3   r`   r  r   s   &&&&r)   r2   TermValue.__init__  s)    $$$*d*$
"	r,   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r    s     
# 
#C 
#r,   c                    V P                   R8X  d*   Ve   \        V P                  4      # RV P                   R2# V P                   R8X  d   \        V P                  4      # \        V P                  4      # )z6quote the string if not encoded else encode and returnr   "r   )r   rE   r  repr)r3   rL   s   &&r)   r   TermValue.tostring  sc    99 #4>>**t~~&a((YY'! ''4>>""r,   )r  r   r`   N)r6   r7   r8   r9   r  r2   r   r<   r'   r,   r)   r   r     s    F
# 
#r,   r   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r*     s     - -4 -r,   c                   a  \        S \        4      '       g   R# \        P                  \        P                  ,           R,           p\
        ;QJ d    V 3R lV 4       F  '       g   K   R# 	  R# ! V 3R lV 4       4      # )z7loose checking if s is a pytables-acceptable expressionFc              3  ,   <"   T F	  qS9   x  K  	  R # 5irC   r'   ).0ro   r   s   & r)   	<genexpr>#maybe_expression.<locals>.<genexpr>  s     ,2Qws   T)=)rD   rE   r5  rA  	unary_opsany)r   
operationss   f r)   maybe_expressionr    s[    a$//2E2O2OORXXJ 3,,33,3,3,,,,r,   )Cr  
__future__r   rJ  decimalr   r   	functoolsr   typingr   r   r   r	   r
   numpyr   pandas._libsr   pandas._libs.tslibsr   r   pandas.errorsr   pandas.core.dtypes.commonr   pandas.core.commoncorecommonr  pandas.core.computationr   r   r   _scopepandas.core.computation.commonr   pandas.core.computation.exprr   pandas.core.computation.opsr   pandas.core.constructionr   pandas.core.indexes.baser   pandas.io.formats.printingr   r   pandas._typingr   r   Scoper   r@   rF   rn   r   r   r   r   r.  r5  rz  Exprrx  r   r  r'   r,   r)   <module>r     s   5 " 
     1 2     
 : 8 / 2 *
 +FLL + 388 Bt tCII tn76% 76t{ *U *Z. ckk (P9/ P9f6f+499 f+R# #,-r,   