Итак, я обнаружил, что по умолчанию Flake8 упаковывает pycodestyle: 2.5.0
по умолчанию, что из документации гласит:
Помимо прочего, эти функции в настоящее время не входят в сферу применения библиотеки pycodestyle. :
- соглашения об именах: эта функция поддерживается через плагины. Установите flake8 и расширение pep8-naming для использования этой функции.
- соглашения о документах: они не входят в сферу действия этой библиотеки; увидеть проект pydocstyle.
- автомат c исправление: см. Раздел Исправления PEP8 на странице связанных инструментов.
Итак, я установил pep8-naming
, а также flake8-docstrings
и после работает flake8 --version
Я получил ниже, который показывает, что он теперь использует установленные плагины:
3.7.9 (flake8-docstrings: 1.5.0, pydocstyle: 5.0.2, mccabe: 0.6.1, naming: 0.8.2, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.7.6 on Darwin
Я повторно чек flake8 cars.py
, и я получил следующий вывод:
cars.py:1:1: D100 Missing docstring in public module
cars.py:2:1: D101 Missing docstring in public class
cars.py:2:8: N801 class name 'cars' should use CapWords convention
cars.py:3:1: D107 Missing docstring in __init__
Первое впечатление - после проверки репозиториев git для flake8
и дополнительных плагинов, которые мне пришлось установить, я немного скептически отношусь к Flake8. Причина в том, что на момент написания статьи Pylint, похоже, был упакован с тем поведением, которое мне нужно, а также с тем, чтобы дольше оставаться в выигрыше от стабильности и большего количества участников. В отличие от flake8
, который является более новым, и для достижения желаемого поведения необходимо установить сторонние плагины / библиотеки, которые могут быть отменены через год или два или прерваны при обновлении flake8
. Любой сценарий проблематичен c, а последний проблематичен, если вы не будете осторожны с упоминанием конкретной c версии / сборок в конвейерах CI.