Pruning redundant nodes from DOT graphs
Before:
After:
To install DotPruner with pip, run: pip install dotpruner
To install DotPruner from source, first clone the repository and then run: python setup.py install
Prune graph "in-place":
python -m dotpruner path/to/original/graph.dot
Use --dest
or -d
to specify destination for new graph:
python -m dotpruner path/to/original/graph.dot --dest path/to/new/graph.dot
Use --overwrite
or -o
to overwrite existing file in destination:
python -m dotpruner path/to/original/graph.dot -d path/to/new/graph.dot --overwrite
import dotpruner
# string representation of DOT graph
original_graph_str = ...
# pruned graph represented using pydot
pruned_graph = dotpruner.process_from_string(original_graph_str)
Optionally pass in a node_picker
function
to change which node is preserved in the pruning stage --
by default, the lexicographically smaller node is preserved.
# keep the lexicographically larger node
dotpruner.process_from_string(original_graph_str, node_picker=max)
python -m unittest discover dotpruner.tests --verbose