hyb
2025-12-31 6cdcd01f77e11b72c323603e27ebdb85b15223c9
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Ë
nñúhOãó&—UdZddlmZddlZddlmZddlZddlZddl    m
Z
ddl m Z ddl mZddlmZerddlZerdd    lmZdad
ed <gad ed <eadaded<daded<hd£hd£dœZdZd3d4d„Zd5d6d„Zd„Zd7d„Z d„Z!iejDd“ejFd“ejHd“ejJd“ejLd“ejNd“ejPd“ejRd“ejTd“ejVd“ejXd“ejZd“ej\d“ej^d“ej`d“ej$d “ejbd!“ejdd"ejfd#ejhd$ejjd%ejld%ejnd&ejpd&ejrd'ejtd'e;dejxdi ¥Z=d(„Z>d)„Z?ee
d*««d+„Z@d&d%d'd,œZAd7d-„ZBd3d8d.„ZCd3d8d/„ZDd3d4d0„ZEd9d1„ZFd:d2„ZGy);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_RESULTzFuncType | NoneÚ    _evaluateÚ_where>ÚboolÚint32Úint64Úfloat32Úfloat64>rrr)ÚevaluateÚwherei@Bcó^—tr|atrtntatrt
ayt ay©N)rÚ USE_NUMEXPRÚ_evaluate_numexprÚ_evaluate_standardr Ú_where_numexprÚ_where_standardr©Úvs úVH:\Change_password\venv_build\Lib\site-packages\pandas/core/computation/expressions.pyÚset_use_numexprr -s$€õ؈ õ
&1Õ!Ô6H€IÝ*Œ^F´Fócóv—tr3tr,|€tj«}tj|«yyyr)rrÚneÚdetect_number_of_coresÚset_num_threads)Úns rÚset_numexpr_threadsr':s2€õ[Ø ˆ9Ü×)Ñ)Ó+ˆAÜ
×ј1Õð)Ðr!có6—tr td«|||«S)z
    Standard evaluation.
    F)r
Ú_store_test_result)ÚopÚop_strÚaÚbs    rrrCs€õܘ5Ô!Ù ˆa‹8€Or!cóҗ|e|jtkDrRt«}||fD])}t|d«sŒ||jj
hz}Œ+t |«r t||k\ryy)z,return a boolean if we WILL be using numexprÚdtypeTF)ÚsizeÚ _MIN_ELEMENTSÚsetÚhasattrr/ÚnameÚlenÚ_ALLOWED_DTYPES)r*r+r,r-Ú dtype_checkÚdtypesÚos       rÚ_can_use_numexprr:Lsg€à Ðà 6‰6”MÒ !ä"›uˆFؘVò -ä˜1˜gÕ&ؘqŸw™wŸ|™|˜nÑ,‘Fð -ô v”;¤/°+Ñ">À&Ò"HØà r!cór—d}t||||d«rZ|jjd«jd«}|r||}}|}|}    t    j
d|›d||dœd¬«}|r||}}tr t|du«|€t||||«}|S#t $rYŒ6t$rt|||«rn‚YŒOwxYw)    NrÚ_Úrza_value z b_value)Úa_valueÚb_valueÚsafe©Ú
local_dictÚcasting) r:Ú__name__ÚstripÚ
startswithr#rÚ    TypeErrorÚNotImplementedErrorÚ_bool_arith_fallbackr
r)r)r*r+r,r-ÚresultÚ is_reversedr>r?s        rrr_sã€Ø €F䘘F A q¨*Ô5Ø—k‘k×'Ñ'¨Ó,×7Ñ7¸Ó<ˆ Ù àaˆqˆAàˆØˆð    Ü—[‘[ؘ6˜( (Ð+Ø'.¸7ÑCØôˆFñ àaˆqˆAåܘ6¨Ð-Ô.à €~Ü# B¨°°1Ó5ˆà €Møô)ò    ñ Ü"ò    Ü# F¨A¨qÔ1Øàñð    úsÁB    B6ÂB6Â5B6ú+Ú*ú-ú/z**z==z!=z<=ú<z>=ú>ú&ú|ú^có0—tj|||«Sr)Únpr)Úcondr,r-s   rrr¬s€ä 8‰8D˜!˜QÓ Ðr!có~—d}tdd||d«rtjd|||dœd¬«}|€ t|||«}|S)Nrz#where(cond_value, a_value, b_value))Ú
cond_valuer>r?r@rA)r:r#rr)rWr,r-rJs    rrr±sO€à €F䘘g q¨!¨WÔ5Ü—‘Ø 1Ø&*°qÀQÑGØô
ˆð €~Ü   q¨!Ó,ˆà €Mr!zcompute.use_numexprc󈗠   |jtk(S#t$r#t|ttj
f«cYSwxYwr)r/rÚAttributeErrorÚ
isinstancerVÚbool_)Úxs rÚ_has_bool_dtyper_Æs:€ð/؏w‰wœ$‰ÐøÜ ò/ܘ!œd¤B§H¡HÐ-Ó.Ò.ð/ús‚•)AÁA)rLrMrNc    óÀ—t|«rSt|«rH|tvr@tjdt    |«›dt    t|«›dt «¬«yy)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)r_Ú_BOOL_OP_UNSUPPORTEDÚwarningsÚwarnÚreprr)r+r,r-s   rrIrIÐsb€ô qÔœo¨aÔ0Ø Ô)Ñ )Ü M‰MØ9¼$¸v»,¸ðHäÔ0°Ñ8Ó9Ð:¸)ðEô,Ó-õ     ð Ø r!cóT—t|}||rt||||«St||||«S)zô
    Evaluate and return the expression of the op on a and b.
 
    Parameters
    ----------
    op : the actual operand
    a : left operand
    b : right operand
    use_numexpr : bool, default True
        Whether to try to use numexpr.
    )Ú_op_str_mappingr r)r*r,r-Ú use_numexprr+s     rrrâs9€ô˜RÑ  €FØ ÐÙ ä˜R ¨¨AÓ.Ð .Ü ˜b &¨!¨QÓ /Ð/r!cóJ—t€J‚|r t|||«St|||«S)zý
    Evaluate the where condition cond on a and b.
 
    Parameters
    ----------
    cond : np.ndarray[bool]
    a : return if cond is True
    b : return if cond is False
    use_numexpr : bool, default True
        Whether to try to use numexpr.
    )rr)rWr,r-rhs    rrrös/€ô Ð ÐÐ Ù!,Œ6$˜˜1Ó ÐM´/À$ÈÈ1Ó2MÐMr!có —|agay)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 rs rÚ set_test_moderks€ð€J؁Lr!có4—|rtj|«yyr)r Úappend)Ú used_numexprs rr)r)s€ÙÜ×јLÕ)ðr!có—t}ga|S)z1
    Get test result and reset test_results.
    )r )Úress rÚget_test_resultrqs€ô
€CØ€LØ €Jr!)T)rrÚreturnÚNoner)rrrs)rrr)rhr)rnrrrrs)rrr )HÚ__doc__Ú
__future__rÚoperatorÚtypingrrcÚnumpyrVÚpandas._configrÚpandas.util._exceptionsrÚ pandas.corerÚpandas.core.computation.checkrÚnumexprr#Úpandas._typingr    r
Ú__annotations__r rr rr6r1r r'rr: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Úrdivmodrgrrr_rbrIrrrkr)rq©r!rú<module>rœsdðòõ#ãÝ Ûãå%å4å!Ý;áÛáÝ'à€
ˆKÓØ€ ˆjÓØ€ Ø!€    ˆ?Ó!Ø€ˆÓòAÚ )ñ€ð € ô
@ôòóò&&ðR!Ø ‡LL#ð!à ‡NNCð!ð ‡LL#ð!ð‡NNCð    !ð
 ‡LL#ð !ð ‡NNCð !ð ×ѐcð!ð×јð!ð ×ѐtð!ð×јð!ð ‡LL$ð!ð ‡NNDð!!ð" ‡LL$ð#!ð$‡NNDð%!ð& ‡KKð'!ð( ‡KKð)!ð* ‡KKð+!ð, ‡KKØ ‡KKØ ‡KKØ ‡MM3Ø ‡OOSØ ‡LL#Ø ‡NNCØ ‡LL#Ø ‡NNCØ
ˆDØ ×ѐtñA!€òH ò
ñ$‘
Ð0Ó1Ô2ò/ð! s°Ñ5Ðóô$0ô( Nô     ó*ô
r!