Tengo un gran repositorio de fuentes dividido en varios proyectos. Me gustaría producir un informe sobre la salud del código fuente, identificando áreas problemáticas que deben abordarse.
Específicamente, me gustaría mencionar rutinas con una alta complejidad ciclomática, identificar la repetición y tal vez ejecutar algún análisis estático similar a una pelusa para detectar construcciones sospechosas (y por lo tanto probablemente erróneas).
¿Cómo podría construir un informe de este tipo?
https://flakehell.readthedocs.io/config.html
embargo, lo recomendaría estos días, ya que su modelo de ejecución es mucho más robusto y configurable.Para la complejidad ciclomática puede usar
radon
: https://github.com/rubik/radon(Uso
pip
para instalarlo:pip install radon
)Además también tiene estas características:
fuente
Para el análisis estático hay pylint y pychecker . Personalmente, uso pylint ya que parece ser más completo que pychecker.
Para la complejidad ciclomática, puede probar este programa en Perl o este artículo que presenta un programa en Python para hacer lo mismo.
fuente
¡Pycana funciona de maravilla cuando necesitas entender un nuevo proyecto!
Vea cómo funciona: http://pycana.sourceforge.net/
salida:
fuente
Gracias a Pydev , puede integrar pylint en el IDE de Eclipse con mucha facilidad y obtener un informe de código cada vez que guarde un archivo modificado.
fuente
Use flake8 , que proporciona pep8, pyflakes y análisis de complejidad ciclomática en una sola herramienta
fuente
Existe una herramienta llamada CloneDigger que le ayuda a encontrar fragmentos de código similares.
fuente
Para comprobar la complejidad ciclomática, por supuesto, existe el
mccabe
paquete.Instalación:
Uso:
Tenga en cuenta el umbral de 6 anterior. Según esta respuesta , las puntuaciones> 5 probablemente deberían simplificarse.
Salida de muestra con
--min=3
:Opcionalmente, también se puede utilizar a través de pylint-mccabe o pytest-mccabe , etc.
fuente