Sindbad~EG File Manager
�
$Μg�%��^�ddlmZddgZdZdZGd�d�ZGd�de�ZGd �d�Zy
)�)�GenericAlias�TopologicalSorter�
CycleError������c��eZdZdZd�Zy)� _NodeInfo��node�
npredecessors�
successorsc�.�||_d|_g|_y�Nrr
)�selfrs �%/usr/local/lib/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 dd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z
d
�Zd�Ze
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
�}|rtd|��ycc}w)Nzcannot prepare() more than oncerznodes are in a cycle)rr*r�valuesrr�_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���|tk(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&rr:�
_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=�,�4M� �-!�^#�J
#�$�L�1�rN) �typesr�__all__r:rFr r*rrrrr�<module>r]s>�����
-��� �
�
���" �� �Q2�Q2r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists