Ë
    ¬;jç  ã                   ó¤   — d dl mZmZ d dlmZmZmZ d dlmZ d dl	m
Z
  G d„ d«      Z edd«      Z ed	d
«      Z edd«      Zd„ Zdd„Zd„ Zd„ Zy)é    )ÚDictÚOptional)Úget_flow_branch_keywordÚis_scopeÚget_parent_scope)Úexecution_allowed)Úis_big_annoying_libraryc                   óX   — e Zd ZU i Zeee   d f   ed<   dee   deddfd„Z	d„ Z
d„ Zd	„ Zy)
ÚStatusÚlookup_tableÚvalueÚnameÚreturnNc                 óF   — || _         || _        | t        j                  |<   y ©N)Ú_valueÚ_namer   r   )Úselfr   r   s      úm/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/flow_analysis.pyÚ__init__zStatus.__init__   s    € ØˆŒØˆŒ
Ø%)Œ×Ñ˜EÒ"ó    c                 óF   — | t         u rt        S | t        u rt         S t        S r   )Ú	REACHABLEÚUNREACHABLEÚUNSURE©r   s    r   ÚinvertzStatus.invert   s#   € Ø”9ÑÜÐØ”[Ñ ÜÐäˆMr   c                 ój   — t         | |fv rt         S | j                  r|j                  rt        S t        S r   )r   r   r   r   )r   Úothers     r   Ú__and__zStatus.__and__   s*   € Ü�d˜E�]Ñ"ÜˆMà $§¢°·²”9ÐMÄ+ÐMr   c                 óN   — dt        | «      j                  ›d| j                  ›d�S )NÚ<z: Ú>)ÚtypeÚ__name__r   r   s    r   Ú__repr__zStatus.__repr__   s   � Ü! $›Z×0Ó0°$·*³*Ð=Ð=r   )r%   Ú
__module__Ú__qualname__r   r   r   ÚboolÚ__annotations__Ústrr   r   r    r&   © r   r   r   r      sH   … Ø35€L�$�x ‘~ xÐ/Ñ0Ó5ð*˜h t™nð *°Cð *¸Dó *ò
òNó>r   r   TÚ	reachableFÚunreachableNÚunsurec              #   óL   K  — 	 t        | d¬«      } | �t        | «      ry | –— Œ ­w)NT©Úinclude_flows)r   r   )Únodes    r   Ú_get_flow_scopesr4   '   s-   è ø€ Ø
Ü °DÔ9ˆØˆ<œ8 Dœ>ØØŠ
ð	 ùs   ‚"$c                 óì  — t        | «      s| j                  j                  st        S t	        |d¬«      }|�±t        t        |«      «      }t        t        |«      «      }d}|D ]d  }||v sŒt        ||«      }	t        ||«      }
|	|
k(  }|j                  dk(  r
|s+t        c S |j                  dk(  r|s|
dk(  r|	dk(  rt        c S |sŒd n |�||k(  r|rt        S |j                  }|�Œt        | |||«      S )NTr1   Úif_stmtÚtry_stmtÚelseÚexcept)r	   Úinference_stateÚflow_analysis_enabledr   r   Úlistr4   r   r$   r   r   ÚparentÚ_break_check)ÚcontextÚvalue_scoper3   Úorigin_scopeÚfirst_flow_scopeÚorigin_flow_scopesÚnode_flow_scopesÚbranch_matchesÚ
flow_scopeÚnode_keywordÚorigin_keywords              r   Úreachability_checkrI   /   s  € Ü˜wÔ'Ø×*Ñ*×@Ò@Üˆä'¨¸DÔAÐØÐÜ!Ô"2°<Ó"@ÓAÐÜÔ 0°Ó 6Ó7ÐàˆÛ,ˆJØÐ-Ò-Ü6°zÀ4ÓH�Ü!8¸À\Ó!R�Ø!-°Ñ!?�Ø—?‘? iÒ/Ù)Ü*Ò*Ø—_‘_¨
Ò2Ù)¨nÀÒ.FØ ,°Ò 8Ü*Ò*Ú!Ùð -ð, Ð&Ø <Ò/±NÜ Ð Ø'×.Ñ.ˆLð Ñ&ô
 ˜ Ð.>ÀÓEÐEr   c                 óÂ  — t         }|j                  dk(  rs|j                  |«      rB|j                  «       D ]  }t	        | |«      }|t         t
        fv sŒ n |j                  «       }n4|j                  |«      }|�!t	        | |«      }n|j                  dv rt
        S |t        t
        fv r|S ||k7  r-||j                  k7  rt        |d¬«      }|t        | |||«      z  S |S )Nr6   )r7   Ú
while_stmtTr1   )r   r$   Úis_node_after_elseÚget_test_nodesÚ	_check_ifr   r   Úget_corresponding_test_noder   r=   r   r>   )r?   r@   rF   r3   r-   Ú
check_nodeÚ	flow_nodes          r   r>   r>   X   sæ   € Ü€IØ‡�˜)Ò#Ø×(Ñ(¨Ô.Ø(×7Ñ7Ö9�
Ü% g¨zÓ:�	Ø¤¬FÐ 3Ò3Ùð :ð "×(Ñ(Ó*‰Ià"×>Ñ>¸tÓDˆIØÐ$Ü% g¨yÓ9‘	Ø	�‰Ð6Ñ	6Üˆð ”[¤&Ð)Ñ)ØÐà�jÒ  [°J×4EÑ4EÒ%EÜ% jÀÔEˆ
Øœ<¨°¸jÈ$ÓOÑOÐOàÐr   c                 ó>  — t        | j                  |«      5 }|st        cd d d «       S | j                  |«      }t	        d„ |D «       «      }t        |«      dk(  r*t        j                  |j                  «          cd d d «       S t        cd d d «       S # 1 sw Y   y xY w)Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )Ú
py__bool__)Ú.0Úxs     r   Ú	<genexpr>z_check_if.<locals>.<genexpr>y   s   è ø€ Ð3©U¨�Q—\‘\—^©Uùs   ‚é   )	r   r:   r   Ú
infer_nodeÚsetÚlenr   r   Úpop)r?   r3   ÚallowedÚtypesÚvaluess        r   rN   rN   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   r4   rI   r>   rN   r,   r   r   Ú<module>rd      sZ   ðß !ç QÑ QÝ 6Ý :÷>ñ >ñ4 �4˜Ó%€	Ù�U˜MÓ*€Ù	��hÓ	€òó&FòRó6
r   