max-statements в Javascript ESLint предлагает действительно хорошее применение для небольших, модализованных и читаемых функций. Я надеялся найти что-то подобное в Python Flake8 lint, но до сих пор мне не повезло. Есть ли способ настроить Flake8 для поощрения небольших функций?Эквивалентность Flake 8 для максимальных операторов ESLint
0
A
ответ
1
Чтобы расширить @ Kindall замечания,
Flake8 не обеспечивает заявление шашки, но у него есть два способа вычисления цикломатической сложности функций и методов.
Cyclomatic complexity использует утверждения и ветви для определения сложности функции, поэтому это, скорее всего, приведет к еще более простым функциям, чем то, что вы можете увидеть в JavaScript. Это связано с тем, что структуры if/elif/else
добавят сложности, а также for
и while
.
Чтобы включить «встроенную» циклическую сложность, вы можете использовать --max-complexity
. Однако существуют альтернативы проекту mccabe
. Например, если вы pip install radon
, который добавляет свою собственную циклическую сложность, проверяя Flake8 и запускается при запуске Flake8.
Похоже, есть циклическая проверка сложности, но по умолчанию она отключена. '--max-complex' - это флаг командной строки для него или' max-complex = 'в файле конфигурации. Рекомендуется значение 10. Это не совсем так, но может стимулировать подобные привычки. – kindall