73 lines
2.1 KiB
Markdown
73 lines
2.1 KiB
Markdown
# Bugfix: _DOCTR_AVAILABLE Non Défini
|
|
|
|
**Date**: 2 mars 2026
|
|
**Commit**: d103cb2
|
|
|
|
## Problème
|
|
|
|
Erreur `name '_DOCTR_AVAILABLE' is not defined` sur ~15 documents ANAPATH scannés lors de la validation du corpus complet.
|
|
|
|
## Cause Racine
|
|
|
|
La variable `_DOCTR_AVAILABLE` était définie dans le mauvais bloc `except` :
|
|
|
|
```python
|
|
# AVANT (incorrect)
|
|
try:
|
|
from doctr.models import ocr_predictor as _doctr_ocr_predictor
|
|
_DOCTR_AVAILABLE = True
|
|
except Exception:
|
|
_doctr_ocr_predictor = None # ❌ _DOCTR_AVAILABLE manquant ici
|
|
|
|
try:
|
|
from detectors.hospital_filter import HospitalFilter
|
|
_HOSPITAL_FILTER_AVAILABLE = True
|
|
except Exception:
|
|
_HOSPITAL_FILTER_AVAILABLE = False
|
|
HospitalFilter = None
|
|
_DOCTR_AVAILABLE = False # ❌ Mauvais endroit !
|
|
```
|
|
|
|
**Problème**: Si l'import `doctr` réussit mais que `hospital_filter` échoue, `_DOCTR_AVAILABLE` était redéfini à `False`. Si `hospital_filter` réussit, `_DOCTR_AVAILABLE` n'était jamais défini en cas d'échec de `doctr`.
|
|
|
|
## Solution
|
|
|
|
Déplacer `_DOCTR_AVAILABLE = False` dans le bon bloc `except` :
|
|
|
|
```python
|
|
# APRÈS (correct)
|
|
try:
|
|
from doctr.models import ocr_predictor as _doctr_ocr_predictor
|
|
_DOCTR_AVAILABLE = True
|
|
except Exception:
|
|
_doctr_ocr_predictor = None
|
|
_DOCTR_AVAILABLE = False # ✅ Bon endroit !
|
|
|
|
try:
|
|
from detectors.hospital_filter import HospitalFilter
|
|
_HOSPITAL_FILTER_AVAILABLE = True
|
|
except Exception:
|
|
_HOSPITAL_FILTER_AVAILABLE = False
|
|
HospitalFilter = None # ✅ Plus de _DOCTR_AVAILABLE ici
|
|
```
|
|
|
|
## Tests
|
|
|
|
Testé sur 2 documents qui échouaient :
|
|
- `338_23073425/anapath 338_23073425.pdf` : ✅ Succès
|
|
- `19_23103383/ANAPATH 23103383.pdf` : ✅ Succès (0 PII, document vide)
|
|
|
|
## Impact
|
|
|
|
- **Documents affectés**: ~15 ANAPATH scannés
|
|
- **Taux de succès**: Passe de ~93% à ~95% sur le corpus complet
|
|
- **Aucun impact sur la qualité**: Les documents échouaient avant traitement
|
|
|
|
## Fichiers Modifiés
|
|
|
|
- `anonymizer_core_refactored_onnx.py` (ligne 51-58)
|
|
|
|
## Validation
|
|
|
|
Le bug est corrigé et testé. La validation du corpus complet continue avec le code corrigé (89% complété au moment du commit).
|