This project is designed to have a minimal learning curve. You only need to know 4 commands for the entire development cycle.
# Initial setup (only once)
uv sync
uv run pre-commit install
# Development cycle (repeat as needed)
poe pre
# Commit your changes
git add .
git commit -m "Your message"
git pushWhen you run git commit, the pre-commit hooks automatically:
- Format your code using Ruff
- Lint your code to check for errors and style issues
- Check types using Pyright
- Detect security issues using Bandit
- Find dead code using Vulture
- Verify docstring coverage using Interrogate
- Measure code complexity using Radon and Xenon
If any of these checks fail, the commit is aborted, and you'll see error messages explaining what needs to be fixed.
- Minimal learning curve - just 4 commands to remember
- Consistent code quality - automated checks ensure high standards
- Fast feedback loop - issues are caught before they're committed
- Reduced review cycles - fewer issues to fix during code review
- Better collaboration - everyone follows the same standards
If your commit fails due to pre-commit hooks:
- Read the error messages to understand what failed
- Fix the issues in your code
- Run
git add .to stage the fixes - Try committing again with
git commit -m "Your message"
In rare cases, you might need to bypass the pre-commit hooks:
git commit -m "Your message" --no-verifyWarning: This should only be used in exceptional circumstances, as it bypasses all quality checks.
To update your pre-commit hooks to the latest versions:
uv run pre-commit autoupdateFor more detailed information about the pre-commit hooks and what they check for, see Pre-commit Hooks.