Мы уже говорили об утилите pre-commit, которая автоматизирует рутинный запуск анализаторов кода и не позволяет сделать коммит, пока проблемы не будут исправлены.
Теперь расскажем о тех утилитах, которые применяются в каждом нашем проекте:
— flake8 — статический анализатор кода с поддержкой очень большого количества плагинов
— black форматирует и приводит код в общему виду
— mypy проверяет аннотации типов
— reorder-python-imports единообразно организует импорты
— autoflake удаляет неиспользуемые импорты и переменные
— pyupgrade обновляет синтаксис до текущей версии python
— yesqa удаляет ненужные
#noqaПрименение всех утилит с настройками по умолчанию скорее вредно, поэтому вот несколько советов:
— настройте в pre-commit опцию exclude — список каталогов, для которых не применять анализатор
— в flake8 настройте игнорирование особо душных замечаний
— в autoflake настройте автоматическое исправление замечаний
— при использовании mypy совместно с pre-commit нужно пользоваться специальной версией
Применение перечисленных утилит в командной работе облегчит проведение code review. Никто не будет тратить время на то, что может поправить машина.
Расскажите, если на практике используете другие анализаторы кода.
#devfm #procode