Claude commited on
Commit
6a9d280
·
unverified ·
1 Parent(s): b7dca96

docs: corriger les docstrings mensongères sur les shims dans les __init__.py

Browse files

Les docstrings de ``picarones/measurements/__init__.py`` et
``picarones/extras/__init__.py`` mentionnaient encore une
"rétrocompatibilité absolue via fichiers-shims" qui n'existe plus
depuis la refonte 3 cercles. Un utilisateur lisant ces docs
écrivait du code (``from picarones.core.taxonomy import …``)
qui ne marche plus.

Ce commit :

- ``measurements/__init__.py`` : docstring réécrite pour refléter
la structure réelle. La liste des sous-modules est mise à jour
avec les ~8 modules philologiques promus depuis ``extras/``,
les modules ``image_predictive``, ``module_policy``, et la
famille des câblages adaptifs ``*_runner``. La fausse promesse
de rétrocompatibilité est supprimée. Référence vers le manifeste
``docs/architecture.md`` ajoutée.

- ``extras/__init__.py`` : docstring réécrite. La section "Convention
de rétrocompat" qui décrivait des shims inexistants est supprimée.
Le sous-package ``importers`` est documenté explicitement avec
son statut (``huggingface`` et ``escriptorium`` expérimentaux,
``UserWarning`` à l'import).

Aucun changement de code — uniquement de la doc qui mentait sur
l'état réel du système.

https://claude.ai/code/session_01Hsd7kL8yeCbXn1mA7GQK9L

picarones/extras/__init__.py CHANGED
@@ -1,22 +1,21 @@
1
  """Plugins Picarones — Cercle 3 de l'architecture.
2
 
3
- Modules optionnels, niche, ou préventifs qui ne servent pas
4
- directement la question centrale du produit peut-on déployer ce
5
- moteur en prod sur ce corpus ? »). Ils sont **séparables** : leur
6
- absence ne casse pas le bench standard.
 
7
 
8
- À terme, certains de ces sous-packages pourront être distribués comme
9
- packages PyPI séparés (``picarones-historical``, ``picarones-importers``).
10
- Pour l'instant ils vivent comme sous-packages internes pour limiter le
11
- churn.
 
 
12
 
13
- Convention de rétrocompat
14
- -------------------------
15
- Pour chaque module déplacé depuis ``picarones/core/`` ou
16
- ``picarones/report/`` vers ``picarones/extras/``, un fichier-shim est
17
- laissé à l'ancien emplacement qui réexporte les noms publics. Les
18
- imports historiques (``from picarones.measurements.taxonomy_intra_doc import
19
- ...``) continuent à fonctionner sans modification.
20
 
21
  Voir :doc:`docs/architecture.md` pour la cartographie complète
22
  et les critères d'assignation au Cercle 3.
 
1
  """Plugins Picarones — Cercle 3 de l'architecture.
2
 
3
+ Modules optionnels et **séparables** : leur absence ne casse pas
4
+ le bench standard. Ils étendent Picarones avec des fonctionnalités
5
+ qui ne servent pas directement la question centrale peut-on
6
+ déployer ce moteur en prod sur ce corpus ? ») et qui dépendent
7
+ typiquement de sources externes (IIIF, eScriptorium, HuggingFace…).
8
 
9
+ Sous-packages
10
+ -------------
11
+ - :mod:`importers` connecteurs corpus (IIIF, Gallica, HTR-United,
12
+ HuggingFace, eScriptorium). Les modules ``huggingface`` et
13
+ ``escriptorium`` émettent un ``UserWarning`` à l'import car ils
14
+ n'ont pas été validés sur des instances de production.
15
 
16
+ À terme, ces sous-packages pourront être distribués comme packages
17
+ PyPI séparés (``picarones-importers``…). Pour l'instant ils vivent
18
+ comme sous-packages internes pour limiter le churn.
 
 
 
 
19
 
20
  Voir :doc:`docs/architecture.md` pour la cartographie complète
21
  et les critères d'assignation au Cercle 3.
picarones/measurements/__init__.py CHANGED
@@ -1,49 +1,74 @@
1
  """Métriques officielles Picarones — Cercle 2.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Ce package contient
4
- l'ensemble des **mesures et analyses au-delà du noyau** : tout ce qui
5
- calcule, agrège ou interprète des métriques sur un corpus, mais qui
6
- n'est pas une abstraction du domaine (Cercle 1, ``core/``) ni un
7
- plugin niche (Cercle 3, ``extras/``).
8
 
9
  Sous-modules
10
  ------------
11
- Métriques scalaires et structurelles :
12
 
13
- - :mod:`confusion` matrice de confusion Unicode
14
- - :mod:`char_scores` scores ligatures/diacritiques
 
 
 
 
 
 
 
 
 
 
15
  - :mod:`taxonomy` taxonomie 9 classes d'erreurs
16
  - :mod:`taxonomy_comparison` comparaison taxonomique miroir
17
- - :mod:`structure` analyse structurelle (lignes/blocs)
 
 
 
 
 
18
  - :mod:`line_metrics` distribution CER par ligne (Gini, percentiles)
19
- - :mod:`hallucination` détection hallucinations VLM
20
- - :mod:`reading_order` F1 ordre de lecture (ICDAR 2015)
21
- - :mod:`layout` F1 layout par type de région
22
- - :mod:`error_absorption` correction vs introduction par jonction
23
- - :mod:`searchability` recherchabilité fuzzy (Levenshtein)
24
- - :mod:`numerical_sequences` préservation dates/cotes/numéraux
25
- - :mod:`numerical_sequences_runner`
26
- - :mod:`rare_tokens` rappel sur tokens rares
27
- - :mod:`readability` Δ Flesch (sur-normalisation)
28
- - :mod:`readability_runner`
29
- - :mod:`searchability_runner`
30
- - :mod:`specialization` spécialisation inter-moteurs
31
  - :mod:`worst_lines` lignes pires globales
32
- - :mod:`inter_engine` divergence taxonomique + oracle gap
33
- - :mod:`incremental_comparison` ANOVA-like par slot
34
- - :mod:`baseline_comparison` comparaison à l'historique
35
- - :mod:`longitudinal` régression linéaire + change-point
36
 
37
  Fiabilité et calibration :
38
 
39
  - :mod:`calibration` ECE, MCE, reliability bins
40
  - :mod:`reliability` IAA Cohen κ + multirun stability
 
41
  - :mod:`robustness` courbes CER vs dégradation
42
  - :mod:`robustness_projection` projection sur corpus réel
43
 
44
- NER :
 
 
 
 
 
 
45
 
 
 
 
 
 
 
 
 
 
46
  - :mod:`ner`, :mod:`ner_backends`
 
 
 
 
 
 
 
 
 
 
47
 
48
  Économie et opération :
49
 
@@ -52,36 +77,41 @@ NER :
52
  - :mod:`cost_projection` projection à volume cible
53
  - :mod:`marginal_cost` coût par erreur évitée
54
 
55
- Contexte corpus :
56
 
57
- - :mod:`history` historique SQLite
58
- - :mod:`difficulty` score difficulté intrinsèque
59
- - :mod:`image_quality` contraste, bruit, flou…
60
- - :mod:`normalization` profils Unicode
 
 
 
 
61
 
62
- Statistiques :
63
 
64
- - :mod:`statistics` Wilcoxon, Friedman, Nemenyi, Pareto, CDD
 
65
 
66
  Aide à la décision :
67
 
68
  - :mod:`levers` leviers d'amélioration factuels
69
  - :mod:`equivalence_profile` curseur fin équivalences diplomatiques
 
70
 
71
- Hooks et registres :
72
 
73
- - :mod:`builtin_hooks` 12 hooks doc + 12 agrégateurs natifs
 
 
74
 
75
  Moteur narratif :
76
 
77
- - :mod:`narrative` (sous-package) : facts, registry, arbiter, renderer, 18 détecteurs
78
-
79
- Rétrocompatibilité absolue
80
- --------------------------
81
- Tous les modules historiquement dans ``picarones.core.X`` restent
82
- accessibles via des fichiers-shims qui les redirigent vers le nouvel
83
- emplacement. Aucun import existant ne casse.
84
 
85
- Voir :doc:`docs/architecture.md` et la phase E du plan de
86
- refonte.
87
  """
 
1
  """Métriques officielles Picarones — Cercle 2.
2
 
3
+ Ce package contient l'ensemble des mesures et analyses qui calculent,
4
+ agrègent ou interprètent des métriques sur un corpus. Il dépend du
5
+ cercle 1 (``picarones.core``) qui définit les abstractions, et est
6
+ consommé par le cercle 3 (``picarones.report``, ``picarones.cli``,
7
+ ``picarones.web``) qui présente les résultats.
8
 
9
  Sous-modules
10
  ------------
11
+ Coeur :
12
 
13
+ - :mod:`metrics` compute_metrics (CER/WER/MER/WIL via jiwer)
14
+ - :mod:`statistics` Wilcoxon, Friedman, Nemenyi, Pareto, CDD
15
+ - :mod:`runner` run_benchmark — orchestration parallèle
16
+ - :mod:`builtin_hooks` 12 hooks doc + 12 agrégateurs natifs
17
+ - :mod:`builtin_metrics` enregistrement métriques dans le registry
18
+ - :mod:`alto_metrics` métriques jonction TEXT/ALTO
19
+ - :mod:`normalization` profils Unicode
20
+
21
+ Erreurs et taxonomie :
22
+
23
+ - :mod:`confusion` matrice de confusion Unicode
24
+ - :mod:`char_scores` scores ligatures/diacritiques
25
  - :mod:`taxonomy` taxonomie 9 classes d'erreurs
26
  - :mod:`taxonomy_comparison` comparaison taxonomique miroir
27
+ - :mod:`taxonomy_cooccurrence` Jaccard inter-classes
28
+ - :mod:`taxonomy_intra_doc` heatmap classes × position
29
+
30
+ Structure et lignes :
31
+
32
+ - :mod:`structure` blocs/lignes/mots
33
  - :mod:`line_metrics` distribution CER par ligne (Gini, percentiles)
 
 
 
 
 
 
 
 
 
 
 
 
34
  - :mod:`worst_lines` lignes pires globales
 
 
 
 
35
 
36
  Fiabilité et calibration :
37
 
38
  - :mod:`calibration` ECE, MCE, reliability bins
39
  - :mod:`reliability` IAA Cohen κ + multirun stability
40
+ - :mod:`hallucination` détection hallucinations VLM
41
  - :mod:`robustness` courbes CER vs dégradation
42
  - :mod:`robustness_projection` projection sur corpus réel
43
 
44
+ Image et difficulté :
45
+
46
+ - :mod:`image_quality` contraste, bruit, flou…
47
+ - :mod:`image_predictive` complexité paléographique
48
+ - :mod:`difficulty` score difficulté intrinsèque
49
+
50
+ Contenu et lisibilité :
51
 
52
+ - :mod:`searchability` recherchabilité fuzzy (Levenshtein)
53
+ - :mod:`numerical_sequences` préservation dates/cotes/numéraux
54
+ - :mod:`rare_tokens` rappel sur tokens rares
55
+ - :mod:`readability` Δ Flesch (sur-normalisation)
56
+
57
+ Structure ALTO et entités :
58
+
59
+ - :mod:`layout` F1 layout par type de région
60
+ - :mod:`reading_order` F1 ordre de lecture (ICDAR 2015)
61
  - :mod:`ner`, :mod:`ner_backends`
62
+ - :mod:`error_absorption` correction vs introduction par jonction
63
+
64
+ Inter-moteurs et historique :
65
+
66
+ - :mod:`inter_engine` divergence taxonomique + oracle gap
67
+ - :mod:`specialization` spécialisation inter-moteurs
68
+ - :mod:`baseline_comparison` comparaison à l'historique
69
+ - :mod:`longitudinal` régression linéaire + change-point
70
+ - :mod:`incremental_comparison` ANOVA-like par slot
71
+ - :mod:`history` historique SQLite
72
 
73
  Économie et opération :
74
 
 
77
  - :mod:`cost_projection` projection à volume cible
78
  - :mod:`marginal_cost` coût par erreur évitée
79
 
80
+ Philologie historique :
81
 
82
+ - :mod:`mufi` couverture MUFI (médiéval)
83
+ - :mod:`abbreviations` signes d'abréviation Capelli
84
+ - :mod:`unicode_blocks` précision par bloc Unicode
85
+ - :mod:`early_modern_typography` ligatures imprimées XVIᵉ-XVIIIᵉ
86
+ - :mod:`modern_archives` marqueurs XIXᵉ-XXᵉ
87
+ - :mod:`roman_numerals` numéraux romains
88
+ - :mod:`lexical_modernization` sur-normalisation lexicale
89
+ - :mod:`philological_runner` câblage runner adaptive
90
 
91
+ Pipelines composées (axe B) :
92
 
93
+ - :mod:`pipeline_benchmark`, :mod:`pipeline_comparison`,
94
+ :mod:`pipeline_spec_loader`
95
 
96
  Aide à la décision :
97
 
98
  - :mod:`levers` leviers d'amélioration factuels
99
  - :mod:`equivalence_profile` curseur fin équivalences diplomatiques
100
+ - :mod:`module_policy` manifest + audit modules contribués
101
 
102
+ Câblages adaptifs (suffixe ``_runner``) :
103
 
104
+ - :mod:`readability_runner`, :mod:`searchability_runner`,
105
+ :mod:`numerical_sequences_runner` — adaptive masking
106
+ document-par-document, consommés par :mod:`builtin_hooks`.
107
 
108
  Moteur narratif :
109
 
110
+ - :mod:`narrative` (sous-package) : arbiter, registry, renderer,
111
+ 18 détecteurs en 6 familles. Le modèle de données (``Fact``,
112
+ ``FactType``, ``DetectorRegistry``) vit en cercle 1 dans
113
+ :mod:`picarones.core.facts`.
 
 
 
114
 
115
+ Voir :doc:`docs/architecture.md` pour la cartographie complète et
116
+ la règle de dépendance des 3 cercles.
117
  """