This is the documentation for the current state of the development branch of rustworkx. The documentation or APIs here can change prior to being released.
- class TopologicalSorter(graph, /, check_cycle=True)#
Provides functionality to topologically sort a directed graph.
The steps required to perform the sorting of a given graph are as follows:
Create an instance of the TopologicalSorter with an initial graph.
While is_active() is True, iterate over the nodes returned by get_ready() and process them.
Call done() on each node as it finishes processing.
import rustworkx as rx graph = rx.generators.directed_path_graph(5) sorter = rx.TopologicalSorter(graph) while sorter.is_active(): nodes = sorter.get_ready() print(nodes) sorter.done(nodes)
    
The underlying graph can be mutated and TopologicalSorter will pick-up the modifications but it’s not recommended doing it as it may result in a logical-error.
graph (PyDiGraph) – The directed graph to be used.
check_cycle (bool) – When this is set to
True, we search for cycles in the graph during initialization of topological sorter and raise
DAGHasCycleif any cycle is detected. If it’s set to
False, topological sorter will output as many nodes as possible until cycles block more progress. By default is