§
    ŒŸ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dS )é    )ÚDictÚOptional)Úget_flow_branch_keywordÚis_scopeÚget_parent_scope)Úexecution_allowed)Úis_big_annoying_libraryc                   ól   — 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dS )
ÚStatusÚlookup_tableÚvalueÚnameÚreturnNc                 ó@   — || _         || _        | t          j        |<   d S ©N)Ú_valueÚ_namer   r   )Úselfr   r   s      úi/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/flow_analysis.pyÚ__init__zStatus.__init__   s#   € ØˆŒØˆŒ
Ø%)�Ô˜EÑ"Ð"Ð"ó    c                 óP   — | 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                 ó^   — t           | |fv rt           S | j        r|j        rt          nt          S r   )r   r   r   r   )r   Úothers     r   Ú__and__zStatus.__and__   s.   € Ý�d˜E�]Ð"Ð"ÝˆMà $¤ÐM°´ÐM•9�9Å+ÐMr   c                 óB   — dt          | ¦  «        j        ›d| j        ›d�S )Nú<z: ú>)ÚtypeÚ__name__r   r   s    r   Ú__repr__zStatus.__repr__   s$   € € Ý! $™ZœZÔ0Ð0Ð0°$´*°*°*Ð=Ð=r   )r%   Ú
__module__Ú__qualname__r   r   r   ÚboolÚ__annotations__Ústrr   r   r    r&   © r   r   r   r      s‘   € € € € € € Ø35€L�$�x ”~ xÐ/Ô0Ð5Ð5Ñ5ð*˜h tœnð *°Cð *¸Dð *ð *ð *ð *ð
ð ð ðNð Nð Nð>ð >ð >ð >ð >r   r   TÚ	reachableFÚunreachableNÚunsurec              #   óZ   K  — 	 t          | d¬¦  «        } | �t          | ¦  «        rd S | V — Œ))NT©Úinclude_flows)r   r   )Únodes    r   Ú_get_flow_scopesr4   '   s?   è è € ðÝ °DÐ9Ñ9Ô9ˆØˆ<�8 D™>œ>ˆ<ØˆFØˆ
ˆ
ˆ
ð	r   c                 ó  — t          | ¦  «        s| j        j        st          S t	          |d¬¦  «        }|�Àt          t          |¦  «        ¦  «        }t          t          |¦  «        ¦  «        }d}|D ]i}||v rct          ||¦  «        }	t          ||¦  «        }
|	|
k    }|j        dk    r|s	t          c S n"|j        dk    r|s|
dk    r|	dk    r	t          c S |r nŒj|�||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   /   sc  € Ý˜wÑ'Ô'ð ØÔ*Ô@ðåˆå'¨¸DÐAÑAÔAÐØÐÝ!Õ"2°<Ñ"@Ô"@ÑAÔAÐÝÕ 0°Ñ 6Ô 6Ñ7Ô7ÐàˆØ,ð 	ð 	ˆJØÐ-Ð-Ð-Ý6°zÀ4ÑHÔH�Ý!8¸À\Ñ!RÔ!R�Ø!-°Ò!?�Ø”? iÒ/Ð/Ø)ð +Ý*Ð*Ð*Ð*ð+à”_¨
Ò2Ð2Ø)ð +¨nÀÒ.FÐ.FØ ,°Ò 8Ð 8Ý*Ð*Ð*Ð*Ø!ð Ø�Eøð Ð&Ø <Ò/Ð/°NÐ/Ý Ð Ø'Ô.ˆLð Ð&õ
 ˜ Ð.>ÀÑEÔEÐEr   c                 óò  — t           }|j        dk    r‹|                     |¦  «        rN|                     ¦   «         D ]$}t	          | |¦  «        }|t           t
          fv r nŒ%|                     ¦   «         }n8|                     |¦  «        }|�t	          | |¦  «        }n|j        dv rt
          S |t          t
          fv r|S ||k    r1||j	        k    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Ô9ð ð �
Ý% g¨zÑ:Ô:�	Ø¥­FÐ 3Ð3Ð3Ø�Eð 4à!×(Ò(Ñ*Ô*ˆIˆIà"×>Ò>¸tÑDÔDˆIØÐ$Ý% g¨yÑ9Ô9�	øØ	ŒÐ6Ð	6Ð	6Ýˆð •[¥&Ð)Ð)Ð)ØÐà�jÒ Ð  [°JÔ4EÒ%EÐ%EÝ% jÀÐEÑEÔEˆ
Ø�<¨°¸jÈ$ÑOÔOÑOÐOàÐr   c                 óz  — t          | j        |¦  «        5 }|st          cd d d ¦  «         S |                      |¦  «        }t	          d„ |D ¦   «         ¦  «        }t          |¦  «        dk    r0t          j        |                     ¦   «                  cd d d ¦  «         S t          cd d d ¦  «         S # 1 swxY w Y   d S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r   )Ú
py__bool__)Ú.0Úxs     r   ú	<genexpr>z_check_if.<locals>.<genexpr>y   s*   è è € Ð3Ð3¨�Q—\’\‘^”^Ð3Ð3Ð3Ð3Ð3Ð3r   é   )	r   r:   r   Ú
infer_nodeÚsetÚlenr   r   Úpop)r?   r3   ÚallowedÚtypesÚvaluess        r   rN   rN   s   s+  € Ý	˜7Ô2°DÑ	9Ô	9ð 	¸WØð 	Ýð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð ×"Ò" 4Ñ(Ô(ˆÝÐ3Ð3¨UÐ3Ñ3Ô3Ñ3Ô3ˆÝˆv‰;Œ;˜!ÒÐÝÔ& v§z¢z¡|¤|Ô4ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	õ ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   –	B0¬A$B0ÂB0Â0B4Â7B4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      s  ðØ !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø :Ð :Ð :Ð :Ð :Ð :ð>ð >ð >ð >ð >ñ >ô >ð >ð4 ˆF�4˜Ñ%Ô%€	Øˆf�U˜MÑ*Ô*€Ø	ˆ��hÑ	Ô	€ðð ð ð&Fð &Fð &Fð &FðRð ð ð6
ð 
ð 
ð 
ð 
r   