Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
18 lines (13 sloc) 3.22 KB

Python linters

Сегодня я расскажу о линтерах, которые использую в проектах. О некоторых я уже писал, но стоит это всё систематизировать в одном посте.

  • flake8 -- must have linter, который есть практически в любом проекте. Его основная фича -- легкая расширяемость, что породило довольно много плагинов. Дальше я буду рассказывать в основном о них.
  • flake8-bugbear -- плагин для поиска в коде некоторых багов. Предупреждений в нём мало, но мне кажется, всяких проверок нужно побольше. Это упрощает поиск багов и задает общий стиль кода.
  • pep8-naming -- плагин для проверки имен объектов на соответствие PEP-8.
  • flake8-commas -- проверяет расстановку запятых в функциях и структурах данных. Казалось бы, ерунда, но это довольно частый баг. Мне кажется, самый нужный плагин.
  • flake8-isort -- проверяет сортировку импортов. Я уже рассказывал про isort.
  • flake8-eradicate -- ищет закомментированные строки кода. В книге "совершенный код" дан хороший совет: если видите в проекте закомментированный код -- удалите. Для таких вещей и нужна VCS. Собственно, сам eradicate как раз предназначен для удаления такого кода.
  • wemake-python-styleguide -- набор множества правил для flake8, призванных поддерживать в коде консистентность во всём. Соответственно, все, кого я знаю, используют его с отключением некоторых проверок.

Ну а теперь о сторонних линтерах:

  • bandit -- различные security проверки, от использования pickle, до включенного debug во flask.
  • pylint -- штука очень строгая, не пропустит ни одного публичного метода без докстринга. Поэтому подключать его стоит только к новому проекту.
  • Pylama -- металинтер. О нём я уже писал, да.
You can’t perform that action at this time.