CLI multilíngue em Rust que executa linters, formatadores automáticos, scanners de segurança e verificações de manutenibilidade com uma só ferramenta e arquivo de configuração.
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
Instale o wily do PyPI com pip
pip install wily - 2
Crie o cache do wily para a pasta do código-fonte dentro de um repositório git
wily build src/ - 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
Ferramenta Python que calcula a complexidade ciclomática de McCabe de funções e sinaliza código excessivamente complexo como plugin do flake8.
Analisador estático de código Python que detecta erros, aplica padrões de codificação e aponta problemas no código sem executá-lo.
Um plugin rigoroso e opinativo para flake8, que impõe um estilo Python consistente e simples e sinaliza padrões de código complexos.
Um linter para Python que encontra erros nos arquivos-fonte analisando o código sem importá-lo e sem verificar o estilo.
Linter que aplica padrões e convenções de estilo em Swift, com mais de 200 regras configuráveis por projeto.