Skip to main content

Pruning redundant nodes from DOT graphs

Project description

DotPruner DotPruner Python package Status PyPI version

Pruning redundant nodes from DOT graphs

Before:

DOT graph before pruning

After:

DOT graph after pruning

Installation

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

Usage

CLI

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

API

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)

Tests

python -m unittest discover dotpruner.tests --verbose

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dotpruner-0.1.3.tar.gz (3.5 kB view hashes)

Uploaded Source

Built Distribution

dotpruner-0.1.3-py3-none-any.whl (5.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page