TL iddlmZmZddlmZmZmZddlmZddl m Z GddZ e ddZ e d d Z e d d Zd ZddZdZdZy ))DictOptional)get_flow_branch_keywordis_scopeget_parent_scope)execution_allowed)is_big_annoying_librarycXeZdZUiZeeedfed<deededdfdZ dZ dZ d Z y) Status lookup_tablevaluenamereturnNcF||_||_|tj|<yN)_value_namer r )selfr rs b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/jedi/inference/flow_analysis.py__init__zStatus.__init__ s   %)E"cF|turtS|turtStSr) REACHABLE UNREACHABLEUNSURErs rinvertz Status.inverts# 9   [  Mrcjt||fvrtS|jr|jrtStSr)rrrr)rothers r__and__zStatus.__and__s* dE] "M $  9 M+ MrcNdt|jd|jdS)N)type__name__rrs r__repr__zStatus.__repr__s!$Z00$**==r) r% __module__ __qualname__r rrbool__annotations__strrrr r&rrr r sH35L$x~x/05*htn*C*D* N >rr T reachableF unreachableNunsurec#LK t|d}| t|ry| w)NT include_flows)rr)nodes r_get_flow_scopesr4's- D9 <8D>  s"$ct|s|jjstSt |d}|t t |}t t |}d}|D]d}||vst||} t||} | | k(}|jdk(r |s+tcS|jdk(r|s| dk(r | dk(rtcS|sdn|||k(r|rtS|j}|t||||S)NTr1if_stmttry_stmtelseexcept) r inference_stateflow_analysis_enabledrrlistr4rr$rrparent _break_check) context value_scoper3 origin_scopefirst_flow_scopeorigin_flow_scopesnode_flow_scopesbranch_matches flow_scope node_keywordorigin_keywords rreachability_checkrI/sw'**@@ 'DA!"2<"@A 0 67, J--6z4H !8\!R!-!???i/)**__ 2)n.F , 8**! ,&</N  '..L& .> EErct}|jdk(rs|j|rB|jD]}t ||}|tt fvsn|j }n4|j|}|!t ||}n|jdvrt S|tt fvr|S||k7r-||jk7rt|d}|t||||zS|S)Nr6)r7 while_stmtTr1) rr$is_node_after_elseget_test_nodes _check_ifrrget_corresponding_test_noderr=rr>)r?r@rFr3r- check_node flow_nodes rr>r>XsI)#  ( ( .(779  %gz: F 33 "((*I">>tDI$%gy9 6 6 [&))j [J4E4E%E%jE <j$OOOrc>t|j|5}|stcdddS|j|}t d|D}t |dk(r*t j|jcdddStcdddS#1swYyxYw)Nc3<K|]}|jywr) py__bool__).0xs r z_check_if..ys3Q\\^3s) rr:r infer_nodesetlenr r pop)r?r3allowedtypesvaluess rrNrNss 722D 9 W  ""4(3U33 v;! &&vzz|4     sBABBBr)typingrrjedi.parser_utilsrrrjedi.inference.recursionrjedi.inference.helpersr r rrrr4rIr>rNr,rrrdsZ!QQ6:>>4 4 % UM* h &FR6 r