Skip to content

chore(gfql): shrink cypher call procedures#1605

Open
lmeyerov wants to merge 2 commits into
masterfrom
issue-1058-call-procedures-shrink
Open

chore(gfql): shrink cypher call procedures#1605
lmeyerov wants to merge 2 commits into
masterfrom
issue-1058-call-procedures-shrink

Conversation

@lmeyerov
Copy link
Copy Markdown
Contributor

@lmeyerov lmeyerov commented May 22, 2026

Summary

  • DRYs local Cypher CALL procedure value-column derivation by reusing source-column lookup and shared multi-column out_col diagnostics.
  • DRYs computed-output column rename-map construction shared by node/edge backend results.
  • Centralizes NetworkX backend dependency/parameter error plumbing while keeping intent-named node/edge/graph handlers and preserving the no-SciPy graphistry.nx.pagerank path.

Refs #1058.

Reporting

  • Production: +107 / -207, net -100 LOC (graphistry/compute/gfql/cypher/call_procedures.py)
  • Tests / fixtures / baselines: +0 / -0, net 0 LOC
  • Comments / docs / changelog: +1 / -0, net +1 LOC (CHANGELOG.md)
  • Compiler-plan surface touched: no. This stays inside CALL procedure helper implementation; route names, logical/physical plan semantics, dispatch contracts, structured errors, source spans, and validation seams are preserved.

Audit Notes

  • No Arrow / validate='autofix' path exists in call_procedures.py; no deletion there.
  • call/validation.py remains the owner for igraph/cuGraph option validation; this PR does not edit adjacent validation territory.
  • No defer-code branch exists in the target file.
  • graphistry.nx.pagerank still uses the local no-SciPy pagerank path because core CI intentionally does not install SciPy; the shrink is in shared NetworkX dispatcher/error plumbing, not dependency expansion.

Validation

  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k 'call and not real_cugraph' -> 49 passed, 12 skipped, 1020 deselected
  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k call -> 49 passed, 18 skipped, 1014 deselected
  • ./bin/ruff.sh graphistry/compute/gfql/cypher/call_procedures.py -> passed
  • ./bin/typecheck.sh graphistry/compute/gfql/cypher/call_procedures.py -> passed
  • python3 -m pytest -q graphistry/tests/test_schema_artifacts.py graphistry/tests/test_viz_settings.py -> 11 passed
  • python3 -m graphistry.devschemas.export --check -> passed, no schema drift
  • git diff --check -> passed
  • DGX RAPIDS 26.02: RAPIDS_VERSION=26.02 PROFILE=gfql WITH_IMAGE_BUILD=1 TEST_FILES="graphistry/tests/compute/gfql/cypher/test_lowering.py -k call" docker/test-rapids-official-local.sh -> 62 passed, 5 skipped, 1014 deselected
  • DGX RAPIDS 25.02: RAPIDS_VERSION=25.02 PROFILE=gfql WITH_IMAGE_BUILD=1 TEST_FILES="graphistry/tests/compute/gfql/cypher/test_lowering.py -k call" docker/test-rapids-official-local.sh -> 62 passed, 5 skipped, 1014 deselected
  • Review skill: converged after 4 waves total, including 2 post-CI-fix waves; no findings
  • Full PR CI: green, including core-python 3.8-3.14, GFQL core, TCK-GFQL, schema artifacts, changed-line-coverage, docs/RTD, pandas compatibility, graphviz, polars, DGL, Neo4j, and frontend gates

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