refactor(gfql): extract seeded fast-path specializations to dedicated modules (#1755)#1762
Merged
Merged
Conversation
lmeyerov
force-pushed
the
perf/gfql-seeded-fastpath-polars-1755
branch
from
July 21, 2026 20:57
e547753 to
dadb1bd
Compare
lmeyerov
force-pushed
the
refactor/gfql-seeded-fastpath-module
branch
from
July 21, 2026 20:57
3be1b34 to
bb4457e
Compare
Contributor
Author
lmeyerov
force-pushed
the
perf/gfql-seeded-fastpath-polars-1755
branch
from
July 21, 2026 21:27
dadb1bd to
22cf378
Compare
lmeyerov
force-pushed
the
refactor/gfql-seeded-fastpath-module
branch
2 times, most recently
from
July 21, 2026 21:35
4c9f840 to
2ba060a
Compare
… modules (#1755) Pure code move (no behavior change), following the gfql_fast_paths.py #1731 convention (keep the orchestrator readable; one-directional imports, no back-edge). Moves the #1755 seeded typed-hop specializations out of the big chain.py / gfql_unified.py orchestrators: - NEW graphistry/compute/chain_fast_paths.py: _seeded_typed_hop_pandas_cudf, _seeded_typed_return_dst_pandas_cudf, _seeded_typed_return_dst_polars (moved verbatim; imports only leaves — .ast, .typing, Plottable). - gfql_fast_paths.py (existing): gains _execute_seeded_typed_hop_fast_path. - chain.py / gfql_unified.py: import the moved helpers (call sites unchanged). Import edges (all one-directional, no cycles): chain -> chain_fast_paths; gfql_unified -> gfql_fast_paths -> chain_fast_paths; chain_fast_paths -> leaves. 41 seeded tests pass unchanged; mypy clean on all four files. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y6dQEcjdazEnzuvuwf73ZL
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y6dQEcjdazEnzuvuwf73ZL
…ope (#1755) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y6dQEcjdazEnzuvuwf73ZL
lmeyerov
force-pushed
the
refactor/gfql-seeded-fastpath-module
branch
from
July 21, 2026 21:51
2ba060a to
28df6f7
Compare
lmeyerov
changed the base branch from
perf/gfql-seeded-fastpath-polars-1755
to
master
July 21, 2026 22:15
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.
Stacked on #1760 (base =
perf/gfql-seeded-fastpath-polars-1755). Review/merge #1759 → #1760 → this.What
Pure code move (no behavior change) extracting the #1755 seeded typed-hop
specializations out of the
chain.py/gfql_unified.pyorchestrators intodedicated sibling modules — following the convention
gfql_fast_paths.pyalready established in #1731 ("keep the orchestrator readable; one-directional
imports, no back-edge").
graphistry/compute/chain_fast_paths.py— the three seeded chainhelpers moved verbatim:
_seeded_typed_hop_pandas_cudf,_seeded_typed_return_dst_pandas_cudf,_seeded_typed_return_dst_polars.Imports only leaf modules (
.ast,.typing,Plottable).gfql_fast_paths.py(existing) — gains_execute_seeded_typed_hop_fast_path.chain.py/gfql_unified.py— import the moved helpers; call sites unchanged.Import edges (all one-directional, no cycles)
chain.py→chain_fast_paths.pygfql_unified.py→gfql_fast_paths.py→chain_fast_paths.pychain_fast_paths.py→ leaves only (never chain.py / gfql_unified.py)Verification
the move; cuDF params skip locally, verified on GPU in perf(gfql): seeded typed-hop fast path — seeded 1-hop RETURN in ≤1ms (#1755) #1759); mypy clean on all
four files (only the pre-existing polars-lazy errors remain).
🤖 Generated with Claude Code