У меня большой исходный репозиторий, разделенный на несколько проектов. Я хотел бы подготовить отчет о состоянии исходного кода с указанием проблемных областей, которые необходимо решить.
В частности, я хотел бы вызвать процедуры с высокой цикломатической сложностью, выявить повторение и, возможно, запустить некоторый статический анализ, похожий на линт, чтобы обнаружить подозрительные (и, следовательно, вероятно, ошибочные) конструкции.
Как я могу построить такой отчет?
https://flakehell.readthedocs.io/config.html
наши дни, так как эта модель выполнения намного более надежна и настраиваема.Для цикломатической сложности вы можете использовать
radon
: https://github.com/rubik/radon(Используется
pip
для его установки:pip install radon
)Кроме того, он также имеет следующие функции:
источник
Для статического анализа есть pylint и pychecker . Лично я использую pylint, поскольку он кажется более всеобъемлющим, чем pychecker.
Для цикломатической сложности вы можете попробовать эту программу на Perl или эту статью, в которой представлена программа на Python, которая делает то же самое.
источник
Pycana работает как шарм, когда вам нужно разобраться в новом проекте!
Посмотрите, как это работает: http://pycana.sourceforge.net/
вывод:
источник
Благодаря Pydev вы можете очень легко интегрировать pylint в Eclipse IDE и получать отчет о коде каждый раз, когда сохраняете измененный файл.
источник
Используйте flake8 , который обеспечивает анализ pep8, pyflakes и цикломатической сложности в одном инструменте
источник
Существует инструмент CloneDigger, который помогает вам находить похожие фрагменты кода.
источник
Для проверки цикломатической сложности, конечно, есть
mccabe
пакет.Монтаж:
Использование:
Обратите внимание на порог в 6 выше. Согласно этому ответу , оценки> 5, вероятно, следует упростить.
Пример вывода с
--min=3
:При желании его также можно использовать через pylint-mccabe или pytest-mccabe и т. Д.
источник