This is a Python package repository following standard development practices.
src/: Contains the main package code.tests/: Contains thepytesttest suite.docs/: Contains documentation files.pyproject.toml: The primary configuration file for metadata and tools.uv.lock: Lockfile ensuring reproducible environments.
- We use
uvfor fast package and environment management. - Do not use
pip,pipenv, orpoetrydirectly. - Do not manually edit
uv.lock. - To reproduce the locked environment, run
uv sync. - To explicitly upgrade dependencies and pre-commit hooks, run
make update-deps.
- Code formatting and linting are handled by
ruff, and type checking byty. - Pre-commit hooks are configured via
prek. - Do not commit code with linting errors, type warnings, or failing tests.
- Always run
make qato format, lint, and type-check your code. - Run
make check-packageto run the full validation suite (QA + Tests + Build). - Do not bypass the
Makefile; rely on its targets for standardized workflows.
- Ensure you are on a feature branch.
- Implement your code changes within
src/and corresponding tests withintests/. - Verify all changes by running
make check-package. - Commit your changes and push to the branch to update the Pull Request.