Eu tenho um grande repositório de origem dividido em vários projetos. Eu gostaria de produzir um relatório sobre o funcionamento do código-fonte, identificando áreas problemáticas que precisam ser abordadas.
Especificamente, gostaria de chamar rotinas com alta complexidade ciclomática, identificar a repetição e talvez executar alguma análise estática semelhante a um lint para detectar construções suspeitas (e, portanto, provavelmente errôneas).
Como posso construir esse relatório?
https://flakehell.readthedocs.io/config.html
hoje em dia, já que seu modelo de execução é muito mais robusto e configurável.Para complexidade ciclomática, você pode usar
radon
: https://github.com/rubik/radon(Use
pip
para instalá-lo:pip install radon
)Além disso, também possui estes recursos:
fonte
Para análise estática, há pylint e pychecker . Pessoalmente, eu uso o pylint porque parece ser mais abrangente do que o pychecker.
Para a complexidade ciclomática, você pode tentar este programa perl ou este artigo que apresenta um programa python para fazer o mesmo
fonte
Pycana funciona muito bem quando você precisa entender um novo projeto!
Veja como funciona: http://pycana.sourceforge.net/
resultado:
fonte
Graças ao Pydev , você pode integrar o pylint no Eclipse IDE com muita facilidade e obter um relatório de código cada vez que salvar um arquivo modificado.
fonte
Use flake8 , que fornece pep8, pyflakes e análise de complexidade ciclomática em uma ferramenta
fonte
Existe uma ferramenta chamada CloneDigger que ajuda a encontrar trechos de código semelhantes.
fonte
Para verificar a complexidade ciclomática, existe, é claro, o
mccabe
pacote.Instalação:
Uso:
Observe o limite de 6 acima. Por essa resposta , pontuações> 5 provavelmente devem ser simplificadas.
Saída de amostra com
--min=3
:Opcionalmente, também pode ser usado via pylint-mccabe ou pytest-mccabe , etc.
fonte