zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
¬ý°d ã@sÔUdZddlmZddlZddlmZddlmZddlm    Z    m
Z
ddl m Z m Z ddlmZerndd    lmZee e ƒZd
d d œd d„ZGdd„dejdZGdd„deƒZGdd„deƒZeedœZded<dS)z)
Engine classes for :func:`~pandas.eval`
é)Ú annotationsN)Ú TYPE_CHECKING)ÚNumExprClobberingError)Ú align_termsÚreconstruct_object)ÚMATHOPSÚ
REDUCTIONS)Úprinting)ÚExprr
ÚNone)ÚexprÚreturncCs@|j}|t@}|r<d dd„|Dƒ¡}td|›d|›dƒ‚dS)z…
    Attempt to prevent foot-shooting in a helpful way.
 
    Parameters
    ----------
    expr : Expr
        Terms can contain
    z, cSsg|] }t|ƒ‘qS©)Úrepr)Ú.0ÚxrrúVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/computation/engines.pyÚ
<listcomp>)sz+_check_ne_builtin_clash.<locals>.<listcomp>zVariables in expression "z" overlap with builtins: (ú)N)ÚnamesÚ _ne_builtinsÚjoinr)r rÚoverlapÚsrrrÚ_check_ne_builtin_clashs    ÿrc@s^eZdZdZdZddœdd„Zddœdd    „Zd
dœd d „Zed dœdd„ƒZ    e
j dd„ƒZ dS)ÚAbstractEnginez/Object serving as a base class for all engines.Fr ©r cCs||_d|_d|_dS©N)r Ú aligned_axesÚ result_type)Úselfr rrrÚ__init__4szAbstractEngine.__init__ÚstrcCs t |j¡S)zo
        Convert an expression for evaluation.
 
        Defaults to return the expression as a string.
        )r    Z pprint_thingr ©r rrrÚconvert9szAbstractEngine.convertÚobjectcCs:|jst|jjƒ\|_|_| ¡}t|j||j|jjjƒS)a*
        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_alignedrr ZtermsrrÚ    _evaluaterÚ return_type)r ÚresrrrÚevaluateAs ÿzAbstractEngine.evaluateÚboolcCs|jdk    o|jdk    Sr)rrr#rrrr&VszAbstractEngine._is_alignedcCsdS)a
        Return an evaluated expression.
 
        Parameters
        ----------
        env : Scope
            The local and global environment in which to evaluate an
            expression.
 
        Notes
        -----
        Must be implemented by subclasses.
        Nrr#rrrr'ZszAbstractEngine._evaluateN) Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú has_neg_fracr!r$r*Úpropertyr&ÚabcÚabstractmethodr'rrrrr/sr)Ú    metaclassc@seZdZdZdZdd„ZdS)Ú NumExprEnginezNumExpr engine classTcCs6ddl}| ¡}|jj}|j}t|jƒ|j||dS)Nr)Z
local_dict)Únumexprr$r ÚenvZ
full_scoperr*)r Únerr7Zscoperrrr'ps 
zNumExprEngine._evaluateN)r,r-r.r/r0r'rrrrr5ksr5c@s*eZdZdZdZdd„Zddœdd„Zd    S)
Ú PythonEnginezS
    Evaluate an expression in Python space.
 
    Mostly for testing purposes.
    FcCs| ¡Sr)r r#rrrr*…szPythonEngine.evaluater rcCsdSrrr#rrrr'ˆszPythonEngine._evaluateN)r,r-r.r/r0r*r'rrrrr9|sr9)r6Úpythonzdict[str, type[AbstractEngine]]ÚENGINES)r/Ú
__future__rr2ÚtypingrZ pandas.errorsrZpandas.core.computation.alignrrZpandas.core.computation.opsrrZpandas.io.formatsr    Zpandas.core.computation.exprr
Ú    frozensetrrÚABCMetarr5r9r;Ú__annotations__rrrrÚ<module>s"      <þ