# Python linters Сегодня я расскажу о линтерах, которые использую в проектах. О некоторых я уже писал, но стоит это всё систематизировать в одном посте. * [flake8](https://github.com/PyCQA/flake8) -- must have linter, который есть практически в любом проекте. Его основная фича -- легкая расширяемость, что породило довольно много плагинов. Дальше я буду рассказывать в основном о них. * [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) -- плагин для поиска в коде некоторых багов. Предупреждений в нём мало, но мне кажется, всяких проверок нужно побольше. Это упрощает поиск багов и задает общий стиль кода. * [pep8-naming](https://github.com/PyCQA/pep8-naming) -- плагин для проверки имен объектов на соответствие PEP-8. * [flake8-commas](https://github.com/PyCQA/flake8-commas) -- проверяет расстановку запятых в функциях и структурах данных. Казалось бы, ерунда, но это довольно частый баг. Мне кажется, самый нужный плагин. * [flake8-isort](https://github.com/gforcada/flake8-isort) -- проверяет сортировку импортов. Я уже [рассказывал про isort](https://t.me/itgram_channel/175). * [flake8-eradicate](https://github.com/sobolevn/flake8-eradicate) -- ищет закомментированные строки кода. В книге "совершенный код" дан хороший совет: если видите в проекте закомментированный код -- удалите. Для таких вещей и нужна VCS. Собственно, сам [eradicate](https://github.com/myint/eradicate) как раз предназначен для удаления такого кода. * [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) -- набор множества правил для flake8, призванных поддерживать в коде консистентность во всём. Соответственно, все, кого я знаю, используют его с отключением некоторых проверок. Ну а теперь о сторонних линтерах: * [bandit](https://github.com/PyCQA/bandit) -- различные security проверки, от использования pickle, до включенного debug во flask. * [pylint](https://github.com/PyCQA/pylint) -- штука очень строгая, не пропустит ни одного публичного метода без докстринга. Поэтому подключать его стоит только к новому проекту. * [Pylama](https://github.com/klen/pylama) -- металинтер. О нём [я уже писал](https://t.me/itgram_channel/250), да.