This graph library offers some useful lambda expression to work with directed graphs.
A graph is given by a dicated yaml map hosting the nodes represented by their names. Each name sub-node represents the edges by holding a list of node names
The package name is utilities.graph
.
invert(<model>)
evaluate(<model>)
The result a a graph evaluation map with entries for every node providing the evaluated node info:
deps
The dependency closureerr
: Cyclic dependencies for this nodemissing
: dangling edges (without a node in the graph)
cycles(<evaluatedmodel>) -> list of lists
List all normalized dependencies cycles in a graph using its evaluated model.
order(<evaluatedmodel>) -> list
Uses the evaluated model to determine a global execution order for nodes included i the graph.
reverse(<list>) -> list
Reverse the order of elements in a list.