You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Melhora tratamento de erros para tipos de arquivo não suportados (#109)
## 🎯 Objetivo
Reduzir a verbosidade dos logs para arquivos com tipos não suportados
(especialmente ZIP) e melhorar a eficiência evitando tentativas de
processamento desnecessárias.
## 📋 Problema
Arquivos ZIP e outros tipos não suportados geravam logs extremamente
verbosos:
- WARNING com o caminho do arquivo
- ERROR com a mensagem
- Stack trace completo com ~15 linhas
Exemplo:
```
WARNING:root:Could not process gazette: 5107602/2009-02-27/e9642a24f98c20f0ce2ef5637d65c6abb0bdf854.zip. Cause: Unsupported file type: application/zip
ERROR:root:Unsupported file type: application/zip
Traceback (most recent call last):
[Stack trace completo]
```
## ✅ Solução Implementada
### 1. Nova Exceção Customizada
- `UnsupportedFileTypeError` criada em
`data_extraction/text_extraction.py`
- Exportada no módulo para uso consistente no projeto
- Permite tratamento específico de erros de tipos não suportados
### 2. Detecção Antecipada de ZIP
- Novo método `is_zip()` na classe `ApacheTikaTextExtractor`
- Verifica tipo de arquivo ANTES de tentar processar
- Log específico: "Skipping unsupported ZIP file: {file_path}"
- Evita processamento desnecessário
### 3. Tratamento de Erros Simplificado
- `UnsupportedFileTypeError` capturado separadamente
- Apenas WARNING logado (sem stack trace)
- Outros erros mantêm log completo para debugging
## 📊 Resultado
**Antes:**
```
WARNING:root:Could not process gazette: [...].zip. Cause: Unsupported file type: application/zip
ERROR:root:Unsupported file type: application/zip
Traceback (most recent call last):
[~15 linhas de stack trace]
```
**Depois:**
```
WARNING:root:Skipping unsupported ZIP file: [...].zip
WARNING:root:Could not process gazette: [...].zip. Cause: Unsupported file type: application/zip
```
## 📝 Arquivos Modificados
- `data_extraction/text_extraction.py` - Nova exceção e método
`is_zip()`
- `data_extraction/__init__.py` - Export da exceção
- `tasks/gazette_text_extraction.py` - Detecção antecipada e tratamento
de erros
## 🧪 Testes
- Sintaxe Python validada com `py_compile`
- Imports verificados
- Lógica de fluxo mantida inalterada
0 commit comments