- This repo uses a uniform, reproducible workflow based on uv and pyproject.toml.
- These instructions exist to prevent tool drift (e.g., pip) and OS mismatch.
- Use uv for all environment, dependency, and run commands in this repo.
- Do not recommend or use
pip install ...as the primary workflow. - This repo targets Python 3.14, pinned via uv.
- Commands and guidance must work on Windows, macOS, and Linux.
- If shell-specific commands are unavoidable, provide both:
- PowerShell (Windows)
- bash/zsh (macOS/Linux)
- Install uv using the official method for your OS.
- Keep uv current.
- Pin Python 3.14 for this project using uv.
- Sync dependencies (dev + docs) and upgrade.
uv self update
uv python pin 3.14
uv sync --extra dev --extra docs --upgrade
uvx pre-commit installRun all commands via uv.
Lint / format using pre-commit:
git add -A
uvx pre-commit run --all-files
# repeat if changes were made
git add -A
uvx pre-commit run --all-filesRun checks and build documentation:
uv run ruff format .
uv run ruff check . --fix
uv run python -m pyright
uv run python -m pytest
uv run python -m zensical build- pre-commit runs only on tracked / staged files.
- Developers should
git add -Afiles before expecting hooks to run.
This project uses confluent-kafka and other dependencies
listed in pyproject.toml.
Kafka instructions are available at kafka.
Multiple terminals are used:
- If Windows, WSL: Terminal 1 to run kafka
- If Windows, WSL: Terminal 2 to manage topics.
- If Windows, PowerShell: Terminal 3 to run the project and a producer.
- If Windows, PowerShell: Terminal 4 to run a consumer.