Repolode
tonybaloney

tonybaloney/wily

Uma ferramenta de linha de comando que percorre o histórico do git e acompanha como a complexidade e as métricas do código Python mudam ao longo do tempo.

Estrelas
1,336
Forks
73
Issues abertas
43
Último commit
há 10 dias

O que é?

Wily é um aplicativo de linha de comando para medir código Python ao longo do tempo. Ele usa o git para percorrer cada revisão de uma branch e executa métricas de complexidade e análise de código nos arquivos em cada commit, armazenando os resultados em um cache local no diretório .wily/.

Com esse cache, você pode gerar relatórios sobre como uma métrica — como complexidade ciclomática, índice de manutenibilidade, medidas de Halstead ou linhas de código — mudou entre revisões, classificar arquivos por uma métrica ou abrir um gráfico da tendência no navegador. O comando diff compara os arquivos atuais com uma referência git escolhida, o que permite usá-lo como hook de pre-commit ou verificação de CI.

As métricas são agrupadas em operadores (cyclomatic, cognitive, maintainability, halstead e raw), configuráveis por meio de um arquivo wily.cfg. Por padrão, os notebooks Jupyter são analisados, com a opção de gerar relatórios por célula.

Recursos principais

  • 01Cria um cache de métricas percorrendo os commits de uma branch do git.
  • 02Gera relatórios das diferenças entre métricas de revisões com wily report.
  • 03Classifica os arquivos de um diretório por uma métrica escolhida.
  • 04Exibe gráficos das tendências das métricas no navegador com wily graph.
  • 05Compara o código atual com qualquer referência git usando wily diff.
  • 06Analisa código Python em notebooks .ipynb, opcionalmente por célula.

Casos de uso

  • Acompanhar se a complexidade de uma base de código Python está aumentando ao longo do histórico de commits.
  • Fazer uma verificação de CI ou pre-commit falhar quando uma alteração aumenta a complexidade em relação a uma revisão anterior.
  • Encontrar os arquivos mais complexos de um projeto para priorizar a refatoração.
  • Monitorar tendências de qualidade de código em projetos de ciência de dados baseados em notebooks Jupyter.

Início rápido

  1. 1

    Instale o wily do PyPI com pip

    pip install wily
  2. 2

    Crie o cache do wily para a pasta do código-fonte dentro de um repositório git

    wily build src/
  3. 3

    Informe as mudanças na complexidade dos arquivos analisados

    wily report src/

Antes de usar

  • Analisa apenas código Python.
  • É necessário um repositório git para acompanhar o histórico, e a cópia de trabalho deve estar limpa para criar o cache.

Em coleções

Tópicos

Perguntas frequentes

O que é wily?
Uma ferramenta de linha de comando que percorre o histórico do git e acompanha como a complexidade e as métricas do código Python mudam ao longo do tempo. Wily é um aplicativo de linha de comando para medir código Python ao longo do tempo. Ele usa o git para percorrer cada revisão de uma branch e executa métricas de complexidade e análise de código nos arquivos em cada commit, armazenando os resultados em um cache local no diretório .wily/.
wily é gratuito? Qual é a licença?
wily é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
wily ainda é mantido?
Manutenção ativa. O último commit de wily foi em 28 de out. de 2026.
Para que posso usar wily?
Acompanhar se a complexidade de uma base de código Python está aumentando ao longo do histórico de commits. Fazer uma verificação de CI ou pre-commit falhar quando uma alteração aumenta a complexidade em relação a uma revisão anterior. Encontrar os arquivos mais complexos de um projeto para priorizar a refatoração. Monitorar tendências de qualidade de código em projetos de ciência de dados baseados em notebooks Jupyter.
Como instalar wily?
Instale o wily do PyPI com pip: pip install wily Crie o cache do wily para a pasta do código-fonte dentro de um repositório git: wily build src/ Informe as mudanças na complexidade dos arquivos analisados: wily report src/
Onde consigo wily?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tonybaloney/wily

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados