Skip to content

Split GFQL temporal text helpers#1505

Merged
lmeyerov merged 3 commits into
masterfrom
issue-1498-temporal-text-split
May 17, 2026
Merged

Split GFQL temporal text helpers#1505
lmeyerov merged 3 commits into
masterfrom
issue-1498-temporal-text-split

Conversation

@lmeyerov
Copy link
Copy Markdown
Contributor

@lmeyerov lmeyerov commented May 17, 2026

Closes #1498.

Summary

  • Split temporal constructor parsing, value parsing, duration parsing/folding, truncation folding, AST rewrite, and rendering helpers into graphistry.compute.gfql.temporal modules.
  • Reduced graphistry.compute.gfql.temporal_text to a small compatibility shim for the historical import path; internal runtime code now imports the domain modules directly.
  • Split focused tests into constructor, value, and legacy-shim coverage; updated the Development changelog entry. No temporal semantics changed.

Validation

  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_temporal_text.py graphistry/tests/compute/gfql/cypher/test_temporal_constructors.py graphistry/tests/compute/gfql/cypher/test_temporal_value_helpers.py
  • python3 -m pytest -q graphistry/tests/compute/predicates/test_temporal_values.py graphistry/tests/compute/gfql/cypher/test_temporal_value_helpers.py -k 'not cudf'
  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k 'temporal or duration'
  • ./bin/ruff.sh graphistry/compute/gfql/temporal_text.py graphistry/compute/gfql/temporal graphistry/compute/gfql/row/entity_props.py graphistry/compute/gfql/row/ordering.py graphistry/compute/gfql/row/pipeline.py graphistry/compute/gfql/cypher/lowering.py graphistry/compute/gfql/cypher/result_postprocess.py graphistry/tests/compute/gfql/cypher/test_temporal_text.py graphistry/tests/compute/gfql/cypher/test_temporal_constructors.py graphistry/tests/compute/gfql/cypher/test_temporal_value_helpers.py
  • ./bin/typecheck.sh graphistry/compute/gfql/temporal_text.py graphistry/compute/gfql/temporal graphistry/compute/gfql/row/entity_props.py graphistry/compute/gfql/row/ordering.py graphistry/compute/gfql/row/pipeline.py graphistry/compute/gfql/cypher/lowering.py graphistry/compute/gfql/cypher/result_postprocess.py
  • python3 import compatibility smoke for legacy temporal_text and new temporal modules
  • python3 import-order smoke for constructor-first, folding-first, and legacy-shim-first orders
  • git diff --check

Review

  • Review skill converged after 3 waves. No blocker/important/suggestion findings.
  • Wave 3 specifically covered the shim cleanup, split tests, import cycles, and internal import repointing.

Notes

  • Rebased onto origin/master @ f5ef17b after master moved; current head is 0e787a8.
  • CI found and the branch fixed a pytest basename collision between the new GFQL values-helper test and the existing predicates temporal values test.
  • No dgx-spark RAPIDS run: this is a module split/import cleanup with no DataFrame engine behavior change; focused pandas-compat GFQL CI remains part of the normal PR matrix.

@lmeyerov lmeyerov force-pushed the issue-1498-temporal-text-split branch 2 times, most recently from 8eafd48 to 0ce875b Compare May 17, 2026 22:08
@lmeyerov lmeyerov force-pushed the issue-1498-temporal-text-split branch from 0ce875b to 0e787a8 Compare May 17, 2026 22:17
@lmeyerov lmeyerov merged commit 82daa1a into master May 17, 2026
137 checks passed
@lmeyerov lmeyerov deleted the issue-1498-temporal-text-split branch May 17, 2026 22:28
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.

GFQL temporal_text.py: split temporal parsing/folding domains

1 participant