ó
    Ð]jç  ã                   ó¦   • S SK JrJr  S SKJrJrJr  S SKJr  S SK	J
r
   " S S5      r\" SS5      r\" S	S
5      r\" SS5      rS rSS jrS rS rg)é    )ÚDictÚOptional)Úget_flow_branch_keywordÚis_scopeÚget_parent_scope)Úexecution_allowed)Úis_big_annoying_libraryc                   ób   • \ rS rSr% 0 r\\\   S 4   \S'   S\\   S\	SS4S jr
S rS	 rS
 rSrg)ÚStatusé   Úlookup_tableÚvalueÚnameÚreturnNc                 óB   • Xl         X l        U [        R                  U'   g ©N)Ú_valueÚ_namer   r   )Úselfr   r   s      ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/flow_analysis.pyÚ__init__ÚStatus.__init__   s   € ØŒØŒ
Ø%)Œ×Ñ˜EÒ"ó    c                 óJ   • U [         L a  [        $ U [        L a  [         $ [        $ r   )Ú	REACHABLEÚUNREACHABLEÚUNSURE©r   s    r   ÚinvertÚStatus.invert   s#   € Ø”9ÒÜÐØ”[Ò ÜÐäˆMr   c                 ó€   • [         X4;   a  [         $ U R                  (       a  UR                  (       a  [        $ [        $ r   )r   r   r   r   )r   Úothers     r   Ú__and__ÚStatus.__and__   s(   € Ü�d�]Ó"ÜˆMà $§§°··”9ÐMÄ+ÐMr   c                 óR   • S[        U 5      R                  < SU R                  < S3$ )NÚ<z: Ú>)ÚtypeÚ__name__r   r   s    r   Ú__repr__ÚStatus.__repr__   s   � Ü! $›Z×0Ô0°$·*´*Ð=Ð=r   )r   r   )r)   Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   ÚboolÚ__annotations__Ústrr   r   r#   r*   Ú__static_attributes__© r   r   r   r      sH   ‡ Ø35€L�$�x ‘~ xÐ/Ñ0Ó5ð*˜h t™nð *°Cð *¸Dô *ò
òNõ>r   r   TÚ	reachableFÚunreachableNÚunsurec              #   óT   #   •  [        U SS9n U b  [        U 5      (       a  g U v •  M$  7f)NT©Úinclude_flows)r   r   )Únodes    r   Ú_get_flow_scopesr;   '   s.   é € Ø
Ü °DÑ9ˆØ‰<œ8 DŸ>™>ØØŠ
ñ	 ùs   ‚&(c                 ó2  • [        U 5      (       d  U R                  R                  (       d  [        $ [	        USS9nUbÎ  [        [        U5      5      n[        [        U5      5      nSnU Hx  nX†;   d  M
  [        X‚5      n	[        Xƒ5      n
Xš:H  nUR                  S:X  a  U(       d  [        s  $ O+UR                  S:X  a  U(       d  U
S:X  a  U	S:X  a  [        s  $ U(       d  Mx    O   Ub#  XC:X  a  U(       a  [        $ UR                  nUb  M#  [        XXB5      $ )NTr8   Úif_stmtÚtry_stmtÚelseÚexcept)r	   Úinference_stateÚflow_analysis_enabledr   r   Úlistr;   r   r(   r   r   ÚparentÚ_break_check)ÚcontextÚvalue_scoper:   Úorigin_scopeÚfirst_flow_scopeÚorigin_flow_scopesÚnode_flow_scopesÚbranch_matchesÚ
flow_scopeÚnode_keywordÚorigin_keywords              r   Úreachability_checkrP   /   s  € Ü˜w×'Ñ'Ø×*Ñ*×@×@Üˆä'¨¸DÑAÐØÑÜ!Ô"2°<Ó"@ÓAÐÜÔ 0°Ó 6Ó7ÐàˆÛ,ˆJØÕ-Ü6°zÓH�Ü!8¸Ó!R�Ø!-Ñ!?�Ø—?‘? iÓ/Þ)Ü*Ò*ð *à—_‘_¨
Ó2Þ)¨nÀÓ.FØ ,°Ó 8Ü*Ò*ß!�>Ùñ -ð, Ñ&ØÓ/¶NÜ Ð Ø'×.Ñ.ˆLð Ó&ô
 ˜Ð.>ÓEÐEr   c                 óÒ  • [         nUR                  S:X  a{  UR                  U5      (       aE  UR                  5        H   n[	        X5      nU[         [
        4;   d  M     O   UR                  5       nO6UR                  U5      nUb  [	        X5      nOUR                  S;   a  [
        $ U[        [
        4;   a  U$ X:w  a(  XR                  :w  a  [        USS9nU[        XX#5      -  $ U$ )Nr=   )r>   Ú
while_stmtTr8   )r   r(   Úis_node_after_elseÚget_test_nodesÚ	_check_ifr   r   Úget_corresponding_test_noder   rD   r   rE   )rF   rG   rM   r:   r4   Ú
check_nodeÚ	flow_nodes          r   rE   rE   X   sÞ   € Ü€IØ‡�˜)Ó#Ø×(Ñ(¨×.Ñ.Ø(×7Ñ7Ö9�
Ü% gÓ:�	Ø¤¬FÐ 3Õ3Ùñ :ð "×(Ñ(Ó*‰Ià"×>Ñ>¸tÓDˆIØÑ$Ü% gÓ9�	øØ	�‰Ð6Ó	6Üˆð ”[¤&Ð)Ó)ØÐàÓ  [×4EÑ4EÓ%EÜ% jÀÑEˆ
Øœ<¨¸jÓOÑOÐOàÐr   c                 óT  • [        U R                  U5       nU(       d  [        sS S S 5        $ U R                  U5      n[	        S U 5       5      n[        U5      S:X  a*  [        R                  UR                  5          sS S S 5        $ [        sS S S 5        $ ! , (       d  f       g = f)Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr   )Ú
py__bool__)Ú.0Úxs     r   Ú	<genexpr>Ú_check_if.<locals>.<genexpr>y   s   é € Ð3ªU¨—\‘\—^�^ªUùs   ‚é   )	r   rA   r   Ú
infer_nodeÚsetÚlenr   r   Úpop)rF   r:   ÚallowedÚtypesÚvaluess        r   rU   rU   s   s}   € Ü	˜7×2Ñ2°DÔ	9¸WÞÜ÷ 
:Ñ	9ð ×"Ñ" 4Ó(ˆÜÑ3©UÓ3Ó3ˆÜˆv‹;˜!ÓÜ×&Ñ& v§z¡z£|Ñ4÷ 
:Ñ	9ô ÷ 
:×	9×	9ús   —B®ABÂ
BÂ
B'r   )Útypingr   r   Újedi.parser_utilsr   r   r   Újedi.inference.recursionr   Újedi.inference.helpersr	   r   r   r   r   r;   rP   rE   rU   r3   r   r   Ú<module>rl      sZ   ðß !ç QÑ QÝ 6Ý :÷>ñ >ñ4 �4˜Ó%€	Ù�U˜MÓ*€Ù	��hÓ	€òô&FòRó6
r   