Contributing#
Development environment#
You'll need pixi installed. A development environment (the default environment) can be created and activated with:
Common tasks#
pixi run lint # Lint the codebase with Ruff
pixi run format # Format the codebase with Ruff
pixi run type-check # Type-check the codebase with Mypy
pixi run test # Run the fast unit tests with Pytest
pixi run test-slow # Run the slow tests as well
Tests#
Unit tests live under presto/tests/unit/; integration tests live under presto/tests/integration/. Slow tests are marked with @pytest.mark.slow and skipped from the default test task.
Style#
Ruff is configured in pyproject.toml ([tool.ruff.lint] and [tool.ruff.lint.pydocstyle]). Mypy is run in strict mode (pyproject.toml [tool.mypy]). Both run in CI via .github/workflows/ci.yaml.