Skip to content

refactor(gfql): extract seeded fast-path specializations to dedicated modules (#1755)#1762

Merged
lmeyerov merged 3 commits into
masterfrom
refactor/gfql-seeded-fastpath-module
Jul 21, 2026
Merged

refactor(gfql): extract seeded fast-path specializations to dedicated modules (#1755)#1762
lmeyerov merged 3 commits into
masterfrom
refactor/gfql-seeded-fastpath-module

Conversation

@lmeyerov

Copy link
Copy Markdown
Contributor

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.py orchestrators into
dedicated sibling modules — following the convention gfql_fast_paths.py
already established in #1731 ("keep the orchestrator readable; one-directional
imports, no back-edge").

  • NEW graphistry/compute/chain_fast_paths.py — the three seeded chain
    helpers 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.pychain_fast_paths.py
  • gfql_unified.pygfql_fast_paths.pychain_fast_paths.py
  • chain_fast_paths.py → leaves only (never chain.py / gfql_unified.py)

Verification

🤖 Generated with Claude Code

@lmeyerov
lmeyerov force-pushed the perf/gfql-seeded-fastpath-polars-1755 branch from e547753 to dadb1bd Compare July 21, 2026 20:57
@lmeyerov
lmeyerov force-pushed the refactor/gfql-seeded-fastpath-module branch from 3be1b34 to bb4457e Compare July 21, 2026 20:57
@lmeyerov

Copy link
Copy Markdown
Contributor Author

Review response: CHANGELOG entry added (documents the pure-move + the one-directional-import convention). Rebased over merged #1758; the moved helpers verified AST-identical to the #1760 versions (incl. the Direction typing fix).

@lmeyerov
lmeyerov force-pushed the perf/gfql-seeded-fastpath-polars-1755 branch from dadb1bd to 22cf378 Compare July 21, 2026 21:27
@lmeyerov
lmeyerov force-pushed the refactor/gfql-seeded-fastpath-module branch 2 times, most recently from 4c9f840 to 2ba060a Compare July 21, 2026 21:35
lmeyerov and others added 3 commits July 21, 2026 14:51
… 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
lmeyerov force-pushed the refactor/gfql-seeded-fastpath-module branch from 2ba060a to 28df6f7 Compare July 21, 2026 21:51
@lmeyerov
lmeyerov changed the base branch from perf/gfql-seeded-fastpath-polars-1755 to master July 21, 2026 22:15
@lmeyerov
lmeyerov merged commit c76af2c into master Jul 21, 2026
75 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant