Repository navigation
Conversation
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
1 similar comment
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
…t shim and add the GraphIngestor protocol
robfrank
force-pushed
the
graph-seam/01-ingestor-protocol
branch
from
August 29, 2026 18:41
415d8dd to
0a6f1ca
Compare
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
MemgraphIngestorfromservices/graph_service.pyinto a newservices/graph/package, leavinggraph_service.pyas a permanent re-export shim.GraphIngestor, a protocol that extends the already-existingIngestorProtocolandQueryProtocolinservices/__init__.pyrather than inventing a parallel one.MemgraphIngestor's body is byte-identical apart from the import depth.First of a small series splitting up vitali87#1397, following the request there for smaller PRs. Each subsequent piece is independently green and goes out one at a time rather than stacked, so no PR ever shows a cumulative diff.
Type of Change
Related Issues
Related to vitali87#1397 — that PR should be closed or retargeted once this series lands.
Why
services/__init__.pyalready definesIngestorProtocolandQueryProtocol, andevals/cgr_graph.py's_CapturingIngestoralready duck-types that surface. The seam exists informally today; this makes it explicit and gives the storage layer a package of its own instead of one 700-line module hanging offservices/.MemgraphIngestoris public API viacgr.__all__, socodebase_rag.services.graph_servicehas to keep resolving. The shim is deliberate and permanent, not a migration step.Three
patch()targets are repointed (test_graph_service.py,test_memory_limit.py) because they patch the module attribute, not the re-exported name.A note on the diff size
GitHub renders this as a 691-line new file plus a 695-line deletion. With copy detection on it is a move plus 14 changed lines:
The 14 lines in the moved file are all import-depth changes (
..to...).protocol.pyand the shim are the only genuinely new code.Test Plan
7901 passed, 29 skippedtest_graph_protocol.py: the protocol is satisfied, the shim still exports the same object,cgr.__all__still exposes it, and_CapturingIngestorstill satisfiesIngestorProtocol300 passed, 5 skippedmake pre-commitclean end to endChecklist
make pre-commit)# type: ignore,cast(),Any, orobjecttype hints — none addedprotocol.pyand the shim each carry one docstring, because "why does this indirection exist" is not derivable from the code: the shim in particular looks deletable without the note that it backs public API. This also reads as a conflict with CONTRIBUTING.md's comment policy ("explain why and how"). Easy to strip if the checklist is meant literally.