class Graph(): def __init__(self): self.nodes = [] self.edges = MultiMap() def edge(self, source, target): self.edges.map(source, target) def toString(self): return "edges: %s, functions: %s" % (self.edges.toString(), self.nodes) def toDOT(self): buf = ''.join(["digraph G{\n", " ranksep=.25;\n", " edge [arrowsize=.5]\n", " node [shape=circle, fontname=\"ArialNarrow\",\n", " fontsize=12, fixedsize=true, height=.45];\n", " "]) for src in self.edges.keySet(): for trg in self.edges.get(src): buf = ''.join([buf, " ", src, " -> ", trg, ";\n"]) buf = buf + "}\n" return buf
def __init__(self): self.nodes = [] self.edges = MultiMap()