Fix formatting again

This commit is contained in:
2025-11-16 00:42:05 +00:00
parent bf655edb1d
commit 82f634f249
2 changed files with 147 additions and 113 deletions
+53
View File
@@ -361,3 +361,56 @@ class LocalGraph:
cross_file_in.append(f"{rel_type}:{pred_type}:{pred_name}@{pred_file}")
return cross_file_out, cross_file_in
def get_node_by_id(self, node_id: str) -> Optional[dict]:
"""Get node data by ID for graph queries."""
if node_id in self.graph.nodes:
return dict(self.graph.nodes[node_id])
return None
def get_relationships_for_query(self, node_id: str, max_relationships: int = 10) -> dict:
"""Get relationships in a format suitable for graph queries."""
if node_id not in self.graph.nodes:
return {}
result = {
'node_id': node_id,
'outgoing': [],
'incoming': []
}
node_file = self.graph.nodes[node_id].get('file', '')
# Outgoing relationships
for neighbor_id in list(self.graph.successors(node_id))[:max_relationships]:
if neighbor_id in self.graph.nodes:
edge_data = self.graph.edges[node_id, neighbor_id]
neighbor_data = self.graph.nodes[neighbor_id]
rel_info = {
'type': edge_data.get('type', 'related'),
'target_id': neighbor_id,
'target_name': neighbor_data.get('name', ''),
'target_type': neighbor_data.get('type', ''),
'target_file': neighbor_data.get('file', ''),
'cross_file': neighbor_data.get('file', '') != node_file
}
result['outgoing'].append(rel_info)
# Incoming relationships
for predecessor_id in list(self.graph.predecessors(node_id))[:max_relationships]:
if predecessor_id in self.graph.nodes:
edge_data = self.graph.edges[predecessor_id, node_id]
predecessor_data = self.graph.nodes[predecessor_id]
rel_info = {
'type': edge_data.get('type', 'related'),
'source_id': predecessor_id,
'source_name': predecessor_data.get('name', ''),
'source_type': predecessor_data.get('type', ''),
'source_file': predecessor_data.get('file', ''),
'cross_file': predecessor_data.get('file', '') != node_file
}
result['incoming'].append(rel_info)
return result