Thank you for your interest in contributing to Draccus!
This project uses uv for Python package management.
# Install uv if you haven't already, other options: https://docs.astral.sh/uv/getting-started/installation/
pip install uvWe use pytest for testing:
# Run all tests
uv run pytest
# Run a specific test file
uv run pytest tests/test_base.pyWe use syrupy for testing CLI output.
When you first run tests that use snapshots, syrupy will create snapshot files in __snapshots__ directories. These files should be committed to the repository.
# Update snapshots when output intentionally changes
uv run pytest --snapshot-updateWe use black and ruff and a few other pre-commit hooks. You can run them like this:
# One time, to run on each commit
uvx pre-commit install
# As desired, by hand on all files
uvx pre-commit run --all-files