# 🔍 CodeHealthAnalyzer
> Uma biblioteca Python completa para análise de qualidade e saúde de código
🇧🇷 Português | [🇺🇸 English](README_EN.md)
[](https://python.org)
[](LICENSE)
[](https://github.com/psf/black)
## 🚀 Visão Geral
CodeHealthAnalyzer é uma biblioteca Python moderna e abrangente para análise de qualidade de código. Ela combina múltiplas ferramentas de análise em uma interface unificada, fornecendo insights detalhados sobre a saúde do seu código.
### ✨ Principais Funcionalidades
- **🚨 Análise de Violações**: Detecta funções, classes e módulos que excedem limites de tamanho
- **🎨 Análise de Templates**: Identifica CSS/JS inline em templates HTML que podem ser extraídos
- **⚠️ Integração com Ruff**: Analisa erros de linting e os categoriza por prioridade
- **📊 Score de Qualidade**: Calcula um score de 0-100 baseado na saúde geral do código
- **🎯 Priorização Inteligente**: Sugere ações baseadas na criticidade dos problemas
- **📈 Relatórios Múltiplos**: Gera relatórios em JSON, HTML, Markdown e CSV
- **🖥️ CLI Amigável**: Interface de linha de comando completa e intuitiva
- **🔧 Altamente Configurável**: Personalize limites, regras e categorias
## 📦 Instalação
### Instalação via pip (recomendado)
```bash
pip install codehealthanalyzer
```
### Instalação para desenvolvimento
```bash
git clone https://github.com/imparcialista/codehealthanalyzer.git
cd codehealthanalyzer
pip install -e .
```
### Dependências
- Python 3.8+
- ruff >= 0.1.0
- click >= 8.0.0
- rich >= 12.0.0 (opcional, para saída colorida)
## 🎯 Uso Rápido
### CLI (Interface de Linha de Comando)
```bash
# Análise completa do projeto atual
codehealthanalyzer analyze .
# Análise com saída em HTML
codehealthanalyzer analyze . --format html --output reports/
# Apenas score de qualidade
codehealthanalyzer score .
# Informações do projeto
codehealthanalyzer info .
# Análise específica de violações
codehealthanalyzer violations . --output violations.json
```
### API Python
```python
from codehealthanalyzer import CodeAnalyzer
# Inicializa o analisador
analyzer = CodeAnalyzer('/path/to/project')
# Gera relatório completo
report = analyzer.generate_full_report(output_dir='reports/')
# Obtém score de qualidade
score = analyzer.get_quality_score()
print(f"Score de Qualidade: {score}/100")
# Análises individuais
violations = analyzer.analyze_violations()
templates = analyzer.analyze_templates()
errors = analyzer.analyze_errors()
```
## 📊 Exemplo de Saída
```
📊 RESUMO DA ANÁLISE
==================================================
✅ Score de Qualidade: 85/100 - Excelente!
📁 Arquivos analisados: 124
⚠️ Arquivos com violações: 8
🎨 Templates: 15
🔍 Erros Ruff: 0
🔥 Issues de alta prioridade: 2
🎯 PRIORIDADES DE AÇÃO:
1. 🔴 Violações de Alta Prioridade (2)
2. 🟡 Templates com Muito CSS/JS Inline (3)
```
## 🔧 Configuração
### Arquivo de Configuração JSON
```json
{
"limits": {
"python_function": {"yellow": 30, "red": 50},
"python_class": {"yellow": 300, "red": 500},
"python_module": {"yellow": 500, "red": 1000},
"html_template": {"yellow": 150, "red": 200},
"test_file": {"yellow": 400, "red": 600}
},
"target_dir": "src/",
"file_rules": {
"critical_files": ["main.py", "core.py"],
"skip_patterns": [".git", "__pycache__", "node_modules"]
}
}
```
### Uso com Configuração
```bash
codehealthanalyzer analyze . --config config.json
```
```python
import json
from codehealthanalyzer import CodeAnalyzer
with open('config.json') as f:
config = json.load(f)
analyzer = CodeAnalyzer('/path/to/project', config)
```
## 📈 Tipos de Análise
### 🚨 Análise de Violações
Detecta:
- Funções muito longas (> 50 linhas)
- Classes muito grandes (> 500 linhas)
- Módulos muito extensos (> 1000 linhas)
- Templates HTML muito longos (> 200 linhas)
### 🎨 Análise de Templates
Identifica:
- CSS inline em atributos `style`
- JavaScript inline em eventos (`onclick`, etc.)
- Tags `<style>` com muito conteúdo
- Tags `<script>` com muito código
### ⚠️ Análise de Erros
Integra com Ruff para detectar:
- Erros de sintaxe
- Problemas de estilo
- Imports não utilizados
- Variáveis não definidas
- Complexidade excessiva
## 📊 Score de Qualidade
O score é calculado baseado em:
- **Violações de alta prioridade**: -10 pontos cada
- **Erros de linting**: -2 pontos cada
- **Templates problemáticos**: -5 pontos cada
- **Base**: 100 pontos
### Interpretação
- **80-100**: 🟢 Excelente
- **60-79**: 🟡 Bom
- **0-59**: 🔴 Precisa melhorar
## 🎯 Categorização Inteligente
### Arquivos
- **Arquivo Crítico**: Arquivos essenciais do sistema
- **Views Admin**: Interfaces administrativas
- **Blueprint Crítico**: Rotas críticas da aplicação
- **Template Base**: Templates fundamentais
### Prioridades
- **Alta**: Problemas que afetam funcionalidade
- **Média**: Problemas de manutenibilidade
- **Baixa**: Melhorias recomendadas
## 📋 Formatos de Relatório
### JSON
```json
{
"metadata": {
"generated_at": "2024-01-15T10:30:00",
"generator": "CodeHealthAnalyzer v1.0.0"
},
"summary": {
"quality_score": 85,
"total_files": 124,
"violation_files": 8
},
"priorities": [...],
"violations": [...],
"templates": [...],
"errors": [...]
}
```
### HTML
Relatório interativo com gráficos e métricas visuais.
### Markdown
Relatório em formato Markdown para documentação.
### CSV
Dados tabulares para análise em planilhas.
## 🛠️ API Avançada
### Analisadores Individuais
```python
from codehealthanalyzer.analyzers import (
ViolationsAnalyzer,
TemplatesAnalyzer,
ErrorsAnalyzer
)
# Análise específica de violações
violations_analyzer = ViolationsAnalyzer('/path/to/project')
violations_report = violations_analyzer.analyze()
# Análise específica de templates
templates_analyzer = TemplatesAnalyzer('/path/to/project')
templates_report = templates_analyzer.analyze()
# Análise específica de erros
errors_analyzer = ErrorsAnalyzer('/path/to/project')
errors_report = errors_analyzer.analyze()
```
### Geração de Relatórios
```python
from codehealthanalyzer.reports import ReportGenerator, ReportFormatter
generator = ReportGenerator()
formatter = ReportFormatter()
# Gera relatório consolidado
full_report = generator.generate_full_report(
violations=violations_report,
templates=templates_report,
errors=errors_report,
output_dir='reports/'
)
# Converte para diferentes formatos
html_content = generator.generate_html_report(full_report, 'report.html')
markdown_content = formatter.to_markdown(full_report, 'report.md')
formatter.to_csv(full_report, 'report.csv')
```
### Utilitários
```python
from codehealthanalyzer.utils import (
Categorizer,
PathValidator,
FileHelper,
ColorHelper
)
# Categorização
categorizer = Categorizer()
category = categorizer.categorize_file(Path('src/main.py'))
priority = categorizer.determine_priority('file', {'lines': 150, 'type': 'python'})
# Validação
validator = PathValidator()
is_valid = validator.is_python_project('/path/to/project')
project_info = validator.get_project_info('/path/to/project')
# Helpers
file_helper = FileHelper()
data = file_helper.read_json('config.json')
file_helper.write_json(data, 'output.json')
# Cores para terminal
print(ColorHelper.success("Sucesso!"))
print(ColorHelper.error("Erro!"))
print(ColorHelper.warning("Aviso!"))
```
## 🧪 Testes
```bash
# Instala dependências de desenvolvimento
pip install -e ".[dev]"
# Executa testes
pytest
# Executa testes com cobertura
pytest --cov=codehealthanalyzer
# Executa linting
ruff check codehealthanalyzer/
black --check codehealthanalyzer/
```
## 🤝 Contribuição
1. Fork o projeto
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request
### Diretrizes de Contribuição
- Siga o estilo de código existente
- Adicione testes para novas funcionalidades
- Atualize a documentação quando necessário
- Use commits semânticos
## 📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.
## 🙏 Agradecimentos
- [Ruff](https://github.com/astral-sh/ruff) - Linter Python ultrarrápido
- [Click](https://click.palletsprojects.com/) - Framework para CLI
- [Rich](https://github.com/Textualize/rich) - Formatação rica para terminal
## 📞 Suporte
- 📧 Email: contato@luarco.com.br
- 🐛 Issues: [GitHub Issues](https://github.com/imparcialista/codehealthanalyzer/issues)
- 📖 Documentação: [ReadTheDocs](https://codehealthanalyzer.readthedocs.io/)
---
**Feito com ❤️ pela equipe Imparcialista**
Raw data
{
"_id": null,
"home_page": "https://github.com/imparcialista/codehealthanalyzer",
"name": "codehealthanalyzer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "code-quality, static-analysis, code-health, linting, python, html, css, javascript, ruff, analysis, metrics, reporting",
"author": "Luarco Team",
"author_email": "contato@luarco.com.br",
"download_url": "https://files.pythonhosted.org/packages/2f/6c/ff22f2f0c749ea1012d609054a260a3fc67f8ebfbbd64d9e0d86ab6e4e0b/codehealthanalyzer-1.0.0.tar.gz",
"platform": null,
"description": "# \ud83d\udd0d CodeHealthAnalyzer\r\n\r\n> Uma biblioteca Python completa para an\u00e1lise de qualidade e sa\u00fade de c\u00f3digo\r\n\r\n\ud83c\udde7\ud83c\uddf7 Portugu\u00eas | [\ud83c\uddfa\ud83c\uddf8 English](README_EN.md)\r\n\r\n[](https://python.org)\r\n[](LICENSE)\r\n[](https://github.com/psf/black)\r\n\r\n## \ud83d\ude80 Vis\u00e3o Geral\r\n\r\nCodeHealthAnalyzer \u00e9 uma biblioteca Python moderna e abrangente para an\u00e1lise de qualidade de c\u00f3digo. Ela combina m\u00faltiplas ferramentas de an\u00e1lise em uma interface unificada, fornecendo insights detalhados sobre a sa\u00fade do seu c\u00f3digo.\r\n\r\n### \u2728 Principais Funcionalidades\r\n\r\n- **\ud83d\udea8 An\u00e1lise de Viola\u00e7\u00f5es**: Detecta fun\u00e7\u00f5es, classes e m\u00f3dulos que excedem limites de tamanho\r\n- **\ud83c\udfa8 An\u00e1lise de Templates**: Identifica CSS/JS inline em templates HTML que podem ser extra\u00eddos\r\n- **\u26a0\ufe0f Integra\u00e7\u00e3o com Ruff**: Analisa erros de linting e os categoriza por prioridade\r\n- **\ud83d\udcca Score de Qualidade**: Calcula um score de 0-100 baseado na sa\u00fade geral do c\u00f3digo\r\n- **\ud83c\udfaf Prioriza\u00e7\u00e3o Inteligente**: Sugere a\u00e7\u00f5es baseadas na criticidade dos problemas\r\n- **\ud83d\udcc8 Relat\u00f3rios M\u00faltiplos**: Gera relat\u00f3rios em JSON, HTML, Markdown e CSV\r\n- **\ud83d\udda5\ufe0f CLI Amig\u00e1vel**: Interface de linha de comando completa e intuitiva\r\n- **\ud83d\udd27 Altamente Configur\u00e1vel**: Personalize limites, regras e categorias\r\n\r\n## \ud83d\udce6 Instala\u00e7\u00e3o\r\n\r\n### Instala\u00e7\u00e3o via pip (recomendado)\r\n\r\n```bash\r\npip install codehealthanalyzer\r\n```\r\n\r\n### Instala\u00e7\u00e3o para desenvolvimento\r\n\r\n```bash\r\ngit clone https://github.com/imparcialista/codehealthanalyzer.git\r\ncd codehealthanalyzer\r\npip install -e .\r\n```\r\n\r\n### Depend\u00eancias\r\n\r\n- Python 3.8+\r\n- ruff >= 0.1.0\r\n- click >= 8.0.0\r\n- rich >= 12.0.0 (opcional, para sa\u00edda colorida)\r\n\r\n## \ud83c\udfaf Uso R\u00e1pido\r\n\r\n### CLI (Interface de Linha de Comando)\r\n\r\n```bash\r\n# An\u00e1lise completa do projeto atual\r\ncodehealthanalyzer analyze .\r\n\r\n# An\u00e1lise com sa\u00edda em HTML\r\ncodehealthanalyzer analyze . --format html --output reports/\r\n\r\n# Apenas score de qualidade\r\ncodehealthanalyzer score .\r\n\r\n# Informa\u00e7\u00f5es do projeto\r\ncodehealthanalyzer info .\r\n\r\n# An\u00e1lise espec\u00edfica de viola\u00e7\u00f5es\r\ncodehealthanalyzer violations . --output violations.json\r\n```\r\n\r\n### API Python\r\n\r\n```python\r\nfrom codehealthanalyzer import CodeAnalyzer\r\n\r\n# Inicializa o analisador\r\nanalyzer = CodeAnalyzer('/path/to/project')\r\n\r\n# Gera relat\u00f3rio completo\r\nreport = analyzer.generate_full_report(output_dir='reports/')\r\n\r\n# Obt\u00e9m score de qualidade\r\nscore = analyzer.get_quality_score()\r\nprint(f\"Score de Qualidade: {score}/100\")\r\n\r\n# An\u00e1lises individuais\r\nviolations = analyzer.analyze_violations()\r\ntemplates = analyzer.analyze_templates()\r\nerrors = analyzer.analyze_errors()\r\n```\r\n\r\n## \ud83d\udcca Exemplo de Sa\u00edda\r\n\r\n```\r\n\ud83d\udcca RESUMO DA AN\u00c1LISE\r\n==================================================\r\n\u2705 Score de Qualidade: 85/100 - Excelente!\r\n\ud83d\udcc1 Arquivos analisados: 124\r\n\u26a0\ufe0f Arquivos com viola\u00e7\u00f5es: 8\r\n\ud83c\udfa8 Templates: 15\r\n\ud83d\udd0d Erros Ruff: 0\r\n\ud83d\udd25 Issues de alta prioridade: 2\r\n\r\n\ud83c\udfaf PRIORIDADES DE A\u00c7\u00c3O:\r\n1. \ud83d\udd34 Viola\u00e7\u00f5es de Alta Prioridade (2)\r\n2. \ud83d\udfe1 Templates com Muito CSS/JS Inline (3)\r\n```\r\n\r\n## \ud83d\udd27 Configura\u00e7\u00e3o\r\n\r\n### Arquivo de Configura\u00e7\u00e3o JSON\r\n\r\n```json\r\n{\r\n \"limits\": {\r\n \"python_function\": {\"yellow\": 30, \"red\": 50},\r\n \"python_class\": {\"yellow\": 300, \"red\": 500},\r\n \"python_module\": {\"yellow\": 500, \"red\": 1000},\r\n \"html_template\": {\"yellow\": 150, \"red\": 200},\r\n \"test_file\": {\"yellow\": 400, \"red\": 600}\r\n },\r\n \"target_dir\": \"src/\",\r\n \"file_rules\": {\r\n \"critical_files\": [\"main.py\", \"core.py\"],\r\n \"skip_patterns\": [\".git\", \"__pycache__\", \"node_modules\"]\r\n }\r\n}\r\n```\r\n\r\n### Uso com Configura\u00e7\u00e3o\r\n\r\n```bash\r\ncodehealthanalyzer analyze . --config config.json\r\n```\r\n\r\n```python\r\nimport json\r\nfrom codehealthanalyzer import CodeAnalyzer\r\n\r\nwith open('config.json') as f:\r\n config = json.load(f)\r\n\r\nanalyzer = CodeAnalyzer('/path/to/project', config)\r\n```\r\n\r\n## \ud83d\udcc8 Tipos de An\u00e1lise\r\n\r\n### \ud83d\udea8 An\u00e1lise de Viola\u00e7\u00f5es\r\n\r\nDetecta:\r\n- Fun\u00e7\u00f5es muito longas (> 50 linhas)\r\n- Classes muito grandes (> 500 linhas)\r\n- M\u00f3dulos muito extensos (> 1000 linhas)\r\n- Templates HTML muito longos (> 200 linhas)\r\n\r\n### \ud83c\udfa8 An\u00e1lise de Templates\r\n\r\nIdentifica:\r\n- CSS inline em atributos `style`\r\n- JavaScript inline em eventos (`onclick`, etc.)\r\n- Tags `<style>` com muito conte\u00fado\r\n- Tags `<script>` com muito c\u00f3digo\r\n\r\n### \u26a0\ufe0f An\u00e1lise de Erros\r\n\r\nIntegra com Ruff para detectar:\r\n- Erros de sintaxe\r\n- Problemas de estilo\r\n- Imports n\u00e3o utilizados\r\n- Vari\u00e1veis n\u00e3o definidas\r\n- Complexidade excessiva\r\n\r\n## \ud83d\udcca Score de Qualidade\r\n\r\nO score \u00e9 calculado baseado em:\r\n- **Viola\u00e7\u00f5es de alta prioridade**: -10 pontos cada\r\n- **Erros de linting**: -2 pontos cada\r\n- **Templates problem\u00e1ticos**: -5 pontos cada\r\n- **Base**: 100 pontos\r\n\r\n### Interpreta\u00e7\u00e3o\r\n- **80-100**: \ud83d\udfe2 Excelente\r\n- **60-79**: \ud83d\udfe1 Bom\r\n- **0-59**: \ud83d\udd34 Precisa melhorar\r\n\r\n## \ud83c\udfaf Categoriza\u00e7\u00e3o Inteligente\r\n\r\n### Arquivos\r\n- **Arquivo Cr\u00edtico**: Arquivos essenciais do sistema\r\n- **Views Admin**: Interfaces administrativas\r\n- **Blueprint Cr\u00edtico**: Rotas cr\u00edticas da aplica\u00e7\u00e3o\r\n- **Template Base**: Templates fundamentais\r\n\r\n### Prioridades\r\n- **Alta**: Problemas que afetam funcionalidade\r\n- **M\u00e9dia**: Problemas de manutenibilidade\r\n- **Baixa**: Melhorias recomendadas\r\n\r\n## \ud83d\udccb Formatos de Relat\u00f3rio\r\n\r\n### JSON\r\n```json\r\n{\r\n \"metadata\": {\r\n \"generated_at\": \"2024-01-15T10:30:00\",\r\n \"generator\": \"CodeHealthAnalyzer v1.0.0\"\r\n },\r\n \"summary\": {\r\n \"quality_score\": 85,\r\n \"total_files\": 124,\r\n \"violation_files\": 8\r\n },\r\n \"priorities\": [...],\r\n \"violations\": [...],\r\n \"templates\": [...],\r\n \"errors\": [...]\r\n}\r\n```\r\n\r\n### HTML\r\nRelat\u00f3rio interativo com gr\u00e1ficos e m\u00e9tricas visuais.\r\n\r\n### Markdown\r\nRelat\u00f3rio em formato Markdown para documenta\u00e7\u00e3o.\r\n\r\n### CSV\r\nDados tabulares para an\u00e1lise em planilhas.\r\n\r\n## \ud83d\udee0\ufe0f API Avan\u00e7ada\r\n\r\n### Analisadores Individuais\r\n\r\n```python\r\nfrom codehealthanalyzer.analyzers import (\r\n ViolationsAnalyzer,\r\n TemplatesAnalyzer,\r\n ErrorsAnalyzer\r\n)\r\n\r\n# An\u00e1lise espec\u00edfica de viola\u00e7\u00f5es\r\nviolations_analyzer = ViolationsAnalyzer('/path/to/project')\r\nviolations_report = violations_analyzer.analyze()\r\n\r\n# An\u00e1lise espec\u00edfica de templates\r\ntemplates_analyzer = TemplatesAnalyzer('/path/to/project')\r\ntemplates_report = templates_analyzer.analyze()\r\n\r\n# An\u00e1lise espec\u00edfica de erros\r\nerrors_analyzer = ErrorsAnalyzer('/path/to/project')\r\nerrors_report = errors_analyzer.analyze()\r\n```\r\n\r\n### Gera\u00e7\u00e3o de Relat\u00f3rios\r\n\r\n```python\r\nfrom codehealthanalyzer.reports import ReportGenerator, ReportFormatter\r\n\r\ngenerator = ReportGenerator()\r\nformatter = ReportFormatter()\r\n\r\n# Gera relat\u00f3rio consolidado\r\nfull_report = generator.generate_full_report(\r\n violations=violations_report,\r\n templates=templates_report,\r\n errors=errors_report,\r\n output_dir='reports/'\r\n)\r\n\r\n# Converte para diferentes formatos\r\nhtml_content = generator.generate_html_report(full_report, 'report.html')\r\nmarkdown_content = formatter.to_markdown(full_report, 'report.md')\r\nformatter.to_csv(full_report, 'report.csv')\r\n```\r\n\r\n### Utilit\u00e1rios\r\n\r\n```python\r\nfrom codehealthanalyzer.utils import (\r\n Categorizer,\r\n PathValidator,\r\n FileHelper,\r\n ColorHelper\r\n)\r\n\r\n# Categoriza\u00e7\u00e3o\r\ncategorizer = Categorizer()\r\ncategory = categorizer.categorize_file(Path('src/main.py'))\r\npriority = categorizer.determine_priority('file', {'lines': 150, 'type': 'python'})\r\n\r\n# Valida\u00e7\u00e3o\r\nvalidator = PathValidator()\r\nis_valid = validator.is_python_project('/path/to/project')\r\nproject_info = validator.get_project_info('/path/to/project')\r\n\r\n# Helpers\r\nfile_helper = FileHelper()\r\ndata = file_helper.read_json('config.json')\r\nfile_helper.write_json(data, 'output.json')\r\n\r\n# Cores para terminal\r\nprint(ColorHelper.success(\"Sucesso!\"))\r\nprint(ColorHelper.error(\"Erro!\"))\r\nprint(ColorHelper.warning(\"Aviso!\"))\r\n```\r\n\r\n## \ud83e\uddea Testes\r\n\r\n```bash\r\n# Instala depend\u00eancias de desenvolvimento\r\npip install -e \".[dev]\"\r\n\r\n# Executa testes\r\npytest\r\n\r\n# Executa testes com cobertura\r\npytest --cov=codehealthanalyzer\r\n\r\n# Executa linting\r\nruff check codehealthanalyzer/\r\nblack --check codehealthanalyzer/\r\n```\r\n\r\n## \ud83e\udd1d Contribui\u00e7\u00e3o\r\n\r\n1. Fork o projeto\r\n2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\r\n3. Commit suas mudan\u00e7as (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push para a branch (`git push origin feature/AmazingFeature`)\r\n5. Abra um Pull Request\r\n\r\n### Diretrizes de Contribui\u00e7\u00e3o\r\n\r\n- Siga o estilo de c\u00f3digo existente\r\n- Adicione testes para novas funcionalidades\r\n- Atualize a documenta\u00e7\u00e3o quando necess\u00e1rio\r\n- Use commits sem\u00e2nticos\r\n\r\n## \ud83d\udcc4 Licen\u00e7a\r\n\r\nEste projeto est\u00e1 licenciado sob a Licen\u00e7a MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.\r\n\r\n## \ud83d\ude4f Agradecimentos\r\n\r\n- [Ruff](https://github.com/astral-sh/ruff) - Linter Python ultrarr\u00e1pido\r\n- [Click](https://click.palletsprojects.com/) - Framework para CLI\r\n- [Rich](https://github.com/Textualize/rich) - Formata\u00e7\u00e3o rica para terminal\r\n\r\n## \ud83d\udcde Suporte\r\n\r\n- \ud83d\udce7 Email: contato@luarco.com.br\r\n- \ud83d\udc1b Issues: [GitHub Issues](https://github.com/imparcialista/codehealthanalyzer/issues)\r\n- \ud83d\udcd6 Documenta\u00e7\u00e3o: [ReadTheDocs](https://codehealthanalyzer.readthedocs.io/)\r\n\r\n---\r\n\r\n**Feito com \u2764\ufe0f pela equipe Imparcialista**\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Biblioteca Python para an\u00e1lise de qualidade e sa\u00fade de c\u00f3digo",
"version": "1.0.0",
"project_urls": {
"Bug Reports": "https://github.com/imparcialista/codehealthanalyzer/issues",
"Documentation": "https://codehealthanalyzer.readthedocs.io/",
"Homepage": "https://github.com/imparcialista/codehealthanalyzer",
"Source": "https://github.com/imparcialista/codehealthanalyzer"
},
"split_keywords": [
"code-quality",
" static-analysis",
" code-health",
" linting",
" python",
" html",
" css",
" javascript",
" ruff",
" analysis",
" metrics",
" reporting"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c5e0e937946714f5166f71c8e23c89160372eee07e5bbaa5a76bd71304b1c40a",
"md5": "a51a11e96b02c7a9ee5b4b26ec9ca60e",
"sha256": "ec192d63390253f48043635bff883c5d8d5b23288aa0a6050c0a242b91128bbc"
},
"downloads": -1,
"filename": "codehealthanalyzer-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a51a11e96b02c7a9ee5b4b26ec9ca60e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 37584,
"upload_time": "2025-09-15T18:07:19",
"upload_time_iso_8601": "2025-09-15T18:07:19.661991Z",
"url": "https://files.pythonhosted.org/packages/c5/e0/e937946714f5166f71c8e23c89160372eee07e5bbaa5a76bd71304b1c40a/codehealthanalyzer-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2f6cff22f2f0c749ea1012d609054a260a3fc67f8ebfbbd64d9e0d86ab6e4e0b",
"md5": "bae3d938425321b9194288fe12e5abc1",
"sha256": "316929faa4269adf61a952c1f6108ce86d97b9942cb8d4831c94387edf5e3992"
},
"downloads": -1,
"filename": "codehealthanalyzer-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "bae3d938425321b9194288fe12e5abc1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 35958,
"upload_time": "2025-09-15T18:07:20",
"upload_time_iso_8601": "2025-09-15T18:07:20.745606Z",
"url": "https://files.pythonhosted.org/packages/2f/6c/ff22f2f0c749ea1012d609054a260a3fc67f8ebfbbd64d9e0d86ab6e4e0b/codehealthanalyzer-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-15 18:07:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "imparcialista",
"github_project": "codehealthanalyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "ruff",
"specs": [
[
">=",
"0.1.0"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
">=",
"12.0.0"
]
]
}
],
"lcname": "codehealthanalyzer"
}