David Prince
production: clean source snapshot — no history bloat
71b4454
Raw
History Blame Contribute Delete
698 Bytes
from typing import Dict, List, Set
class DependencyGraph:
"""Maintains cross-reference and dependency relationships."""
def __init__(self):
self.nodes: Set[str] = set()
self.edges: Dict[str, List[str]] = {}
def add_node(self, node: str):
self.nodes.add(node)
if node not in self.edges:
self.edges[node] = []
def add_edge(self, source: str, target: str):
self.add_node(source)
self.add_node(target)
if target not in self.edges[source]:
self.edges[source].append(target)
def get_dependencies(self, node: str) -> List[str]:
return self.edges.get(node, [])