MCPcopy
hub / github.com/tirth8205/code-review-graph / store_file_nodes_edges

Method store_file_nodes_edges

code_review_graph/graph.py:272–287  ·  view source on GitHub ↗

Atomically replace all data for a file.

(
        self, file_path: str, nodes: list[NodeInfo], edges: list[EdgeInfo], fhash: str = ""
    )

Source from the content-addressed store, hash-verified

270 self._conn.execute("BEGIN IMMEDIATE")
271
272 def store_file_nodes_edges(
273 self, file_path: str, nodes: list[NodeInfo], edges: list[EdgeInfo], fhash: str = ""
274 ) -> None:
275 """Atomically replace all data for a file."""
276 self._begin_immediate()
277 try:
278 self.remove_file_data(file_path)
279 for node in nodes:
280 self.upsert_node(node, file_hash=fhash)
281 for edge in edges:
282 self.upsert_edge(edge)
283 self._conn.commit()
284 except BaseException:
285 self._conn.rollback()
286 raise
287 self._invalidate_cache()
288
289 def store_file_batch(
290 self, batch: list[tuple[str, list[NodeInfo], list[EdgeInfo], str]]

Calls 7

_begin_immediateMethod · 0.95
remove_file_dataMethod · 0.95
upsert_nodeMethod · 0.95
upsert_edgeMethod · 0.95
_invalidate_cacheMethod · 0.95
commitMethod · 0.80
rollbackMethod · 0.80