Хороший пре-коммит хук для Python разработчиков
Что такое pre-commit hook? Возможность автоматически проверять код перед коммитом. Может быть разное: прогонять тесты, линтеры, форматтеры...
И я собрал для вас быстрый набор из прекоммит хуков, которые вы можете использовать на любых проектах.
Что в него входит:
- ruff (быстрейший форматтер, делает код красивым)
- pyright (один из быстрейших статических анализаторов кода на Python, посвечивает ошибки в тайп-хинтах. что-то типа проверки типов при компиляции)
- pytest с расширением doctest (прогоняет имеющиеся юнит тесты вместе с тестами в документации, про которые я писал ранее. я еле как нашёл пре коммит хук для этого...)
Как установить?
1. сначала
pip install pre-commit
2. потом создаётё .pre-commit-config.yaml
3. потом вставляете туда
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.1.5
hooks:
- id: ruff
args: [ --fix, --exit-non-zero-on-fix, --show-fixes ]
- id: ruff-format
- repo: local
hooks:
- id: pytest
args: [ --doctest-modules ]
name: pytest
entry: pytest .
language: system
types: [python]
pass_filenames: false
always_run: true
- repo: https://github.com/RobertCraigie/pyright-python
rev: v1.1.385
hooks:
- id: pyright
4. пишете
pre-commit install
Энджой :)
Ссылка на оригинальный пост:
https://t.me/sh1nke9/375