Mini Shell
a
�DOge% � @ s@ d dgZ dZdZG dd� d�ZG dd� de�ZG dd � d �ZdS ) �TopologicalSorter�
CycleError������c @ s e Zd ZdZdd� ZdS )� _NodeInfo��node�
npredecessors�
successorsc C s || _ d| _g | _d S �N� r )�selfr � r
� /usr/lib64/python3.9/graphlib.py�__init__
s z_NodeInfo.__init__N)�__name__�
__module__�__qualname__� __slots__r r
r
r
r r s r c @ s e Zd ZdZdS )r aC Subclass of ValueError raised by TopologicalSorter.prepare if cycles
exist in the working graph.
If multiple cycles exist, only one undefined choice among them will be reported
and included in the exception. The detected cycle can be accessed via the second
element in the *args* attribute of the exception instance and consists in a list
of nodes, such that each node is, in the graph, an immediate predecessor of the
next node in the list. In the reported list, the first and the last node will be
the same, to make it clear that it is cyclic.
N)r r r �__doc__r
r
r
r r s c @ sb e Zd ZdZddd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dS )r zFProvides functionality to topologically sort a graph of hashable nodesNc C sH i | _ d | _d| _d| _|d urD|�� D ]\}}| j|g|�R � q(d S r
)�
_node2info�_ready_nodes�_npassedout�
_nfinished�items�add)r Zgraphr �predecessorsr
r
r r * s zTopologicalSorter.__init__c C s* | j �|� }d u r&t|� | j |<