Полезные модули Python : Flake8

Каждый питонщик знаком с PEP8, гидом “Style Guide for Python Code.” Это замечательный документ, и если ему следовать, то ваш код стилистически будет согласоваться с кодом, написанным другими разработчиками. Соблюдение последовательности – огромная победа, потому что это упрощает жизнь при взаимодействии с вашим кодом.

Как вы помните, основные рекомендации PEP8:

  • Используйте 4 пробела в качестве отступа.
  • Отделяйте функции верхнего класса и определения функций двумя пустыми строками.
  • Используйте пробелы вокруг арифметических операций.
  • Импорт должен быть, как правило, на отдельных строках.
  • Ограничивайте все строки максимум 79 символами.

Но как запомнить все из них? Введите в поиске: pep8.

pep8: проверка стиля для кода Питон

Сценарий pep8 просто проверяет код, сравнивая с регламентом PEP 8 и предупреждает вас о несоответствиях. Вы можете установить его, используя команду pip install pep8.

Давайте посмотрим на один пример. Проверим код:

Это просто, и это работает, но стиль все неправильный!

  • Два импорта, Os и SYS, на одной и той же линии.
  • Обозначена только одна пустая строка между определениями функций.
  • Пропущены пробелы вокруг моего + и * операторов.

Проверим этот же код через pep8:

Мало того, что pep8 нашел эти ошибки, но можно также использовать опцию –show-pep8, чтобы цитировать PEP 8 для каждой трансгрессии!
Но как насчет других проблем, как например, то что в коде находится бесполезный import? Тут на помощь приходит PyFlakes.

pyflakes: проверка кода на ошибки для Питона

Модуль pyflakes читает код и предупреждает об общих источниках ошибок. Его также можно установить, используя pip install pyflakes.

Pyflakes ловит такие ошибки, как:

  • Неиспользованные импорт и переменные.
  • Скрытые или затертые имена.
  • Переопределенные функции.

Давайте проверим:

Замечательно!
Но что, если мы заботимся о стиле и источниках ошибок?

flake8: pep8 + pyflakes + многое другое

Тарек Зиаде написал модуль Flake8, который объедил pep8 и pyflakes в одном удобном автономном пакете.  pep8 или pyflakes уже помещены в Flake8, их не нужно устанавливать отдельно.  Flake8  устанавливается при помощи pip install flake8.

В flake8 добавлены:

  • Способ освобождения файлов или строк из проверяемого списка.
  • Опциональная проверка цикломатической сложности.

(Цикломатическая сложность является мерой “сложности” кода, полученная в первую очередь от его степени вложенности и ветвления. Если её слишком много в какой-либо одной функции, то, вероятно, код будет трудно читаем и поддерживаем)

Вот результат проверки при помощи falake8:

Специальный бонус: Syntastic: Проверка синтаксиса для Vim

Если вы используете Vim и вам приходятся по вкусу идеи, лежащие в основе flake8, вам стоит установить плагин Syntastic. При сохранении файла, Syntastic запускает его через проверку ошибок и предупреждает вас о возможных проблемах. Для Python он по умолчанию использует Flake8.

Посмотрите, что происходит, если мы попытаемся сохранить сценарий mymath.py, показанный выше:


Ошибочные линии выделены подчеркиванием, и также выдан Location List с перечислением всех ошибок. Здорово, не правда ли?
Занимательно еще то, что Syntastic способен проверить синтаксические ошибки для множества различных языков, например, C, CoffeeScript, Go, Haskell, JavaScript, Puppet, Vala, и многие другие.

Поделитесь с друзьями:

Оставьте комментарий