+
    ÏÜ³j†  ã                  ó  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   "Ú`/home/luca/screen-checking/.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   € ð �J‰J€EØ”lÕ"€GçØ�I‰I©Ó0© 1”t˜A–w©Ñ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   € ô ×$Ò$ T§Y¡YÓ/Ð/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ÑAˆDÔ˜dÔ/°Ô1Að
 �n‰nÓˆÜ!Ø×ÑØØ×ÑØ�I‰I�O‰O×'Ñ'Ø×Ñó
ð 	
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°×1AÑ1AÈÐ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   € Ûð �L‰L‹Nˆà�i‰i�m‰mˆØ—‘ˆÜ §	¡	Ô*Ø�{‰{˜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   € Ø�y‰y‹{Ð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0�Nô 0ô"�>ô ð" ˆ}Øˆlð,€Ð	(õ r   