CLI multilenguaje basado en Rust que ejecuta linters, formateadores automáticos, escáneres de seguridad y comprobaciones de mantenibilidad con una sola herramienta y un archivo de configuración.
tonybaloney/wily
Herramienta de línea de comandos que recorre el historial de git y sigue la evolución de la complejidad y las métricas del código Python.
- Estrellas
- 1,336
- Forks
- 73
- Issues abiertos
- 43
- Último commit
- hace 10 días
¿Qué es?
Wily es una aplicación de línea de comandos para medir código Python a lo largo del tiempo. Usa git para recorrer cada revisión de una rama y ejecutar métricas de complejidad y análisis de código en los archivos de cada commit; los resultados se guardan en una caché local dentro del directorio .wily/.
Con esa caché, puedes consultar cuánto ha cambiado entre revisiones una métrica como la complejidad ciclomática, el índice de mantenibilidad, las medidas de Halstead o las líneas de código; ordenar los archivos por una métrica, o abrir un gráfico de la tendencia en un navegador. El comando diff compara los archivos actuales con una referencia de git elegida, por lo que puede usarse como hook de pre-commit o como comprobación de CI.
Las métricas se agrupan en operadores (cyclomatic, cognitive, maintainability, halstead y raw), configurables mediante un archivo wily.cfg. De forma predeterminada, también se analizan los notebooks de Jupyter, con la opción de generar informes por celda.
Funciones clave
- 01Crea una caché de métricas recorriendo los commits de una rama en git.
- 02Genera informes sobre las diferencias de métricas entre revisiones con wily report.
- 03Ordena los archivos de un directorio según una métrica elegida.
- 04Muestra gráficos de las tendencias de las métricas en un navegador con wily graph.
- 05Compara el código actual con cualquier referencia de git mediante wily diff.
- 06Analiza código Python en notebooks .ipynb, con la opción de hacerlo por celda.
Casos de uso
- Seguir la evolución de la complejidad de una base de código Python a lo largo de su historial de commits.
- Hacer que falle una comprobación de CI o de pre-commit cuando un cambio aumenta la complejidad respecto a una revisión anterior.
- Encontrar los archivos más complejos de un proyecto para priorizar su refactorización.
- Supervisar las tendencias de calidad del código en proyectos de ciencia de datos basados en notebooks de Jupyter.
Inicio rápido
- 1
Instala wily desde PyPI con pip
pip install wily - 2
Crea la caché de wily para la carpeta de código fuente dentro de un repositorio git
wily build src/ - 3
Informa de los cambios en la complejidad de los archivos analizados
wily report src/
Antes de usarlo
- Solo analiza código Python.
- Requiere un repositorio git para hacer un seguimiento del historial, y la copia de trabajo debe estar limpia para crear la caché.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es wily?
- Herramienta de línea de comandos que recorre el historial de git y sigue la evolución de la complejidad y las métricas del código Python. Wily es una aplicación de línea de comandos para medir código Python a lo largo del tiempo. Usa git para recorrer cada revisión de una rama y ejecutar métricas de complejidad y análisis de código en los archivos de cada commit; los resultados se guardan en una caché local dentro del directorio .wily/.
- ¿wily es gratuito? ¿Qué licencia tiene?
- wily es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿wily sigue mantenido?
- Mantenimiento activo. El último commit de wily fue el 28 oct 2026.
- ¿Para qué puedo usar wily?
- Seguir la evolución de la complejidad de una base de código Python a lo largo de su historial de commits. Hacer que falle una comprobación de CI o de pre-commit cuando un cambio aumenta la complejidad respecto a una revisión anterior. Encontrar los archivos más complejos de un proyecto para priorizar su refactorización. Supervisar las tendencias de calidad del código en proyectos de ciencia de datos basados en notebooks de Jupyter.
- ¿Cómo se instala wily?
- Instala wily desde PyPI con pip: pip install wily Crea la caché de wily para la carpeta de código fuente dentro de un repositorio git: wily build src/ Informa de los cambios en la complejidad de los archivos analizados: wily report src/
- ¿Dónde consigo wily?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/tonybaloney/wily
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Herramienta de Python que calcula la complejidad ciclomática de McCabe de las funciones y funciona como plugin de flake8 para señalar código demasiado complejo.
Analizador estático de código Python que detecta errores, aplica estándares de codificación y señala malos olores de código sin ejecutarlo.
Un plugin estricto y con criterios definidos para flake8 que aplica un estilo de Python coherente y sencillo, y señala patrones de código complejos.
Un linter de Python que detecta errores en archivos fuente analizando el código sin importarlo y sin realizar comprobaciones de estilo.
Linter que aplica reglas de estilo y convenciones de Swift, con más de 200 reglas configurables por proyecto.