+
    xȇi                      a  0 t $ R t^ RIHt ^ RIt^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHtHt ^ RIHt ]'       d   ^ RIHt ]! ]],           4      tR	 R
 lt ! R R]P,                  R7      t ! R R]4      t ! R R]4      tR]R]/tR]R&   R# )z)
Engine classes for :func:`~pandas.eval`
)annotationsN)TYPE_CHECKING)NumExprClobberingError)align_termsreconstruct_object)MATHOPS
REDUCTIONS)printing)Exprc                    V ^8  d   QhRRRR/# )   exprr
   returnNone )formats   "o/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/computation/engines.py__annotate__r      s     
 
$ 
4 
    c                    V P                   pV\        ,          pV'       d=   RP                  V Uu. uF  p\        V4      NK  	  up4      p\	        RV  RV R24      hR# u upi )zm
Attempt to prevent foot-shooting in a helpful way.

Parameters
----------
expr : Expr
    Terms can contain
z, zVariables in expression "z" overlap with builtins: ()N)names_ne_builtinsjoinreprr   )r   r   overlapxss   &    r   _check_ne_builtin_clashr      sc     JJEl"GII01tAw01$'v-Gs!L
 	
 0s   A c                  |    ] tR t^0tRtRtR R ltR R ltR R lt]	R	 R
 l4       t
]P                  R 4       tRtR# )AbstractEnginez/Object serving as a base class for all engines.Fc                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   AbstractEngine.__annotate__5   s          r   c                	<    Wn         R V n        R V n        R V n        R # N)r   aligned_axesresult_typeresult_name)selfr   s   &&r   __init__AbstractEngine.__init__5   s    	 r   c                   V ^8  d   QhRR/# )r   r   strr   )r   s   "r   r   r#   ;   s     0 0 0r   c                B    \         P                  ! V P                  4      # )zW
Convert an expression for evaluation.

Defaults to return the expression as a string.
)r	   pprint_thingr   r)   s   &r   convertAbstractEngine.convert;   s     $$TYY//r   c                   V ^8  d   QhRR/# )r   r   objectr   )r   s   "r   r   r#   C   s     
 
& 
r   c                @   V P                   '       g3   \        V P                  P                  4      w  V n        V n        V n        V P                  4       p\        V P                  VV P
                  V P                  P                  P                  V P                  4      # )z
Run the engine on the expression.

This method performs alignment which is necessary no matter what engine
is being used, thus its implementation is in the base class.

Returns
-------
object
    The result of the passed expression.
)
_is_alignedr   r   termsr'   r&   r(   	_evaluater   return_type)r)   ress   & r   evaluateAbstractEngine.evaluateC   s     DO		EADd/1A
 nn!IIOO''
 	
r   c                   V ^8  d   QhRR/# )r   r   boolr   )r   s   "r   r   r#   _   s     N NT Nr   c                	J    V P                   R J;'       d    V P                  R J# r%   )r&   r'   r0   s   &r   r6   AbstractEngine._is_aligned^   s&      ,MM1A1A1MMr   c                    R# )z
Return an evaluated expression.

Parameters
----------
env : Scope
    The local and global environment in which to evaluate an
    expression.

Notes
-----
Must be implemented by subclasses.
Nr   r0   s   &r   r8   AbstractEngine._evaluateb   s    r   )r&   r   r(   r'   N)__name__
__module____qualname____firstlineno____doc__has_neg_fracr*   r1   r;   propertyr6   abcabstractmethodr8   __static_attributes__r   r   r   r    r    0   sI    9L 0
6 N N 	 r   r    )	metaclassc                  $    ] tR t^stRtRtR tRtR# )NumExprEnginezNumExpr engine classTc                	    ^ RI pV P                  4       pV P                  P                  pVP                  p\        V P                  4       VP                  W$R7      # )    N)
local_dict)numexprr1   r   env
full_scoper   r;   )r)   ner   rT   scopes   &    r   r8   NumExprEngine._evaluatex   sE     LLNiimm		*{{1{//r   r   N)rC   rD   rE   rF   rG   rH   r8   rL   r   r   r   rO   rO   s   s    L	0r   rO   c                  0    ] tR t^tRtRtR tR R ltRtR# )PythonEnginezG
Evaluate an expression in Python space.

Mostly for testing purposes.
Fc                	"    V P                  4       # r%   )r   r0   s   &r   r;   PythonEngine.evaluate   s    yy{r   c                   V ^8  d   QhRR/# r"   r   )r   s   "r   r   PythonEngine.__annotate__   s      4 r   c                	    R # r%   r   r0   s   &r   r8   PythonEngine._evaluate   s    r   r   N)	rC   rD   rE   rF   rG   rH   r;   r8   rL   r   r   r   rZ   rZ      s     L r   rZ   rS   pythonzdict[str, type[AbstractEngine]]ENGINES)__conditional_annotations__rG   
__future__r   rJ   typingr   pandas.errorsr   pandas.core.computation.alignr   r   pandas.core.computation.opsr   r   pandas.io.formatsr	   pandas.core.computation.exprr
   	frozensetr   r   ABCMetar    rO   rZ   rb   __annotations__)rc   s   @r   <module>rn      s    # 
   0
 '1:-.
&@s{{ @F0N 0"> " }l,	( r   