Thanks for your interest in contributing.
- Python 3.10+
- pre-commit (
pip install pre-commit)
git clone https://github.com/Tejas-TA/predikit
cd predikit
pip install -e ".[dev]"
pre-commit installpre-commit install wires up ruff and mypy to run automatically before every commit.
pytest --cov=src/predikit --cov-report=term-missingThis project uses ruff for linting and formatting, and mypy for type checking. All three are configured in pyproject.toml.
# Check and auto-fix
ruff check --fix src/ tests/
ruff format src/ tests/
# Type check
mypy src/predikitOr run everything at once via pre-commit:
pre-commit run --all-filesCI enforces all three checks on every push and PR (see .github/workflows/test.yml).
- Target
main. - Keep changes focused — one feature or fix per PR.
- Add or update tests for any changed behaviour.
- Run
pre-commit run --all-filesbefore pushing; CI will catch failures regardless.
- Exporters live in
src/predikit/exporters/and should expose a single function consumed byModelTool. - Loaders live in
src/predikit/loaders/and should return aModelToolinstance. - Any new optional dependency must be added to both the relevant optional group and
devinpyproject.toml, and imported inside the function body (not at module level).
- Bump
versioninpyproject.tomland__version__insrc/predikit/__init__.py. - Add a section to
CHANGELOG.md. - Merge to
main, create a GitHub Release taggedvX.Y.Z. publish.ymlautomatically publishes to PyPI via OIDC trusted publishing.