+
    xȇi                     z  a  0 t $ R t^ RIHt ^ RIt^ RIHt ^ RIt^ RIt	^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ]'       d   ^ RIt]'       d   ^ RIHt RsR	]R
&   . sR]R&   ]sRsR]R&   RsR]R&   R0 R9mR0 R:m/tRtR;R R lltR<R R lltR t R R lt!R t"/ ]PF                  Rb]PH                  Rb]PJ                  Rb]PL                  Rb]PN                  Rb]PP                  Rb]PR                  Rb]PT                  Rb]PV                  Rb]PX                  Rb]PZ                  Rb]P\                  Rb]P^                  Rb]P`                  Rb]Pb                  R b]P&                  R!b]Pd                  R"b]Pf                  R#]Ph                  R$]Pj                  R%]Pl                  R&]Pn                  R&]Pp                  R']Pr                  R']Pt                  R(]Pv                  R(]<R]Pz                  R/Ct>R) t?R* t@]! ]! R+4      4       R, tARR'RR&RR(/tBR- R. ltCR;R/ R0 lltDR;R1 R2 lltER;R3 R4 lltFR5 R6 ltGR7 R8 ltHR# )=zL
Expressions
-----------

Offer fast expression evaluation through numexpr

)annotationsN)TYPE_CHECKING)
get_option)find_stack_level)	roperator)NUMEXPR_INSTALLED)FuncTypezbool | None
_TEST_MODE
list[bool]_TEST_RESULTzFuncType | None	_evaluate_whereevaluatewherei@B c                    V ^8  d   QhRRRR/#    vboolreturnNone )formats   "s/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/computation/expressions.py__annotate__r   .   s     
@ 
@t 
@t 
@    c                    \         '       d   V s\        '       d   \        M\        s\        '       d	   \
        sR # \        sR # N)r   USE_NUMEXPR_evaluate_numexpr_evaluate_standardr   _where_numexpr_where_standardr   r   s   &r   set_use_numexprr$   .   s+     
 &1[!6HI*{^FFr   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   ;   s      4 r   c                    \         '       d@   \        '       d2   V f   \        P                  ! 4       p \        P                  ! V 4       R # R # R # r   )r   r   nedetect_number_of_coresset_num_threads)ns   &r   set_numexpr_threadsr+   ;   s7     [[9))+A
1 )r   c                @    \         '       d   \        R4       V ! W#4      # )z
Standard evaluation.
F)r	   _store_test_result)opop_strleft_opright_ops   &&&&r   r    r    D   s     z5!g  r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   M   s      D r   c                   Ve   VP                   \        8  dk   \        4       pW#3 F4  p\        VR4      '       g   K  WVP                  P
                  0,          pK6  	  \        V4      '       d   \        V,          V8  d   R# R# )z2return left_op boolean if we WILL be using numexprdtypeTF)size_MIN_ELEMENTSsethasattrr5   namelen_ALLOWED_DTYPES)r.   r/   r0   r1   dtype_checkdtypesos   &&&&&  r   _can_use_numexprr@   M   sd    <<-'"uF(1g&&ww||n,F ) v;;/+">&"Hr   c                   R p\        WW#R4      '       de   V P                  P                  R4      P                  R4      pV'       d   Y2r2TpTp \        P
                  ! RV R2RVRV/RR	7      pT'       d   Y2r2\        '       d   \        VR J4       Vf   \        WW#4      pV#   \         d     LB\         d    \        YT4      '       d    L`h i ; i)
Nr   _rzleft_value z right_value
left_valueright_valuesafe
local_dictcasting)r@   __name__strip
startswithr'   r   	TypeErrorNotImplementedError_bool_arith_fallbackr	   r-   r    )r.   r/   r0   r1   resultis_reversedrD   rE   s   &&&&    r   r   r   `   s    FGzBBkk'',77< (X
	[[fX\2(*m[QF  (Xz6-.~#BBM)  	 " 	#FX>>		s   !B% %C2C;CC+*-/z**z==z!=z<=<z>=>&|^c                0    \         P                  ! WV4      # r   )npr   )condr0   r1   s   &&&r   r"   r"      s    88D8,,r   c           	         R p\        R RWR4      '       d    \        P                  ! RRV RVRV/RR7      pVf   \        WV4      pV# )Nr   z#where(cond_value, a_value, b_value)
cond_valuea_valueb_valuerF   rG   )r@   r'   r   r"   )r]   r0   r1   rP   s   &&& r   r!   r!      sT    Fgw'BB1$dIw	8T
 ~ 9Mr   zcompute.use_numexprc                     V P                   \        8H  #   \         d$    \        T \        \        P
                  34      u # i ; ir   )r5   r   AttributeError
isinstancer\   bool_)xs   &r   _has_bool_dtyperg      s:    /ww$ /!dBHH-../s    +AAc                   V ^8  d   QhRR/# r3   r   )r   s   "r   r   r      s      t r   c                    \        V4      '       dS   \        V4      '       dB   V \        9   d7   \        P                  ! RV : R\        V ,          : R2\	        4       R7       R# R# )z
Check if we should fallback to the python `_evaluate_standard` in case
of an unsupported operation by numexpr, which is the case for some
boolean ops.
z'evaluating in Python space because the z> operator is not supported by numexpr for the bool dtype, use z	 instead.)
stacklevelTF)rg   _BOOL_OP_UNSUPPORTEDwarningswarnr   )r/   r0   r1   s   &&&r   rO   rO      s^     wOH$=$=))MM9& D+F36iA ,-	 r   c                   V ^8  d   QhRR/# r   use_numexprr   r   )r   s   "r   r   r      s     = = =r   c                d    \         V ,          pVe   V'       d   \        WW4      # \        WW4      # )z
Evaluate and return the expression of the op on left_op and right_op.

Parameters
----------
op : the actual operand
left_op : left operand
right_op : right operand
use_numexpr : bool, default True
    Whether to try to use numexpr.
)_op_str_mappingr   r    )r.   r0   r1   rp   r/   s   &&&& r   r   r      s1     R FR;;b'<<r   c                   V ^8  d   QhRR/# ro   r   )r   s   "r   r   r      s     8 8 8r   c                V    \         f   Q hV'       d   \        WV4      # \        WV4      # )z
Evaluate the where condition cond on left_op and right_op.

Parameters
----------
cond : np.ndarray[bool]
left_op : return if cond is True
right_op : return if cond is False
use_numexpr : bool, default True
    Whether to try to use numexpr.
)r   r"   )r]   r0   r1   rp   s   &&&&r   r   r      s-     dX..th77r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   
  s     	 	T 	T 	r   c                    V s . sR# )z
Keeps track of whether numexpr was used.

Stores an additional ``True`` for every successful use of evaluate with
numexpr since the last ``get_test_result``.
N)r	   r   r#   s   &r   set_test_moderw   
  s     JLr   c                    V ^8  d   QhRRRR/# )r   used_numexprr   r   r   r   )r   s   "r   r   r     s     * *T *d *r   c                D    V '       d   \         P                  V 4       R # R # r   )r   append)ry   s   &r   r-   r-     s    L) r   c                   V ^8  d   QhRR/# )r   r   r
   r   )r   s   "r   r   r     s       r   c                     \         p . s V # )z)
Get test result and reset test_results.
)r   )ress    r   get_test_resultr     s    
 CLJr   >   r   int32int64float32float64>   r   r   r   )Tr   )I__conditional_annotations____doc__
__future__r   operatortypingr   rl   numpyr\   pandas._configr   pandas.util._exceptionsr   pandas.corer   pandas.core.computation.checkr   numexprr'   pandas._typingr   r	   __annotations__r   r   r   r   r<   r7   r$   r+   r    r@   r   addraddmulrmulsubrsubtruedivrtruedivfloordiv	rfloordivmodrmodpowrpoweqleltgegtand_rand_or_ror_xorrxordivmodrdivmodrr   r"   r!   rg   rk   rO   r   r   rw   r-   r   )r   s   @r   <module>r      so   #      % 4 ! ;'
K j !	? !  @) 
@!&&R!LL#!NNC! LL#! NNC	!
 LL#! NNC! c! ! t! ! LL$!  NND!!" LL$#!$ NND%!& KK'!( KK)!* KK+!, KKKKKKMM3OOSLL#NNCLL#NNC
DtA!H-
$ 
01 2/ S#sC5 $=(8&	*
r   