Skip to content

refactor: rename chain_dag to chain_let for semantic clarity#713

Closed
lmeyerov wants to merge 3 commits into
feature/gfql-pr4-consolidate-wire-protocolfrom
feature/gfql-pr5-rename-chain-dag-to-let-v2
Closed

refactor: rename chain_dag to chain_let for semantic clarity#713
lmeyerov wants to merge 3 commits into
feature/gfql-pr4-consolidate-wire-protocolfrom
feature/gfql-pr5-rename-chain-dag-to-let-v2

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Jul 25, 2025

Copy link
Copy Markdown
Contributor

Summary

Renames chain_dag to chain_let throughout the codebase for semantic consistency with Let bindings.

Stack Position: #4 - Builds on the full GFQL implementation and provides semantic consistency.

Stack Order

The complete GFQL stack (merge in this order):

  1. PR feat(gfql): PR 1.2 - Basic Working DAG execution #706: Core AST classes (ASTLet, ASTRemoteGraph, ASTChainRef)
  2. PR feat(gfql): PR 1.3 - Call Operations for safe method execution #707: ASTCall implementation with validation
  3. PR docs(gfql): Consolidate wire protocol documentation #709: GFQL directory restructuring and import path updates
  4. PR refactor: rename chain_dag to chain_let for semantic clarity #713: This PR - Rename chain_dag → chain_let for semantic consistency
  5. PR docs(gfql): Comprehensive Let bindings and Call operations documentation #708: Comprehensive documentation (rebased onto refactor: rename chain_dag to chain_let for semantic clarity #713)

Semantic Rename: chain_dag → chain_let

Rationale

The original name "chain_dag" was misleading because:

  • The implementation executes DAG (Directed Acyclic Graph) operations
  • "Chain" implies sequential operations, but Let bindings enable parallel/branching execution
  • "Let" better reflects the semantic concept of variable binding and reuse

Files Renamed

  • graphistry/compute/chain_dag.pygraphistry/compute/chain_let.py
  • graphistry/compute/gfql/chain_dag.pygraphistry/compute/gfql/chain_let.py

Function Renames

  • chain_dag()chain_let() - Public API function
  • chain_dag_impl()chain_let_impl() - Internal implementation
  • All related helper functions and references

Import Updates

  • Updated all imports from chain_dag to chain_let
  • Updated function calls throughout the codebase
  • Updated test imports and references
  • Updated documentation references

Test File Updates

  • test_chain_dag.pytest_chain_let.py
  • test_chain_dag_gpu.pytest_chain_let_gpu.py
  • test_chain_dag_remote_integration.pytest_chain_let_remote_integration.py
  • Updated test names and docstrings to use "let" terminology

API Compatibility

  • Added deprecation warnings for old chain_dag() function
  • Maintains backward compatibility during transition period
  • Clear migration path documented for users

Documentation Updates

  • Updated README references to use chain_let terminology
  • Updated integration test documentation
  • Updated code comments to reflect Let binding semantics
  • Enhanced clarity around DAG vs sequential operation concepts

Benefits

  • Semantic Clarity: Name now matches the actual functionality
  • Consistency: Aligns with Let binding terminology throughout GFQL
  • User Understanding: Clearer mental model for DAG-based operations
  • Future Extensibility: Better foundation for advanced Let binding features

This rename completes the semantic alignment of the GFQL implementation, making the codebase more intuitive and maintainable.

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

lmeyerov and others added 3 commits July 26, 2025 02:45
- Rename chain_dag.py → chain_let.py
- Update chain_dag_impl → chain_let_impl
- Rename test files and update all references
- Update comments and documentation
- Maintain backward compatibility in wire protocol

This change improves semantic clarity as 'let' better represents
the binding functionality than 'dag' (directed acyclic graph).
Fix mypy type error where from_json returns Union type but ASTLet expects
Dict[str, ASTObject]. Added explicit cast to satisfy type checker.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…f to ASTRef

- Fixed merge conflicts in chain_let.py and test_chain_let.py
- Updated test_call_operations.py to import ASTRef instead of ASTChainRef
- Resolved all remaining refactoring conflicts from chain_dag → chain_let rename

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@lmeyerov

Copy link
Copy Markdown
Contributor Author

Superseded by PR #715 which consolidates all GFQL code changes into a single PR for easier review and testing.

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