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, [])