Picarones / picarones /__init__.py
Claude
docs(sprint-H.8): cleanup obsolete legacy/shim language in production docstrings
e407ec0 unverified
Raw
History Blame
3.85 kB
"""Picarones — Plateforme de benchmark OCR/HTR pour documents patrimoniaux.
Licence Apache 2.0.
API publique des couches 1 & 3 (abstractions stables) ré-exportée
ici pour permettre :
>>> from picarones import Corpus, Document, BaseModule, ArtifactType
>>> from picarones import BenchmarkResult, EngineReport, DocumentResult
Pour les implémentations (calcul de métriques, runner, adapters OCR…),
utiliser les sous-packages explicites :
>>> from picarones.app.services.benchmark_runner import run_benchmark_via_service
>>> from picarones.evaluation.metrics.text_metrics import compute_metrics
>>> from picarones.adapters.ocr.tesseract import TesseractAdapter
Voir ``docs/explanation/architecture.md`` pour la cartographie complète des
8 couches, et ``docs/reference/api-stable.md`` pour le contrat de stabilité.
"""
from __future__ import annotations
# Version (Sprint A9 / M-5) — résolue dans cet ordre :
# 1. ``picarones._version`` injecté au build par setuptools_scm
# (présent dans le wheel installé) ;
# 2. fallback ``importlib.metadata.version("picarones")`` pour les
# installations editable où ``_version.py`` peut être stale ;
# 3. fallback final ``"1.0.0"`` si aucune source n'est disponible
# (ex : tarball sans .git ni metadata).
try:
from picarones._version import __version__ # type: ignore[import-not-found]
except ImportError:
try:
from importlib.metadata import version as _get_version
__version__ = _get_version("picarones")
except Exception: # noqa: BLE001
__version__ = "2.0.0"
__author__ = "Picarones contributors"
# ──────────────────────────────────────────────────────────────────────────
# API publique — couches stables (domain + evaluation)
# ──────────────────────────────────────────────────────────────────────────
from picarones.evaluation.corpus import (
Corpus,
Document,
TextGT,
AltoGT,
PageGT,
EntitiesGT,
ReadingOrderGT,
load_corpus_from_directory,
)
from picarones.domain.artifacts import ArtifactType
from picarones.domain.module_protocol import BaseModule
from picarones.evaluation.benchmark_result import (
BenchmarkResult,
DocumentResult,
EngineReport,
)
from picarones.evaluation.metric_result import MetricsResult, aggregate_metrics
from picarones.domain.facts import (
DetectorRegistry,
Fact,
FactImportance,
FactType,
)
from picarones.evaluation.metric_registry import (
MetricSpec,
compute_at_junction,
register_metric,
select_metrics,
)
# Trigger d'enregistrement du registre typé : l'import de
# ``picarones.evaluation.metrics`` provoque l'exécution des décorateurs
# ``@register_metric`` sur ``cer``, ``wer``, ``mer``, ``wil`` + ~15
# métriques philologiques + reading order + NER + ALTO.
import picarones.evaluation.metrics as _trigger_metric_registration # noqa: F401, E402
__all__ = [
"__version__",
"__author__",
# Corpus
"Corpus",
"Document",
"TextGT",
"AltoGT",
"PageGT",
"EntitiesGT",
"ReadingOrderGT",
"load_corpus_from_directory",
# Modules génériques (BaseModule)
"ArtifactType",
"BaseModule",
# Résultats
"BenchmarkResult",
"DocumentResult",
"EngineReport",
"MetricsResult",
"aggregate_metrics",
# Moteur narratif (modèle de données)
"DetectorRegistry",
"Fact",
"FactImportance",
"FactType",
# Registre de métriques typées
"MetricSpec",
"compute_at_junction",
"register_metric",
"select_metrics",
]