2010-12-09 21 views
26

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

ответ

23

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

pylint повреждает = [ошибка, ошибка]

Я заблокировал это (описание от http://www.logilab.org/card/pylintfeatures

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

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

W0141: Используется встроенная функция% r Используется, когда используется встроенная функция черного цвета (см. Параметр плохой функции). Обычными черными перечисленными функциями являются такие, как карта или фильтр, где Python предлагает теперь более чистую альтернативу, такую ​​как понимание списка.

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

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

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

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

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

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

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

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

+2

Описание отключения определенных типов сообщений является правильным, но я считаю, что некоторые из конкретных вариантов подавленных ошибок являются спорными. Такие вещи, как «Слишком много локальных переменных/ветвей», представляют собой огромный красный флаг. – 2014-01-28 15:33:34

7

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

8

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

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

используя Grep как :

pylint my_file.py | grep -v "^C" 
Смежные вопросы