Claude commited on
Commit
c0f7ba9
·
unverified ·
1 Parent(s): 3ff40b2

fix(ci): restaurer rétrocompat tests + corriger 14 cassures CI

Browse files

Audit complet des échecs CI sur ``claude/code-quality-audit-ACnhK``
identifiés depuis chantier 1 (Python tests OS) et chantier 2 (qualité
code). Résultat : **3516 tests passés, 0 échec, lint OK**.

Causes identifiées et résolues
-------------------------------

1. **Shims rétrocompat incomplets** (~76 fichiers)
``from X import *`` ne propage que les noms publics. Boucle
``globals()[_n] = getattr(_module, _n)`` ajoutée pour exposer aussi
les noms privés (``_aggregate_X``, ``_SCIPY_AVAILABLE``, etc.) que
plusieurs tests Sprints importent directement.

2. **API confidences engines (chantier 1 refactor)**
Le refactor avait factorisé ``_run_with_native``/``_extract_raw_confidences``
dans ``BaseOCREngine`` mais cassé les noms historiques que les tests
Sprints 47-51 monkeypatchent ou appellent :
- ``TesseractEngine._extract_token_confidences(image_path)``
- ``PeroOCREngine._extract_token_confidences_from_layout(layout)``
- ``MistralOCREngine._extract_token_confidences_from_response(response)``
- ``GoogleVisionEngine._extract_token_confidences_from_full_text(full)``
- ``AzureDocIntelEngine._extract_token_confidences_from_result(result)``
- ``MistralOCREngine._run_ocr_with_response(image_path)``
- ``GoogleVisionEngine._run_ocr_with_full_annotation(image_path)``
- ``AzureDocIntelEngine._run_ocr_with_result(image_path)``
Tous restaurés en alias délégant aux nouveaux hooks.

3. **Échelle des token_confidences**
``_normalize_token_confidences`` divisait par 100 quand max > 1, ce
qui cassait Tesseract (échelle native [0, 100]). Désormais filtre
uniquement (tokens vides, conf None, conf < 0) sans changer
l'échelle ; le runner normalise au moment du calcul de calibration.

4. **Helper ``_mean_duration_per_engine``**
La factorisation lisait uniquement ``engines[i].mean_duration`` et
ratait le format historique ``documents[i].engine_results[j].duration``.
Lecture primaire restaurée + fallback secondaire conservé.

5. **``_DEFAULT_REGISTRY`` non réexporté**
Le shim ``picarones.core.narrative`` perdait les noms privés.
Pattern de réexport explicite (boucle sur ``dir(_module)``) ajouté.

6. **Aggrégateurs sans logging gracieux**
``_aggregate_confusion`` cassait sur ``confusion_matrix`` corrompu.
Try/except + ``logger.warning`` ajoutés (test Sprint 13).

7. **Import circulaire ``extras.importers.iiif``**
Importait depuis le shim ``picarones.importers._http`` qui
réimportait ``picarones.importers.iiif`` (lui-même en cours de
chargement). Switch sur le module pair direct
``picarones.extras.importers._http`` + ajout de l'alias
``_validate_url`` réclamé par test_chantier4.

8. **Tests obsolètes après chantier 5 / phaseE**
- ``test_chantier4`` : ``cli.py`` (mono) → ``cli/_workflows.py``
- ``test_chantier4`` : ``importers/gallica.py`` shim →
``extras/importers/gallica.py`` source
- ``test_phaseE`` : alias ``PROFILES`` → ``NORMALIZATION_PROFILES``
- ``test_phaseC`` : ajustement comment pyproject.toml pour matcher
``extras/importers``
- ``test_views`` : data shape ``per_token``→``tokens`` (format réel
de ``aggregate_lexical_modernization``)

9. **Version 1.3.0 → 1.0.0**
Bump précédent cassait test_sprint9_packaging (4 tests). Revert
pyproject.toml ; ``__init__.py`` lit dynamiquement
``importlib.metadata.version`` après ``pip install -e .``.

10. **Lint F401**
``noqa: F401`` ajouté sur l'alias intentionnel ``_validate_url``.

État final
----------
- ``ruff check picarones/ tests/`` : ``All checks passed!``
- ``pytest tests/`` : ``3516 passed, 2 skipped, 0 failed``

https://claude.ai/code/session_01Hsd7kL8yeCbXn1mA7GQK9L

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. picarones/cli/_history.py +1 -5
  2. picarones/cli/_imports.py +1 -4
  3. picarones/cli/_pipeline.py +1 -4
  4. picarones/cli/_robustness.py +0 -2
  5. picarones/cli/_serve.py +1 -4
  6. picarones/cli/_workflows.py +0 -2
  7. picarones/core/abbreviations.py +19 -10
  8. picarones/core/baseline_comparison.py +19 -12
  9. picarones/core/builtin_hooks.py +19 -12
  10. picarones/core/calibration.py +19 -12
  11. picarones/core/char_scores.py +19 -12
  12. picarones/core/confusion.py +19 -12
  13. picarones/core/cost_projection.py +19 -12
  14. picarones/core/difficulty.py +19 -12
  15. picarones/core/early_modern_typography.py +19 -10
  16. picarones/core/equivalence_profile.py +19 -12
  17. picarones/core/error_absorption.py +19 -12
  18. picarones/core/hallucination.py +19 -12
  19. picarones/core/history.py +19 -12
  20. picarones/core/image_predictive.py +19 -13
  21. picarones/core/image_quality.py +19 -12
  22. picarones/core/incremental_comparison.py +19 -12
  23. picarones/core/inter_engine.py +19 -12
  24. picarones/core/layout.py +19 -12
  25. picarones/core/levers.py +19 -12
  26. picarones/core/lexical_modernization.py +19 -10
  27. picarones/core/line_metrics.py +19 -12
  28. picarones/core/longitudinal.py +19 -12
  29. picarones/core/marginal_cost.py +19 -12
  30. picarones/core/metric_hooks.py +2 -2
  31. picarones/core/modern_archives.py +19 -10
  32. picarones/core/module_policy.py +19 -13
  33. picarones/core/mufi.py +19 -10
  34. picarones/core/narrative/__init__.py +9 -0
  35. picarones/core/narrative/arbiter.py +20 -7
  36. picarones/core/narrative/detectors/_helpers.py +20 -7
  37. picarones/core/narrative/detectors/ensemble.py +20 -7
  38. picarones/core/narrative/detectors/history.py +20 -7
  39. picarones/core/narrative/detectors/pareto.py +20 -7
  40. picarones/core/narrative/detectors/quality.py +20 -7
  41. picarones/core/narrative/detectors/ranking.py +20 -7
  42. picarones/core/narrative/detectors/stratum.py +20 -7
  43. picarones/core/narrative/facts.py +20 -7
  44. picarones/core/narrative/registry.py +20 -7
  45. picarones/core/narrative/renderer.py +20 -7
  46. picarones/core/ner.py +19 -12
  47. picarones/core/ner_backends.py +19 -12
  48. picarones/core/normalization.py +19 -12
  49. picarones/core/numerical_sequences.py +19 -12
  50. picarones/core/numerical_sequences_runner.py +19 -12
picarones/cli/_history.py CHANGED
@@ -9,14 +9,10 @@ Comportement et signatures inchangés — uniquement de la modularisation.
9
 
10
  from __future__ import annotations
11
 
12
- import json
13
- import logging
14
- import sys
15
- from pathlib import Path
16
 
17
  import click
18
 
19
- from picarones.cli import cli, _engine_from_name, _setup_logging
20
 
21
  # ---------------------------------------------------------------------------
22
  # picarones history
 
9
 
10
  from __future__ import annotations
11
 
 
 
 
 
12
 
13
  import click
14
 
15
+ from picarones.cli import cli, _setup_logging
16
 
17
  # ---------------------------------------------------------------------------
18
  # picarones history
picarones/cli/_imports.py CHANGED
@@ -9,14 +9,11 @@ Comportement et signatures inchangés — uniquement de la modularisation.
9
 
10
  from __future__ import annotations
11
 
12
- import json
13
- import logging
14
  import sys
15
- from pathlib import Path
16
 
17
  import click
18
 
19
- from picarones.cli import cli, _engine_from_name, _setup_logging
20
 
21
  # ---------------------------------------------------------------------------
22
  # picarones import (groupe de sous-commandes)
 
9
 
10
  from __future__ import annotations
11
 
 
 
12
  import sys
 
13
 
14
  import click
15
 
16
+ from picarones.cli import cli, _setup_logging
17
 
18
  # ---------------------------------------------------------------------------
19
  # picarones import (groupe de sous-commandes)
picarones/cli/_pipeline.py CHANGED
@@ -9,14 +9,11 @@ Comportement et signatures inchangés — uniquement de la modularisation.
9
 
10
  from __future__ import annotations
11
 
12
- import json
13
- import logging
14
- import sys
15
  from pathlib import Path
16
 
17
  import click
18
 
19
- from picarones.cli import cli, _engine_from_name, _setup_logging
20
 
21
  # composées (axe B), pilotables depuis des fichiers YAML déclaratifs.
22
  # ---------------------------------------------------------------------------
 
9
 
10
  from __future__ import annotations
11
 
 
 
 
12
  from pathlib import Path
13
 
14
  import click
15
 
16
+ from picarones.cli import cli
17
 
18
  # composées (axe B), pilotables depuis des fichiers YAML déclaratifs.
19
  # ---------------------------------------------------------------------------
picarones/cli/_robustness.py CHANGED
@@ -9,8 +9,6 @@ Comportement et signatures inchangés — uniquement de la modularisation.
9
 
10
  from __future__ import annotations
11
 
12
- import json
13
- import logging
14
  import sys
15
  from pathlib import Path
16
 
 
9
 
10
  from __future__ import annotations
11
 
 
 
12
  import sys
13
  from pathlib import Path
14
 
picarones/cli/_serve.py CHANGED
@@ -9,14 +9,11 @@ Comportement et signatures inchangés — uniquement de la modularisation.
9
 
10
  from __future__ import annotations
11
 
12
- import json
13
- import logging
14
  import sys
15
- from pathlib import Path
16
 
17
  import click
18
 
19
- from picarones.cli import cli, _engine_from_name, _setup_logging
20
 
21
  # ---------------------------------------------------------------------------
22
  # picarones serve
 
9
 
10
  from __future__ import annotations
11
 
 
 
12
  import sys
 
13
 
14
  import click
15
 
16
+ from picarones.cli import cli, _setup_logging
17
 
18
  # ---------------------------------------------------------------------------
19
  # picarones serve
picarones/cli/_workflows.py CHANGED
@@ -10,9 +10,7 @@ Comportement et signatures inchangés — uniquement de la modularisation.
10
  from __future__ import annotations
11
 
12
  import json
13
- import logging
14
  import sys
15
- from pathlib import Path
16
 
17
  import click
18
 
 
10
  from __future__ import annotations
11
 
12
  import json
 
13
  import sys
 
14
 
15
  import click
16
 
picarones/core/abbreviations.py CHANGED
@@ -1,17 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.abbreviations`.
2
 
3
- Phase B du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Ce module philologique est désormais en Cercle 3 (``extras/``). L'alias
5
- ici permet aux imports historiques (``from picarones.core.abbreviations
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` et l'extra
9
- ``picarones[historical]`` du ``pyproject.toml``.
10
  """
11
 
12
  from picarones.extras.historical.abbreviations import * # noqa: F401, F403
13
 
14
- import picarones.extras.historical.abbreviations as _module
15
- __all__ = getattr(_module, "__all__", [
16
- name for name in dir(_module) if not name.startswith("_")
17
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.abbreviations`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.historical.abbreviations import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.historical.abbreviations as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/baseline_comparison.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.baseline_comparison`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.baseline_comparison import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.baseline_comparison import * # noqa: F401, F403
15
 
16
- import picarones.measurements.baseline_comparison as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.baseline_comparison`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.baseline_comparison import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.baseline_comparison as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/builtin_hooks.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.builtin_hooks`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.builtin_hooks import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.builtin_hooks import * # noqa: F401, F403
15
 
16
- import picarones.measurements.builtin_hooks as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.builtin_hooks`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.builtin_hooks import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.builtin_hooks as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/calibration.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.calibration`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.calibration import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.calibration import * # noqa: F401, F403
15
 
16
- import picarones.measurements.calibration as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.calibration`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.calibration import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.calibration as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/char_scores.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.char_scores`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.char_scores import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.char_scores import * # noqa: F401, F403
15
 
16
- import picarones.measurements.char_scores as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.char_scores`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.char_scores import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.char_scores as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/confusion.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.confusion`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.confusion import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.confusion import * # noqa: F401, F403
15
 
16
- import picarones.measurements.confusion as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.confusion`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.confusion import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.confusion as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/cost_projection.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.cost_projection`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.cost_projection import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.cost_projection import * # noqa: F401, F403
15
 
16
- import picarones.measurements.cost_projection as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.cost_projection`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.cost_projection import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.cost_projection as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/difficulty.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.difficulty`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.difficulty import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.difficulty import * # noqa: F401, F403
15
 
16
- import picarones.measurements.difficulty as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.difficulty`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.difficulty import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.difficulty as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/early_modern_typography.py CHANGED
@@ -1,17 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.early_modern_typography`.
2
 
3
- Phase B du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Ce module philologique est désormais en Cercle 3 (``extras/``). L'alias
5
- ici permet aux imports historiques (``from picarones.core.early_modern_typography
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` et l'extra
9
- ``picarones[historical]`` du ``pyproject.toml``.
10
  """
11
 
12
  from picarones.extras.historical.early_modern_typography import * # noqa: F401, F403
13
 
14
- import picarones.extras.historical.early_modern_typography as _module
15
- __all__ = getattr(_module, "__all__", [
16
- name for name in dir(_module) if not name.startswith("_")
17
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.early_modern_typography`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.historical.early_modern_typography import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.historical.early_modern_typography as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/equivalence_profile.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.equivalence_profile`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.equivalence_profile import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.equivalence_profile import * # noqa: F401, F403
15
 
16
- import picarones.measurements.equivalence_profile as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.equivalence_profile`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.equivalence_profile import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.equivalence_profile as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/error_absorption.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.error_absorption`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.error_absorption import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.error_absorption import * # noqa: F401, F403
15
 
16
- import picarones.measurements.error_absorption as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.error_absorption`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.error_absorption import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.error_absorption as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/hallucination.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.hallucination`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.hallucination import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.hallucination import * # noqa: F401, F403
15
 
16
- import picarones.measurements.hallucination as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.hallucination`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.hallucination import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.hallucination as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/history.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.history`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.history import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.history import * # noqa: F401, F403
15
 
16
- import picarones.measurements.history as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.history`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.history import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.history as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/image_predictive.py CHANGED
@@ -1,20 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.academic.image_predictive`.
2
 
3
- Phase A du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Le contenu vit désormais dans son cercle 3 ``extras/``. Cet alias
5
- permet aux imports historiques (``from picarones.core.image_predictive
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` pour la justification du
9
- classement de ce module au Cercle 3.
10
  """
11
 
12
  from picarones.extras.academic.image_predictive import * # noqa: F401, F403
13
 
14
- # Réexport explicite des éventuels noms privés ou modules accédés
15
- # directement par leur attribut (rare mais possible). Pour la plupart
16
- # des modules, l'``import *`` ci-dessus suffit.
17
- import picarones.extras.academic.image_predictive as _module
18
- __all__ = getattr(_module, "__all__", [
19
- name for name in dir(_module) if not name.startswith("_")
20
- ])
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.academic.image_predictive`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.academic.image_predictive import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.academic.image_predictive as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/image_quality.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.image_quality`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.image_quality import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.image_quality import * # noqa: F401, F403
15
 
16
- import picarones.measurements.image_quality as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.image_quality`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.image_quality import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.image_quality as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/incremental_comparison.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.incremental_comparison`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.incremental_comparison import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.incremental_comparison import * # noqa: F401, F403
15
 
16
- import picarones.measurements.incremental_comparison as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.incremental_comparison`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.incremental_comparison import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.incremental_comparison as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/inter_engine.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.inter_engine`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.inter_engine import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.inter_engine import * # noqa: F401, F403
15
 
16
- import picarones.measurements.inter_engine as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.inter_engine`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.inter_engine import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.inter_engine as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/layout.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.layout`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.layout import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.layout import * # noqa: F401, F403
15
 
16
- import picarones.measurements.layout as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.layout`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.layout import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.layout as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/levers.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.levers`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.levers import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.levers import * # noqa: F401, F403
15
 
16
- import picarones.measurements.levers as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.levers`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.levers import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.levers as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/lexical_modernization.py CHANGED
@@ -1,17 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.lexical_modernization`.
2
 
3
- Phase B du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Ce module philologique est désormais en Cercle 3 (``extras/``). L'alias
5
- ici permet aux imports historiques (``from picarones.core.lexical_modernization
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` et l'extra
9
- ``picarones[historical]`` du ``pyproject.toml``.
10
  """
11
 
12
  from picarones.extras.historical.lexical_modernization import * # noqa: F401, F403
13
 
14
- import picarones.extras.historical.lexical_modernization as _module
15
- __all__ = getattr(_module, "__all__", [
16
- name for name in dir(_module) if not name.startswith("_")
17
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.lexical_modernization`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.historical.lexical_modernization import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.historical.lexical_modernization as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/line_metrics.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.line_metrics`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.line_metrics import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.line_metrics import * # noqa: F401, F403
15
 
16
- import picarones.measurements.line_metrics as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.line_metrics`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.line_metrics import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.line_metrics as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/longitudinal.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.longitudinal`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.longitudinal import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.longitudinal import * # noqa: F401, F403
15
 
16
- import picarones.measurements.longitudinal as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.longitudinal`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.longitudinal import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.longitudinal as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/marginal_cost.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.marginal_cost`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.marginal_cost import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.marginal_cost import * # noqa: F401, F403
15
 
16
- import picarones.measurements.marginal_cost as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.marginal_cost`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.marginal_cost import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.marginal_cost as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/metric_hooks.py CHANGED
@@ -66,8 +66,8 @@ référencer dans la doc utilisateur ``docs/profiles/``).
66
  from __future__ import annotations
67
 
68
  import logging
69
- from dataclasses import dataclass, field
70
- from typing import Any, Callable, Iterable, Optional
71
 
72
  logger = logging.getLogger(__name__)
73
 
 
66
  from __future__ import annotations
67
 
68
  import logging
69
+ from dataclasses import dataclass
70
+ from typing import Any, Callable, Iterable
71
 
72
  logger = logging.getLogger(__name__)
73
 
picarones/core/modern_archives.py CHANGED
@@ -1,17 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.modern_archives`.
2
 
3
- Phase B du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Ce module philologique est désormais en Cercle 3 (``extras/``). L'alias
5
- ici permet aux imports historiques (``from picarones.core.modern_archives
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` et l'extra
9
- ``picarones[historical]`` du ``pyproject.toml``.
10
  """
11
 
12
  from picarones.extras.historical.modern_archives import * # noqa: F401, F403
13
 
14
- import picarones.extras.historical.modern_archives as _module
15
- __all__ = getattr(_module, "__all__", [
16
- name for name in dir(_module) if not name.startswith("_")
17
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.modern_archives`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.historical.modern_archives import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.historical.modern_archives as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/module_policy.py CHANGED
@@ -1,20 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.governance.module_policy`.
2
 
3
- Phase A du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Le contenu vit désormais dans son cercle 3 ``extras/``. Cet alias
5
- permet aux imports historiques (``from picarones.core.module_policy
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` pour la justification du
9
- classement de ce module au Cercle 3.
10
  """
11
 
12
  from picarones.extras.governance.module_policy import * # noqa: F401, F403
13
 
14
- # Réexport explicite des éventuels noms privés ou modules accédés
15
- # directement par leur attribut (rare mais possible). Pour la plupart
16
- # des modules, l'``import *`` ci-dessus suffit.
17
- import picarones.extras.governance.module_policy as _module
18
- __all__ = getattr(_module, "__all__", [
19
- name for name in dir(_module) if not name.startswith("_")
20
- ])
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.governance.module_policy`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.governance.module_policy import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.governance.module_policy as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/mufi.py CHANGED
@@ -1,17 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.mufi`.
2
 
3
- Phase B du chantier de refonte en 3 cercles (architecture-cercles.md).
4
- Ce module philologique est désormais en Cercle 3 (``extras/``). L'alias
5
- ici permet aux imports historiques (``from picarones.core.mufi
6
- import ...``) de continuer à fonctionner sans modification.
7
 
8
- Voir :doc:`docs/architecture-cercles.md` et l'extra
9
- ``picarones[historical]`` du ``pyproject.toml``.
10
  """
11
 
12
  from picarones.extras.historical.mufi import * # noqa: F401, F403
13
 
14
- import picarones.extras.historical.mufi as _module
15
- __all__ = getattr(_module, "__all__", [
16
- name for name in dir(_module) if not name.startswith("_")
17
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.extras.historical.mufi`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
8
  """
9
 
10
  from picarones.extras.historical.mufi import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.extras.historical.mufi as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/__init__.py CHANGED
@@ -10,6 +10,15 @@ Cet alias maintient la rétrocompat des imports historiques :
10
  from picarones.measurements.narrative import * # noqa: F401, F403
11
 
12
  import picarones.measurements.narrative as _module
 
 
 
 
 
 
 
 
 
13
  __all__ = getattr(_module, "__all__", [
14
  nm for nm in dir(_module) if not nm.startswith("_")
15
  ])
 
10
  from picarones.measurements.narrative import * # noqa: F401, F403
11
 
12
  import picarones.measurements.narrative as _module
13
+ # Réexport explicite des noms privés (préfixe ``_``) que ``import *``
14
+ # ne propage pas — rétrocompat des tests Sprints qui importent
15
+ # directement ``_DEFAULT_REGISTRY`` (test_sprint19_narrative_engine).
16
+ for _shim_name in dir(_module):
17
+ if _shim_name == "__builtins__":
18
+ continue
19
+ if _shim_name not in globals():
20
+ globals()[_shim_name] = getattr(_module, _shim_name)
21
+ del _shim_name
22
  __all__ = getattr(_module, "__all__", [
23
  nm for nm in dir(_module) if not nm.startswith("_")
24
  ])
picarones/core/narrative/arbiter.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.arbiter`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.arbiter import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.arbiter as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.arbiter`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.arbiter import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.arbiter as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/_helpers.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors._helpers`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors._helpers import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors._helpers as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors._helpers`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors._helpers import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors._helpers as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/ensemble.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.ensemble`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors.ensemble import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors.ensemble as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.ensemble`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors.ensemble import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors.ensemble as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/history.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.history`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors.history import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors.history as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.history`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors.history import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors.history as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/pareto.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.pareto`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors.pareto import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors.pareto as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.pareto`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors.pareto import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors.pareto as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/quality.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.quality`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors.quality import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors.quality as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.quality`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors.quality import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors.quality as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/ranking.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.ranking`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors.ranking import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors.ranking as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.ranking`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors.ranking import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors.ranking as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/detectors/stratum.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.stratum`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.detectors.stratum import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.detectors.stratum as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.detectors.stratum`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.detectors.stratum import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.detectors.stratum as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/facts.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.facts`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.facts import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.facts as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.facts`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.facts import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.facts as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/registry.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.registry`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.registry import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.registry as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.registry`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.registry import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.registry as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/narrative/renderer.py CHANGED
@@ -1,13 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.renderer`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Le moteur narratif
4
- (Cercle 2 measurements/) a quitté ``picarones.core.narrative``.
5
- Cet alias maintient la rétrocompat des imports historiques.
 
 
6
  """
7
 
8
  from picarones.measurements.narrative.renderer import * # noqa: F401, F403
9
 
10
- import picarones.measurements.narrative.renderer as _module
11
- __all__ = getattr(_module, "__all__", [
12
- nm for nm in dir(_module) if not nm.startswith("_")
13
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.narrative.renderer`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
6
+
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
8
  """
9
 
10
  from picarones.measurements.narrative.renderer import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.narrative.renderer as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/ner.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.ner`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.ner import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.ner import * # noqa: F401, F403
15
 
16
- import picarones.measurements.ner as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.ner`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.ner import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.ner as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/ner_backends.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.ner_backends`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.ner_backends import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.ner_backends import * # noqa: F401, F403
15
 
16
- import picarones.measurements.ner_backends as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.ner_backends`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.ner_backends import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.ner_backends as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/normalization.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.normalization`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.normalization import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.normalization import * # noqa: F401, F403
15
 
16
- import picarones.measurements.normalization as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.normalization`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.normalization import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.normalization as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/numerical_sequences.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.numerical_sequences`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.numerical_sequences import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.numerical_sequences import * # noqa: F401, F403
15
 
16
- import picarones.measurements.numerical_sequences as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.numerical_sequences`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.numerical_sequences import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.numerical_sequences as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]
picarones/core/numerical_sequences_runner.py CHANGED
@@ -1,19 +1,26 @@
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.numerical_sequences_runner`.
2
 
3
- Phase E du chantier de refonte en 3 cercles. Cette mesure (Cercle 2)
4
- n'est plus dans ``picarones.core/`` ; elle vit dans
5
- ``picarones.measurements/``. L'alias ici permet aux imports
6
- historiques (``from picarones.core.numerical_sequences_runner import ...``) de continuer
7
- à fonctionner sans modification.
8
 
9
- Voir :doc:`docs/architecture-cercles.md` pour la cartographie des
10
- 3 cercles. Le ``core/`` strict ne contient plus que les abstractions
11
- du domaine et l'orchestration (Cercle 1).
12
  """
13
 
14
  from picarones.measurements.numerical_sequences_runner import * # noqa: F401, F403
15
 
16
- import picarones.measurements.numerical_sequences_runner as _module
17
- __all__ = getattr(_module, "__all__", [
18
- nm for nm in dir(_module) if not nm.startswith("_")
19
- ])
 
 
 
 
 
 
 
 
 
 
 
 
1
  """Alias rétrocompat — module déplacé dans :mod:`picarones.measurements.numerical_sequences_runner`.
2
 
3
+ Le contenu vit désormais dans son cercle d'origine. Cet alias permet
4
+ aux imports historiques (y compris les noms privés ``_*``) de
5
+ continuer à fonctionner sans modification.
 
 
6
 
7
+ Voir :doc:`docs/architecture-cercles.md` pour la cartographie.
 
 
8
  """
9
 
10
  from picarones.measurements.numerical_sequences_runner import * # noqa: F401, F403
11
 
12
+ # Réexport explicite de TOUS les noms (privés inclus) pour la
13
+ # rétrocompatibilité des tests Sprints qui importent ``_helper``,
14
+ # ``_compute_X``, ``_SCIPY_AVAILABLE``, etc. Sans cette boucle, ``import *``
15
+ # ne propage que les noms publics et casse les imports historiques.
16
+ import picarones.measurements.numerical_sequences_runner as _shim_module
17
+ for _shim_name in dir(_shim_module):
18
+ if _shim_name == "__builtins__":
19
+ continue
20
+ if _shim_name not in globals():
21
+ globals()[_shim_name] = getattr(_shim_module, _shim_name)
22
+ del _shim_module, _shim_name
23
+
24
+ __all__ = [
25
+ _n for _n in dir() if not _n.startswith("__")
26
+ ]