Skip to main content

Python library for generating dot programming language for creating graphviz graphs from python OO style code.

Project description

Pygraphv

Pygraphv - python library for generating dot programming language for creating graphviz graphs from python OO style code.

Examples

Basic graph:

from pygraphv.graph import Graph
from pygraphv.node import Node
from pygraphv.style import GraphStyle

# Chose one of this
# You can look at difference in Graphviz docs
# digraph = Digraph("Digraph")
graph = Graph("Graph")

# Adds node with name A, that has child node B
a = Node("A")
graph.add_node(a)
graph.add_node(Node("B"), parent=a)

# Generates .dot file for your graph and saves it in "Your first graph.dot"
# And renders it to svg file, needs dot compiler installed and added to path
graph.render("Your first graph")

Styles:

from pygraphv.graph import Digraph
from pygraphv.style import *
from pygraphv.node import Node

# Now digraph example
# Only difference to regular graph is arrows at ends of connections
graph = Digraph("Graph", styles=[GraphStyle(bgcolor="lightblue"), GraphStyle(href="github.com/farkon00")])

# Adds node with name A, that has child node B
a = Node("A", styles=NodeStyle(color="red", shape="box"))
graph.add_node(a)
graph.add_node(Node("B"), label="Styled edge", parent=a, styles=EdgeStyle(arrowhead="box"))

# Generates .dot file for your graph and saves it in "Styles.dot"
# And renders it to svg file, needs dot compiler installed and added to path
graph.render("Styles")

Clusters:

from pygraphv.graph import Graph, Cluster
from pygraphv.style import *
from pygraphv.node import Node

graph = Graph("Graph")

# Adds node with name A, that has child node B
a = Node("A")
graph.add_node(a)
graph.add_node(Node("B"), parent=a)

# Creates cluster and adds cycle of 3 nodes, connected to node A

# Can be compressed to one style object
# But you can use GraphStyle on clusters
cluster = Cluster("Cluster", styles=(GraphStyle(bgcolor="lightgreen"), ClusterStyle(style="dotted")))

node1 = Node("1")
cluster.add_node(node1)
a.children.append(node1)
cluster.add_node(Node("2"), parent=node1)
cluster.add_node(Node("3"), parent=node1)
graph.add_node(node1.children[-1].node, parent=node1.children[-2].node)

graph.add_subgraph(cluster)

# Generates .dot file for your graph and saves it in "Clusters.dot"
# And renders it to svg file, needs dot compiler installed and added to path
graph.render("Clusters")

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

pygraphv-0.2.1.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

pygraphv-0.2.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file pygraphv-0.2.1.tar.gz.

File metadata

  • Download URL: pygraphv-0.2.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for pygraphv-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6df53a6f8745f1b3c3eea66b391a6c7198f903cb2146996d12ed9437715ea1de
MD5 5fce7d6f8cefacebffe4e21ee013592b
BLAKE2b-256 9f086369bfe074d80b1ca8009d5ab28c7ec2c5aa4ce487336dac968ad280b9b5

See more details on using hashes here.

File details

Details for the file pygraphv-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pygraphv-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for pygraphv-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2b163871eb811fe352cc7589474f488993b96a5fa9c844c2df7e555732fa7622
MD5 cbd74e4abb72bd75b79a571f3ae5e8de
BLAKE2b-256 d07317b6f4a60fce361ae331dfa3277c12447f258c95dec9428d69e44164e651

See more details on using hashes here.

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