Тема: линтеры (см. ../../theory/software-engineering.md → «Линтеры»).
Задача: пройтись статическими анализаторами по коду и довести его до «зелёного».
Подопытный — апишка из 06_k8s/app.py (и, при желании, твои решения
python-задач из ../python/).
Линтеры != форматирование — это автоматизация части code review: стиль, мёртвый код, типы.
- Установи:
pip install ruff vulture mypy - ruff — быстрый all-in-one (стиль, баги, часть безопасности):
ruff check .→ почини замечания (илиruff check --fix .для автофиксов). - mypy — типы:
mypy --strict 06_k8s/app.py→ добей аннотации, чтобы былSuccess. - vulture — мёртвый (недостижимый/неиспользуемый) код:
vulture 06_k8s/app.py→ разберись с каждым срабатыванием (убрать либо обосновать). - Добавь минимальный конфиг в
pyproject.toml(секции[tool.ruff],[tool.mypy]), чтобы настройки не жили в голове, а лежали в репе. Зафиксируйtarget-version/python_version.
- Чем ruff отличается от mypy и от vulture — что ловит каждый, а что нет?
- Почему vulture даёт ложные срабатывания (например на FastAPI-роуты/фикстуры) и как их гасят?
- Где место линтерам в pipeline — до тестов или после, блокируют ли они мёрж? (см. задачу
08_ci.md)