Source code for dependency_graph.graph

from collections import defaultdict


[docs]class Graph(object): """ Graph data structure, undirected by default. """ def __init__(self, directed=False): self._graph = defaultdict(set) self._directed = directed
[docs] def add_connection(self, connections): """ Add connections (list of tuple pairs) to graph """ self.add(node1, node2)
[docs] def add(self, node1, node2): """ Add connection between node1 and node2 """ self._graph[node1].add(node2) if not self._directed: self._graph[node2].add(node1)
[docs] def remove(self, node): """ Remove all references to node """ for n, cxns in self._graph.iteritems(): try: cxns.remove(node) except KeyError: pass try: del self._graph[node] except KeyError: pass
[docs]class CommandGraph(Graph): """ Graph data structure """ def __init__(self): super(CommandGraph, self).__init__(self,directed=True)