ML i2 UdZddlmZddlmZmZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZddl m!Z!m"Z"m#Z#ddl$m%Z%d Z&d e'd <d Z(d e'd <dZ)d e'd<dZ*d e'd<dZ+d e'd<e&e)e)e&e+e+e(e*e*e(iZ,d e'd<dddddddZ-d e'd<d1dZ.d2dZ/d3dZ0d4d Z1d5d!Z2d6d"Z3d7d#Z4ed$e5e6e7e5d%fZ8d8d&Z9d9d'Z:d:d(Z;d;d)Zd<>=<=)r,r-r/r.r1r0 reverse_opctt|jD]}t|j||}|tt fvrt |j|C|ttfvsR|tk(rt|j||j|dzdD] }t ||jstg|_ t |jyyNr!) rangelenexprinfer_condition_valuer&r(mark_block_unreachablebodyr"r$mark_block_mypy_only else_bodyr )soptionsiresultr:s W/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/reachability.py"infer_reachability_of_if_statementrB5s 3qvv; &qvvay': lJ/ / "166!9 -  Y/ /"%QVVAY/q1uw -&t, -;;#Bi "1;; / -ct|jD]\}}t|j|}| t ||}nt }|t tfvs|t tfvrt|j|n>|t tfvr0|t tfvr"|j|dzdD] }t||tk(st|j|yr4) enumerateguardsinfer_pattern_valuepatternsr8r"r&r(r9bodiesr$r;)r=r>r?guard pattern_value guard_valuer:s rA%infer_reachability_of_match_statementrMOsahh'.5+AJJqM:  /w?K%K \:6 6+  J ; #188A; / |Y7 7K  L = Q) -&t, - ) # !! -1.rCcFt|j|ttfvSN)r8r7r&r()r=r>s rAassert_will_always_failrPks  1lJ5O OOrCcNt|tr.|jdk(rt|j|}t |S|j }d}t}t|tr|j}nUt|tr|j}n7t|tr|jdvrtSt|j|}t|j|}||h}|jdk(rMt|vrtSt|vrtS||cxk(rt k(rt S|t"t hkrt"StS|jdk(rGt"|vrt"St |vrt S||cxk(rtk(rtS|tthkrtStSt%||}|tk(rt'||j(}|tk(rV|dk(rt"}|S|dk(rt}|S|dk(s|d k(rt}|S||j*vrt}|S||j,vrt"}|S) a Infer whether the given condition is always true/false. Return ALWAYS_TRUE if always true, ALWAYS_FALSE if always false, MYPY_TRUE if true under mypy and false at runtime, MYPY_FALSE if false under mypy and true at runtime, else TRUTH_VALUE_UNKNOWN. not)orandrTrUPY2PY3MYPY TYPE_CHECKING) isinstanceropr8r7r+python_versionr*rnamerrleftrightr"r$r(r&consider_sys_version_infoconsider_sys_platformplatform always_true always_false) r7r>positive pyversionr]r@r^r_resultss rAr8r8os$ "tww%'7(G<%h//&&I D F$!yy D* %yy D& ! 77- '& &$TYY8%djj':- 77d?g%""g%  ,*,!!-\:66###"WW w&##w&!!-+-"".[)44  ""*4; ( (*41A1ABF $$ 5=!F MU] F M V^t6F M W(( ( F MW)) )!F MrCct|tr|jtSt|tr"t d|j DrtStS)Nc3@K|]}t|tk(ywrO)rGr").0ps rA z&infer_pattern_value..s 023A+-0s)rZrpatternr"ranyrHr*)rms rArGrGsM'9%'//*A GY 'C07>7G7G0-""rCc(t|tstSt|jdkDrtS|jd}|dvrtSt |j d}t|j d}||9t |j d}t|j d}t|}t|tr9t|tr)d|cxkrdkrntSt||||StSt|trzt|trj|\}}|d}|d}d|cxkr |cxkrdkrLntS|||}t|t|k(st|t|kDr|dvr t|||StS)zConsider whether expr is a comparison involving sys.version_info. Return ALWAYS_TRUE, ALWAYS_FALSE, or TRUTH_VALUE_UNKNOWN. r!r)r,r-r1r0r/r.r#r,r-) rZr r*r6 operatorscontains_sys_version_infooperandscontains_int_or_tuple_of_intsr2intfixed_comparisontuple)r7rfr[indexthinglohivals rAr`r`s{ dN +"" 4>>Q""  B 33"" %dmmA&6 7E )$--*: ;E } )$--*:;-dmmA.>? ^%*UC"8 ??' &$Ie$4b%@ @& & E5 !j&>B :B :B  R 1  Br"C3x3u:%SCJ)>2\CY'R77 rCct|trt|jdkDrtS|jd}|dvrtSt |j ddstS|j d}t|tstSt|||jSt|trt|jtstSt|jdk7st|jdtstSt |jjdstS|jjdk7rtS|j!|jdjrt"St$StS)zConsider whether expr is a comparison involving sys.platform. Return ALWAYS_TRUE, ALWAYS_FALSE, or TRUTH_VALUE_UNKNOWN. r!rrprb startswith)rZr r6rqr* is_sys_attrrsrrvvaluer calleerargsr7r]r~r"r&)r7rbr[r_s rAraras0$' t~~  "& & ^^A  \ !& &4==+Z8& & a %)& &"ekk:: D( #$++z2& & tyy>Q j1w&G& &4;;++Z8& & ;;  | +& &   tyy|11 2  ""rCTarg.cttd}|dk(r|||k(S|dk(r|||k7S|dk(r|||kS|dk(r|||k\S|dk(r|||kS|dk(r|||kDStS)N)FTr,r-r1r0r/r.)r&r"r*)r^r[r_rmaps rArvrvs{ 3D TzDEM"" TzDEM"" TzDEM"" TzDEM"" SyD5L!! SyD5L!! rCct|tr |jSt|tr]t |t k(rKg}|j D]/}t|tsy|j|j1t|SyrO) rZrrrrritemsappendrw)r7ryxs rArtrt sp$ zz$ " 4=K 'EZZ &!!W- QWW% &<  rCc`t|dryt|trt|jdr|j}t|t r |j St|tr|j4t|jt r|jj dk7rydx}}|j1t|jt sy|jj }|j1t|jt sy|jj }||fSy)N version_info)NNr!) rrZrbaserxrrrstride begin_index end_index)r7rxbeginends rArrrr.s4($ "{499n'M  eW %;;  eY '||'!%,,8ELL$ # T(9 dii *tyy~~/F rCcDd|_|jtyNT)is_unreachableacceptMarkImportsUnreachableVisitorblocks rAr9r9RsE LL.01rCc(eZdZdZddZddZddZy) rzCVisitor that flags all imports nested within a node as unreachable.cd|_yrrselfnodes rA visit_importz*MarkImportsUnreachableVisitor.visit_importZ "rCcd|_yrrrs rAvisit_import_fromz/MarkImportsUnreachableVisitor.visit_import_from]rrCcd|_yrrrs rAvisit_import_allz.MarkImportsUnreachableVisitor.visit_import_all`rrCNrrreturnNonerrrrrrrr)__name__ __module__ __qualname____doc__rrrrCrArrWsM###rCrc6|jtyrO)rMarkImportsMypyOnlyVisitorrs rAr;r;ds LL+-.rCc0eZdZdZddZddZd dZd dZy) rz8Visitor that sets is_mypy_only (which affects priority).cd|_yr is_mypy_onlyrs rArz'MarkImportsMypyOnlyVisitor.visit_importk  rCcd|_yrrrs rArz,MarkImportsMypyOnlyVisitor.visit_import_fromnrrCcd|_yrrrs rArz+MarkImportsMypyOnlyVisitor.visit_import_allqrrCcd|_yrrrs rAvisit_func_defz)MarkImportsMypyOnlyVisitor.visit_func_deftrrCNrrr)rr rr)rrrrrrrrrrCrArrhsB!!!!rCrN)r=rr>rrr)r=rr>rrr)r=rr>rrbool)r7r r>rrru)rmrrru)r7r rfztuple[int, ...]rru)r7r rbstrrru)r^rr[rr_rrru)r7r rzNone | int | tuple[int, ...])r7r rz*None | int | tuple[int | None, int | None])r7r r]rrr)rr rr)Ar __future__rtypingrr mypy.literalsr mypy.nodesrrr r r r r rrrrrrrrrrrrrr mypy.optionsr mypy.patternsrrrmypy.traverserr r"__annotations__r$r&r(r*r+r2rBrMrPr8rGr`rarurrwrrvrtrrrr9rr;rrrCrArs0W"!!.!77+ U 5 e EU+, z ! t#CtSWX EX4.8P<~#)X$#NvsCsCx1" 0 2 #$4 #/ !!1 !rC