@@ -22,15 +22,18 @@ This repository provides Python bindings for the Rust library `egglog`, enabling
2222
2323### Prerequisites
2424- ** uv** - Package manager (https://github.com/astral-sh/uv )
25- - ** Rust toolchain** - Version 1.79 .0 (specified in rust-toolchain.toml)
25+ - ** Rust toolchain** - Version 1.89 .0 (specified in rust-toolchain.toml)
2626- ** Python** - 3.10+ (see .python-version)
2727
2828### Common Commands
2929
3030``` bash
31- # Install dependencies
31+ # Install dependencies (for development)
3232uv sync --extra dev --locked
3333
34+ # Install dependencies (for testing)
35+ uv sync --extra test --locked
36+
3437# Run tests
3538uv run pytest --benchmark-disable -vvv --durations=10
3639
@@ -77,16 +80,16 @@ See `pyproject.toml` for complete Ruff configuration.
7780
7881### Testing
7982- Tests are located in ` python/tests/ `
80- - Use pytest with snapshot testing (pytest-inline-snapshot )
83+ - Use pytest with snapshot testing (syrupy )
8184- Benchmarks use pytest-benchmark and CodSpeed
8285- Run tests with: ` uv run pytest --benchmark-disable -vvv `
8386
8487## Rust Code Standards
8588
8689### General Guidelines
87- - ** Edition** : Rust 2024
90+ - ** Edition** : Rust 2024 (experimental)
8891- ** FFI** : Uses PyO3 for Python bindings
89- - ** Main library** : Uses egglog from git (currently saulshanabrook/egg-smol branch)
92+ - ** Main library** : Uses egglog from git (saulshanabrook/egg-smol, clone-cost branch)
9093
9194### File Organization
9295- ` src/lib.rs ` - Main library entry point
@@ -123,7 +126,7 @@ Run `pre-commit install` to enable automatic checking.
123126- ** Core** : typing-extensions, black, graphviz, anywidget
124127- ** Array support** : scikit-learn, array_api_compat, numba, numpy>2
125128- ** Dev tools** : ruff, pre-commit, mypy, jupyterlab
126- - ** Testing** : pytest, pytest-benchmark, syrupy (inline snapshots )
129+ - ** Testing** : pytest, pytest-benchmark, pytest-codspeed, pytest-xdist, syrupy (snapshot testing )
127130- ** Docs** : sphinx and related packages
128131
129132### Rust Dependencies
@@ -167,9 +170,10 @@ Documentation is built with Sphinx:
167170
1681711 . ** Unit tests** : Test individual functions and classes
1691722 . ** Integration tests** : Test complete workflows
170- 3 . ** Snapshot tests** : Use inline snapshots for complex outputs
171- 4 . ** Benchmarks** : Performance testing with pytest-benchmark
172- 5 . ** Type checking** : Validate type stubs and annotations
173+ 3 . ** Snapshot tests** : Use syrupy for snapshot testing of complex outputs
174+ 4 . ** Benchmarks** : Performance testing with pytest-benchmark and pytest-codspeed
175+ 5 . ** Parallel testing** : Use pytest-xdist for faster test runs
176+ 6 . ** Type checking** : Validate type stubs and annotations
173177
174178## Performance Considerations
175179
0 commit comments