-
Install uv (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Set up the project:
Recommended: For active development
make dev-install
This installs the package and all dependencies. Use this for normal development.
Alternative: Dependencies only (for CI/CD or tools)
make setup-venv
This only installs dependencies, not the package. Useful for CI/CD or when you only need tools.
-
Run tests:
make test
That's it! The Makefile automatically uses uv if available, otherwise falls back to pip.
uv is an extremely fast Python package installer and resolver written in Rust. It's designed to be a drop-in replacement for pip, pip-tools, virtualenv, and pipx.
- ⚡ Faster: 10-100x faster than pip/conda
- 🔒 Reproducible:
uv.lockensures consistent builds - 🎯 Simple: One tool for virtualenv, pip, and dependency management
- 🔄 Compatible: Works with existing
pyproject.toml
make dev-install # Install all dependencies
make test # Run tests
make lint # Run linting
make format # Format code
make docs # Build documentation
make check # Run all checksThis project uses both dependency groups and extras:
- Dependency groups (
dev,docs): Development dependencies that are not published to PyPI. Thedevgroup is installed by default withuv sync. - Extras (
tokenizer,token): Optional runtime features for tokenizer support - install with--extra tokenizeror--all-extras.
Make sure ~/.local/bin is in your PATH:
export PATH="$HOME/.local/bin:$PATH"Clear and recreate:
rm -rf .venv
uv sync --group docs --all-extrasRegenerate the lock file:
rm uv.lock
uv lock
uv sync --group docs --all-extrasFor more details, see CONTRIBUTING.md.