Подтвердить что ты не робот

Лучшие рекомендации PyLint?

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

4b9b3361

Ответ 1

Вы можете заблокировать любые предупреждения/ошибки, которые вам не нравятся, через:

pylint --disable=error1,error2

Я заблокировал следующее (описание с http://www.logilab.org/card/pylintfeatures):

W0511: используется при обнаружении предупреждающего примечания в виде FIXME или XXX

W0142: Используется * или * magic * Используется, когда функция или метод вызывается с использованием *args или **kwargs для отправки аргументов. Это не улучшает читаемость и должно использоваться с осторожностью.

W0141: Используемая встроенная функция% r Используется, когда используется встроенная функция из черного списка (см. Параметр "Неисправная функция"). Обычные функции из черного списка - это те же функции, что и map, или filter, где Python предлагает теперь более чистую альтернативу, такую как понимание списка.

R0912: слишком много ветвей (% s/% s) Используется, когда функция или метод имеют слишком много ветвей, что усложняет отслеживание.

R0913: слишком много аргументов (% s/% s) Используется, когда функция или метод принимает слишком много аргументов.

R0914: слишком много локальных переменных (% s/% s) Используется, когда функция или метод имеют слишком много локальных переменных.

R0903: слишком мало открытых методов (% s/% s) Используется, когда в классе слишком мало открытых методов, поэтому убедитесь, что оно действительно того стоит.

W0212: Доступ к защищенному члену% s клиентского класса Используется, когда защищенный член (т.е. Член класса с именем, начинающимся с подчеркивания) является доступом вне класса или потомком класса, в котором он определен.

W0312: Найдены отступы с% ss вместо% ss Используется, когда в модуле есть несколько смешанных табуляций и пробелов.

C0111: отсутствует строка документации Используется, когда модуль, функция, класс или метод не имеют строки документации. Некоторые специальные методы, такие как __init__, не обязательно требуют строки документации.

C0103: Неверное имя "% s" (должно соответствовать% s) Используется, когда имя не соответствует регулярному выражению, связанному с его типом (константа, переменная, класс...).

Ответ 2

Pyflakes должен хорошо служить вашей цели.

Ответ 3

Настойчиво отключить предупреждения и условные обозначения:

  • Создайте файл ~/.pylintrc, запустив pylint --generate-rcfile > ~/.pylintrc
  • Изменить ~/.pylintrc
  • Раскомментировать disable= и изменить эту строку на disable=W,C

Ответ 4

-E будет указывать только то, что pylint считает ошибкой (т.е. никаких предупреждений, никаких соглашений...)

Ответ 5

используя grep like:

pylint my_file.py | grep -v "^C"