NonePython : pycodestyle (ex pep8) против строгости Pylint

У меня есть python проект, который я хочу проверить против PEP8 соответствия.

мой setyp.cfg является следующим:

[pycodestyle]
count = True
ignore = E266, W504
max-line-length = 80
statistics = True
exclude = .venv,./build%

После некоторой очистки мой pycodestyle проверка теперь не выдает ни ошибок, ни предупреждений (те, которые игнорируются, конечно)

~/Workspace/my-app  master ✔                                                                                                                        2h36m
➢  pycodestyle .
(.venv)
~/Workspace/my-app  master ✔

Тем не менее, работает pylint против моего проекта выдает массу ошибок:

(некоторые из них следуют только для демонстрационных целей)

************* Module somemodule.commands
src/somemodule/commands.py:98:0: C0330: Wrong continued indentation (add 16 spaces).
                            format(gcp_project)))
                            ^               | (bad-continuation)
src/somemodule/commands.py:1:0: C0111: Missing module docstring (missing-docstring)
src/somemodule/commands.py:21:-1: W0105: String statement has no effect (pointless-string-statement)
src/somemodule/commands.py:29:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:45:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:41:16: W0613: Unused argument 'g_project' (unused-argument)
src/somemodule/commands.py:58:0: C0111: Missing function docstring (missing-docstring)
src/somemodule/commands.py:59:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:100:4: R1705: Unnecessary "else" after "return" (no-else-return)
src/somemodule/commands.py:102:8: C0103: Variable name "p2" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:123:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:139:0: C0111: Missing function docstring (missing-docstring)
src/somemodule/commands.py:2:0: C0411: standard import "import os" should be placed before "import click" (wrong-import-order)
src/somemodule/commands.py:3:0: C0411: standard import "import sys" should be placed before "import click" (wrong-import-order)
src/somemodule/commands.py:5:0: C0411: standard import "from subprocess import Popen, PIPE" should be placed before "import click" (wrong-import-order)

Как так получилось, что эти два инструмента дают такие отклоняющиеся результаты?

0 ответов

Я просто наткнулся на этот вопрос, сравнивая pycodestyle а также pylint себя.

Вкратце ответ таков: pycodestyle это "подмножество" pylint. Позвольте мне процитировать кое-что из основных инструментов Python:

  • Pycodestyle (ранее PEP8) - это официальный инструмент линтера для проверки кода Python на соответствие стилевым соглашениям Python PEP8.
  • Pylint - это линтер на Python, который проверяет исходный код, а также действует как средство проверки ошибок и качества. У него больше проверок и опций, чем просто PEP8(руководство по стилю Python).
    • Это наиболее часто используемый инструмент для линтинга в Python.
    • Он включает в себя следующие функции:
      • Проверка длины каждой строки
      • Проверка правильности формирования имен переменных в соответствии со стандартом кодирования проекта
      • Проверка правильности реализации заявленных интерфейсов.
      • ...
Другие вопросы по тегам