Your IP : 3.146.255.135


Current Path : /opt/alt/python312/lib64/python3.12/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/__pycache__/graphlib.cpython-312.opt-2.pyc

�

�Q�f�%��^�ddlmZddgZdZdZGd�d�ZGd�de�ZGd	�d�Zy
)�)�GenericAlias�TopologicalSorter�
CycleError������c��eZdZdZd�Zy)�	_NodeInfo��node�
npredecessors�
successorsc�.�||_d|_g|_y�Nrr
)�selfrs  �//opt/alt/python312/lib64/python3.12/graphlib.py�__init__z_NodeInfo.__init__s����	�
������N)�__name__�
__module__�__qualname__�	__slots__r�rrr	r		s��5�I�rr	c��eZdZ	y)rN)rrrrrrrrs��	�	rc�\�eZdZ	dd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Ze
e�Zy)
rNc��i|_d|_d|_d|_|�,|j	�D]\}}|j
|g|����yyr)�
_node2info�_ready_nodes�_npassedout�
_nfinished�items�add)r�graphr�predecessorss    rrzTopologicalSorter.__init__,sS����� �����������&+�k�k�m�"��l������-��-�'4�rc�t�|jj|�x}�t|�x|j|<}|S�N)r�getr	)rr�results   r�
_get_nodeinfozTopologicalSorter._get_nodeinfo6s8���o�o�)�)�$�/�/�F�8�-6�t�_�<�D�O�O�D�!�F��
rc��	|j�td��|j|�}|xjt	|�z
c_|D].}|j|�}|j
j
|��0y)Nz/Nodes cannot be added after a call to prepare())r�
ValueErrorr(r�lenr
�append)rrr#�nodeinfo�pred�	pred_infos      rr!zTopologicalSorter.add;sy��
	����(��N�O�O��%�%�d�+�����#�l�"3�3��!�D��*�*�4�0�I�� � �'�'��-�!rc��	|j�td��|jj�D�cgc]}|jdk(s�|j
�� c}|_|j
�}|rtd|��ycc}w)Nzcannot prepare() more than oncerznodes are in a cycle)rr*r�valuesrr�_find_cycler)r�i�cycles   r�preparezTopologicalSorter.prepareVs���	����(��>�?�?�!�O�O�2�2�4�
�4�q����1�8L�A�F�F�4�
���� � �"����3�e�<�<���
s�A?�
A?c��	|j�td��t|j�}|j}|D]}t||_�|jj
�|xjt|�z
c_|S�N�prepare() must be called first)	rr*�tupler�	_NODE_OUTr�clearrr+)rr'�n2irs    r�	get_readyzTopologicalSorter.get_readyls���	����$��=�>�>��t�(�(�)���o�o���D�&/�C��I�#��
	
�����!����C��K�'���
rc��	|j�td��|j|jkxst	|j�Sr7)rr*rr�bool�rs r�	is_activezTopologicalSorter.is_active�sF��	����$��=�>�>�����!1�!1�1�L�T�$�:K�:K�5L�Lrc�"�|j�Sr%)rAr@s r�__bool__zTopologicalSorter.__bool__�s���~�~��rc��	|j�td��|j}|D]�}|j|�x}�td|�d���|j}|t
k7r,|dk\rtd|�d���|tk(rtd|�d���t|_|jD]G}||}|xjdzc_|jdk(s�-|jj|��I|xjdz
c_	��y)Nr8znode z was not added using add()rz% was not passed out (still not ready)z was already marked done�)
rr*rr&rr:�
_NODE_DONEr
r,r)r�nodesr<rr-�stat�	successor�successor_infos        r�donezTopologicalSorter.done�s��		����$��=�>�>��o�o���D� �G�G�D�M�)��2� �5���0J�!K�L�L��)�)�D��y� ��1�9�$���x�'L�M����Z�'�$�u�T�H�4L�%M�N�N�
&0�H�"�&�0�0�	�!$�Y����,�,��1�,�!�/�/�1�4��%�%�,�,�Y�7�	1�

�O�O�q� �O�9rc���|j}g}g}t�}i}|D]�}||vr�	||vr||vro|||d|gzcS|j|�|jt	||j
�j�t|�||<|j|�|r	|d�}n����y#t$r$||j�=|j�YnwxYw|r�C�8)Nr)
r�setr!r,�iterr
�__next__r+�
StopIteration�pop)rr<�stack�itstack�seen�node2stackirs       rr2zTopologicalSorter._find_cycle�s���o�o�������u�����D��t�|����4�<��{�*�$�[��%6�%8�9�T�F�B�B��H�H�T�N��N�N�4��D�	�(<�(<�#=�#F�#F�G�(+�E�
�K��%��L�L��&��&�*�w�r�{�}���
�/�	�8��)�&�'��	�	��4����
�&��	�s�"
B1�1*C�Cc#��K�	|j�|j�r;|j�}|Ed{���|j|�|j�r�:yy7�&�wr%)r5rAr=rK)r�
node_groups  r�static_orderzTopologicalSorter.static_order�sR����	�	
�����n�n�����)�J�!�!�!��D�I�I�z�"��n�n��!�s�7A"�A �#A"�A"r%)rrrrr(r!r5r=rArCrKr2rX�classmethodr�__class_getitem__rrrrr)sG��P�.��
.�6=�,�4M� �-!�^#�J
#�$�L�1�rN)	�typesr�__all__r:rFr	r*rrrrr�<module>r]s>�����
-���	�
�
���"	��	�Q2�Q2r

?>