Ваш браузер устарел. Рекомендуем обновить его до последней версии.

Info Board


Стиль PEP 8 >>

Документация Pylint >>

Pylint или проверка кода на соответствие стилю PEP8

Опубликовано 11.11.2023

При написании программного кода может возникать ряд недочётов, связанных с несоблюдением стандартов оформления кода, нарушением рекомендаций по стилю написания, неправильным использованием переменных, функций и другими потенциальными ошибки. Все эти факторы усложняют поддержку кода, увеличивают вероятность багов и затрудняют его понимание и рефакторинг. Как можно легко обнаружить и исправить эти ляпы?...

Для решения указанных проблем можно использовать фреймворк Pylint. Он представляет собой инструмент статического анализа кода на языке Python. Его главная цель - помочь программистам выявить и исправить потенциальные ошибки и проблемы в коде до его выполнения.

Pylint предлагает набор правил и стандартов оформления, основанных на рекомендациях PEP 8, а также проверяет собственные правила, которые помогают обнаружить ошибки программирования, подозрительные моменты, неправильное использование типов данных, и другие подобные недочёты.

Pylint проводит проверку кода, выдаёт предупреждения и ошибки, указывает на конкретные строки и столбцы, где была обнаружена проблема, и предоставляет рекомендации по исправлению. Он также поддерживает настройку пользовательских правил и конфигураций, чтобы удовлетворить конкретные требования проекта.

✅ Pylint включает в себя следующие функции:

1. Анализ кода: Pylint анализирует код на наличие потенциальных ошибок, несоответствий стилю кодирования, проблем с производительностью и прочих проблем.

2. Проверка стиля кодирования: Pylint проверяет соответствие кода заданному стилю кодирования. Это включает правила отступов, наименование переменных, операторов, функций и т.д.

3. Проверка форматирования: Pylint проверяет форматирование кода, включая использование пробелов, переносы строк и другие детали форматирования.

4. Проверка типов переменных: Pylint анализирует код на наличие проблем с типами переменных, таких как неявное приведение типов или ошибочное использование типов данных.

5. Проверка импортов: Pylint проверяет импорты модулей и предлагает улучшения, такие как упорядочивание импортов или удаление неиспользуемых импортов.

6. Проверка использования переменных и функций: Pylint анализирует код на наличие неиспользуемых переменных и функций, а также предлагает улучшения, связанные с использованием переменных и функций.

7. Подсказки по улучшению кода: Pylint предоставляет подсказки и рекомендации по улучшению качества кода, например, предлагает оптимизации производительности или более эффективный код.

8. Генерация отчетов: Pylint может генерировать отчеты о найденных проблемах и статистику выполнения анализа, что позволяет быстро и удобно улучшить код.

✅ На практике, использование этого приложения позволяет определить – насколько написанный вами код в Python соответствует стандарту PEP 8.

Например, после его запуска, в консоли выходит строка, где указано, какому баллу из 10 соответствует качество написанного кода, а также предыдущая оценка, если была произведена корректировка кода:

"Your code has been rated at 7.92/10 (previous run: 7.60/10)"

⚠️ В Python Pylint устанавливается из Terminal командой:

⚡️ pip install pylint

Далее нужно скопировать путь к установленному Pylint. Для получения пути введём в Terminal команду:
⚡️ where.exe pylint

Затем переходим (если это IDE Pycharm) по пути: File / Settings → Tools / External Tools → и в окне справа нажимаем на знак '+'.

Откроется окно: Edit Tool, в котором нужно ввести:

Name: Pylint
Program: Скопированный путь к pylint.exe
Arguments: "--msg-template='{abspath}:{line:5d},{column:2d}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: Путь к папке, где лежит файл pylint.exe
В Advanced Options указываем:
Synchronizie files after execution – ✔️
Open console for tool output – ✔️
Output filters: $FILE_PATH$:\s*$LINE$\,\s*$COLUMN$:

Нажимаем ОК

Теперь открываем любой файл с кодом и запускаем pylint из Tools → External Tools → pylint

Либо запускаем приложение из контекстного меню: External Tools → pylint

В консоли будут обозначены комментарии по улучшению и оценка кода стандарту PEP 8.

Другие варианты фильтров для вывода отчёта pylint:

Arguments: --virtualenv=$PyInterpreterDirectory$/.. $FileName$
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

Arguments: msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'
Output filters: $FILE_PATH$:$LINE$:$COLUMN$:.*

Arguments: "--msg-template='{abspath}:{line:5d}:{column}: {msg_id}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Output filters: $FILE_PATH$:\s*$LINE$\:\s*$COLUMN$:

Аргументы в поле Arguments используются для настройки вывода сообщений и результатов проверки в Pylint.

В данном примере:

`--msg-template='{abspath}:{line:5d},{column:2d}: {msg} ({symbol})'` - этот аргумент задает шаблон для вывода сообщений об ошибках и предупреждениях. Он содержит следующие параметры:
- `{abspath}` - абсолютный путь к файлу, в котором обнаружена ошибка или предупреждение
- `{line:5d}` - номер строки кода, на которой обнаружена ошибка или предупреждение, выровненный по правому краю до 5 знаков (спецификатор `d` указывает на целое число)
- `{column:2d}` - номер столбца в строке кода, где обнаружена ошибка или предупреждение, выровненный по правому краю до 2 знаков
- `{msg}` - сообщение об ошибке или предупреждении
- `{symbol}` - символическое обозначение ошибки или предупреждения

`--output-format=colorized` - этот аргумент указывает формат вывода результата проверки. Значение "colorized" означает, что результат будет выводиться с использованием цветовой разметки для лучшей читабельности.

`"$FilePath$"` - это макрос, который будет заменен на путь к файлу, который нужно проверить. В данном случае, `$FilePath$` будет заменено на активный открытый файл в редакторе.