feat(gfql): Complete GFQL implementation with AST, Let, and Call operations#717
Closed
lmeyerov wants to merge 3 commits into
Closed
feat(gfql): Complete GFQL implementation with AST, Let, and Call operations#717lmeyerov wants to merge 3 commits into
lmeyerov wants to merge 3 commits into
Conversation
This commit extracts the massive GFQL implementation from PR #708 containing: CORE IMPLEMENTATION (19 new files): - AST classes: ASTLet, ASTRemoteGraph, ASTRef, ASTCall (700+ lines) - Let execution engine: chain_let.py (445 lines) - Call execution system: call_executor.py + call_safelist.py (500+ lines) - Validation framework: gfql_validation/ (650+ lines) - Comprehensive test suite: 10 new test files (3,000+ lines) UNIFIED API & DEPRECATIONS (11 modified files): - New methods: gfql(), gfql_remote(), gfql_remote_shape() - Deprecation warnings: chain() → gfql(), chain_remote() → gfql_remote() - Public API: Added let, remote, ref, call aliases - Type distribution: py.typed marker for mypy/pyright support MODIFIED NOTEBOOKS (CI-tested): - demos/gfql/gfql_remote.ipynb - demos/gfql/gfql_validation_fundamentals.ipynb - demos/more_examples/graphistry_features/hop_and_chain_graph_pattern_mining.ipynb CONFIGURATION: - CI: Updated workflows for validation and type checking - CHANGELOG: Added comprehensive feature documentation - Packaging: MANIFEST.in and setup.cfg updates This represents the complete GFQL v2 implementation with: - DAG patterns with Let bindings and dependency resolution - Safe method execution with call operations and safelist - Comprehensive validation framework with structured error reporting - Full backward compatibility with deprecation warnings - Extensive test coverage ensuring quality Supersedes incomplete PRs #715/#716 which missed 80%+ of this implementation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
6 tasks
- Change base class ASTSerializable._get_child_validators return type from List to Sequence - Update all implementing methods to return Sequence['ASTSerializable'] - Fixes mypy variance errors where implementations returned List[ASTPredicate] or List[ASTObject] - Sequence is covariant, allowing subtype returns while maintaining type safety Resolves python-lint-types CI failures in Python 3.10 and 3.11. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Jul 28, 2025
Closed
Contributor
Author
|
Companion PR: This code PR works together with documentation PR #718. Relationship:
CI Status: ✅ All checks GREEN Both PRs should be merged together to provide the complete GFQL feature set. |
- Add group_in_a_box_layout to SAFELIST_V1 with full parameter validation - Support all parameters: partition_alg, layout_alg, positioning, colors, engine - Add comprehensive pytest validation tests - Verified parameter types match implementation signature
Contributor
Author
|
Closing as superseded by PR #724. After thorough analysis:
Functionality preserved in #724 with enhancements. |
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
This PR provides the complete GFQL (GraphFrame Query Language) implementation that was missing from the incomplete PRs #715/#716. This code implementation contains the comprehensive core functionality extracted from PR #708.
Complete GFQL Implementation:
Key Features
AST Implementation
Let Bindings (DAG Patterns)
Call Operations
Unified API
Technical Implementation
Core Files
graphistry/compute/ast.py: 498 changes - Core AST implementationsgraphistry/compute/chain_let.py: 445 lines (NEW) - Let execution enginegraphistry/compute/gfql/call_executor.py: 82 lines (NEW) - Call executiongraphistry/compute/gfql/call_safelist.py: 477 lines (NEW) - Security safelistgraphistry/compute/ComputeMixin.py: 75 changes - Unified API methodsValidation Framework
Test Coverage
Files Changed
Total: 30 files, 6,190 insertions
Core Implementation (14 files)
Test Suite (16 files)
Addresses Missing Implementation
PRs #715/#716 captured only ~20% of the actual GFQL implementation from PR #708. This PR provides:
Test Plan
Breaking Changes
None. All changes are additive with backward compatibility maintained.
Dependencies
No new external dependencies added.
🤖 Generated with Claude Code