2016-12-04 6 views
0

max-statements в Javascript ESLint предлагает действительно хорошее применение для небольших, модализованных и читаемых функций. Я надеялся найти что-то подобное в Python Flake8 lint, но до сих пор мне не повезло. Есть ли способ настроить Flake8 для поощрения небольших функций?Эквивалентность Flake 8 для максимальных операторов ESLint

+0

Похоже, есть циклическая проверка сложности, но по умолчанию она отключена. '--max-complex' - это флаг командной строки для него или' max-complex = 'в файле конфигурации. Рекомендуется значение 10. Это не совсем так, но может стимулировать подобные привычки. – kindall

ответ

1

Чтобы расширить @ Kindall замечания,

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

Cyclomatic complexity использует утверждения и ветви для определения сложности функции, поэтому это, скорее всего, приведет к еще более простым функциям, чем то, что вы можете увидеть в JavaScript. Это связано с тем, что структуры if/elif/else добавят сложности, а также for и while.

Чтобы включить «встроенную» циклическую сложность, вы можете использовать --max-complexity. Однако существуют альтернативы проекту mccabe. Например, если вы pip install radon, который добавляет свою собственную циклическую сложность, проверяя Flake8 и запускается при запуске Flake8.