File size: 2,539 Bytes
ceb4ba7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"""Modules de référence (Chantier 1 du plan d'évolution post-Sprint 97).

Ce package contient des implémentations concrètes de
:class:`picarones.core.modules.BaseModule` livrées par Picarones lui-même
en complément des cinq adaptateurs OCR (``picarones.engines``) et des
quatre adaptateurs LLM (``picarones.llm``).

Philosophie
-----------
Picarones est un **banc d'essai** : l'utilisateur amène ses propres
modules tiers (correcteur LLM, reconstructeur ALTO, mappeur VLM…) et
Picarones les compare.  Pour autant, le banc d'essai a besoin d'au
moins un module de chaque catégorie pour servir de **baseline** —
sans cela, l'utilisateur ne peut comparer son module à rien.

Les modules de ce package sont donc explicitement étiquetés comme
**références** : ils sont volontairement primitifs, déterministes, et
sans dépendance externe.  Leur but est :

1. Valider l'infrastructure ``BaseModule`` / ``PipelineRunner`` /
   ``compute_at_junction`` en conditions réelles (pas seulement avec
   des ``MockModule`` de test).
2. Fournir un point de comparaison stable.  *« Mon reconstructeur ALTO
   fait-il mieux que la baseline mono-bloc ? »* est une question
   tractable.
3. Rendre exécutable le rapport de pipeline composée — sans un seul
   reconstructeur réel, les renderers ``pipeline_dag``,
   ``error_absorption``, ``incremental_comparison`` et
   ``module_audit`` n'ont pas de données à montrer.

Modules disponibles
-------------------
- :class:`TextToAltoMonoRegion` (``alto_text_to_mono_region``) :
  reconstructeur primitif TEXT (+ IMAGE) → ALTO XML, une seule
  ``TextRegion`` couvrant l'image entière, une ``TextLine`` par ligne
  du texte, une ``String`` par mot.

Conventions
-----------
- Tous les modules ici héritent de ``BaseModule`` et déclarent leurs
  ``input_types`` / ``output_types``.
- Tous les modules ont un ``name`` stable et déterministe.
- Tous les modules sont **purs** (zéro side-effect, zéro réseau, zéro
  écriture disque).  Ils peuvent donc être exécutés en
  ``ProcessPoolExecutor`` sans précaution particulière.
- Aucun module ne dépend des autres modules de ce package.

Pour contribuer un nouveau module de référence, suivez la même
discipline et ajoutez un test unitaire dans ``tests/`` couvrant au
moins :

1. Cas trivial (entrée vide).
2. Cas standard (entrée typique).
3. Validation des types via ``module.validate_inputs(...)``.
"""

from picarones.modules.alto_text_to_mono_region import TextToAltoMonoRegion

__all__ = ["TextToAltoMonoRegion"]