Source code for fortdepend.graph

import warnings

# If graphviz is not installed, graphs can't be produced
try:
    import graphviz as gv

    has_graphviz = True
except ImportError:
    has_graphviz = False


[docs]class Graph: """Draw a graph of the project using graphviz Args: filename (str): Name of the output file format (str): Image format view (bool): Immediately display the graph [True] """ def __init__(self, tree, filename=None, format="svg", view=True): if not has_graphviz: warnings.warn("graphviz not installed: can't make graph", RuntimeWarning) return if filename is None: filename = "graph.dot" self.filename = filename self.view = view # Start the graph self.graph = gv.Digraph(name=self.filename, format=format) self.tree = tree
[docs] def draw(self): """Render the graph to an image""" if not has_graphviz: warnings.warn("graphviz not installed: can't make graph", RuntimeWarning) return for parent in self.tree: self.graph.node(str(parent)) for child in self.tree[parent]: # Add the edges to the graph self.graph.edge(str(parent), str(child)) self.graph.render(self.filename, view=self.view, cleanup=False)