Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: hardbyte/python-common-expression-language
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: hardbyte/python-common-expression-language
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: feature/tui
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 8 commits
  • 16 files changed
  • 1 contributor

Commits on Oct 23, 2025

  1. Update cel to 0.11.6

    hardbyte committed Oct 23, 2025
    Configuration menu
    Copy the full SHA
    bd72e64 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0d824c1 View commit details
    Browse the repository at this point in the history
  3. Set version to 0.5.4

    hardbyte committed Oct 23, 2025
    Configuration menu
    Copy the full SHA
    cf1301a View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2025

  1. Add batch context processing and comprehensive E2E tests

    Implements --for-each flag for evaluating one CEL expression against
    multiple context files separately, with comprehensive end-to-end test
    coverage for all CLI features.
    
    Features:
    - New --for-each flag for batch context processing
    - Evaluates expression separately for each file (not merged)
    - Results displayed in table or JSON format with timing info
    - Base context can be merged with each file context
    
    Testing:
    - Added 13 unit tests for batch context processing function
    - Added 41 E2E tests using subprocess to verify full CLI experience
      - 25 tests for basic CLI features (context, output, flags, errors)
      - 7 tests for --file mode (expressions from files)
      - 9 tests for --for-each batch processing
    - Total: 91 tests (50 unit + 41 E2E), all passing in ~7.5s
    - CLI feature coverage: ~95% (excludes interactive/TUI modes)
    
    Documentation:
    - Updated README.md with batch processing example
    - Added comprehensive --for-each docs to cli-reference.md
    - Added usage recipes and patterns to cli-recipes.md
    - Explained difference between --for-each (separate) vs --context-file (merged)
    
    Example usage:
      cel 'user.age >= 18' --for-each user1.json --for-each user2.json --for-each user3.json
      cel 'expr' --context '{"base": 1}' --for-each file1.json --for-each file2.json --output json
    
    The --for-each pattern with repeated flags makes it explicit that each
    file is evaluated separately, following precedents from cargo test --test
    and curl -H patterns.
    hardbyte committed Nov 1, 2025
    Configuration menu
    Copy the full SHA
    49ecdc4 View commit details
    Browse the repository at this point in the history
  2. Update deps

    hardbyte committed Nov 1, 2025
    Configuration menu
    Copy the full SHA
    7399364 View commit details
    Browse the repository at this point in the history
  3. Update CLAUDE.md with CLI architecture and testing patterns

    Documents the CLI design patterns, batch processing rationale, E2E testing
    strategy, and common pitfalls for future agents working on the codebase.
    
    Key additions:
    - CLI architecture overview (modes, key components)
    - Batch processing design rationale (why --for-each pattern)
    - E2E testing strategy and patterns
    - Test organization (91 tests: 50 unit + 41 E2E)
    - Common pitfalls for CLI development and testing
    - Documentation requirements for new CLI features
    - Performance notes
    hardbyte committed Nov 1, 2025
    Configuration menu
    Copy the full SHA
    9e3f1a4 View commit details
    Browse the repository at this point in the history
  4. Use platformdirs for cross-platform config directory

    Replace custom OS detection logic with platformdirs library for proper
    cross-platform configuration directory handling.
    
    Changes:
    - Add platformdirs>=4.0.0 to dependencies
    - Update expression_storage.py to use platformdirs.user_config_dir()
    - Fallback to manual detection if platformdirs not available
    - Follows XDG Base Directory spec on Linux
    - Uses proper AppData on Windows
    - Uses Library/Application Support on macOS
    
    Benefits:
    - Proper handling of XDG_CONFIG_HOME on Linux
    - Better Windows roaming profile support
    - Follows platform conventions correctly
    - Well-tested library (used by pip, setuptools, etc.)
    hardbyte committed Nov 1, 2025
    Configuration menu
    Copy the full SHA
    21fcb4e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    095445e View commit details
    Browse the repository at this point in the history
Loading