- Python >=3.12
- UV package manager
The fastsandpm tool chain uses uv as its packaging and tool running utility.
Unit tests validate functionality and are stored in the ./tests/ directory.
uv run pytest # Run all unit tests
uv run pytest tests/test_module.py::test_function # Run specific testCatches type-related errors at development time, ensuring code reliability.
uv run mypyEnforces PEP8 compliance and catches common bugs automatically.
uv run ruff check # Check code style
uv run ruff check --fix # Auto-fix style issuesRuns all test suites across Python versions and environments to ensure compatibility.
uv run tox # Run all test suites
uv run tox p # Run tests in parallel (faster)All Python code must comply with PEP 8.
Project-specific settings are configured in pyproject.toml:
- Line length: 100 characters
- Python version: 3.12+
- Import sorting: enabled (isort)
- Quote style: double quotes
Use the following format for branch names:
feature/*- New features (e.g.,feature/add-export-functionality)bugfix/*- Bug fixes (e.g.,bugfix/fix-yaml-parsing)docs/*- Documentation updateschore/*- Maintenance tasks
Use the following format for commit messages:
(BREAKING) description
Optional body with more details
Where the BREAKING part is only appended for breaking API changes which will require a major version bump.
Ensure all of the following are complete:
- All tests pass:
uv run tox(oruv run tox pfor parallel)- Code is formatted:
uv run ruff check --fix - Type checking passes:
uv run mypy
- Code is formatted:
- CHANGELOG.md updated with your changes
- Documentation updated (docstrings, README, docs/)
- Branch follows naming convention:
feature/*,bugfix/*, etc. - Commit messages follow Conventional Commits format
- PR description clearly explains the changes and motivation
# Run tests matching a pattern
uv run pytest -k "pattern"
# Run with verbose output
uv run pytest -v
# Show print statements
uv run pytest -s
# Stop on first failure
uv run pytest -x# Show detailed error information
uv run mypy --show-error-codes --show-error-contextuv run tox -e docs_html # Build HTML docs
uv run tox -e docs_dirhtml # Build dirhtml docs- Ensure
uvis installed and in your PATH - Try
python -m pip install uv - Check with your VDT team if using module-based installation
- Ensure you're running commands with
uv run(not directly) - Try:
uv syncto update dependencies
- Run the full test suite:
uv run tox(not justpytest) - Check Python version:
python --version(must be 3.12+)