Spaces:
Sleeping
Sleeping
File size: 4,123 Bytes
360239b 49cc409 360239b 49cc409 360239b 628d92a e224609 628d92a e224609 1af6b22 360239b fda1a60 360239b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | """Picarones — Plateforme de benchmark OCR/HTR pour documents patrimoniaux.
Licence Apache 2.0.
API publique du Cercle 1 (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.measurements.runner import run_benchmark
>>> from picarones.measurements.metrics import compute_metrics
>>> from picarones.engines.tesseract import TesseractEngine
Voir ``docs/architecture.md`` pour la cartographie complète des
3 cercles, et ``docs/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__ = "1.0.0"
__author__ = "Picarones contributors"
# ──────────────────────────────────────────────────────────────────────────
# API publique — Cercle 1 uniquement
# ──────────────────────────────────────────────────────────────────────────
from picarones.core.corpus import (
Corpus,
Document,
GTLevel,
TextGT,
AltoGT,
PageGT,
EntitiesGT,
ReadingOrderGT,
load_corpus_from_directory,
)
from picarones.core.modules import ArtifactType, BaseModule
from picarones.core.results import (
BenchmarkResult,
DocumentResult,
EngineReport,
)
from picarones.core.metrics import MetricsResult, aggregate_metrics
from picarones.core.facts import (
DetectorRegistry,
Fact,
FactImportance,
FactType,
)
from picarones.core.pipeline import (
PipelineResult,
PipelineRunner,
PipelineSpec,
PipelineStep,
StepResult,
)
from picarones.core.metric_registry import (
MetricSpec,
compute_at_junction,
register_metric,
select_metrics,
)
# Sprint A3 — trigger d'enregistrement du registre typé (Sprint 34).
# L'import de ``picarones.measurements`` provoque l'exécution des
# décorateurs ``@register_metric`` sur ``cer``, ``wer``, ``mer``,
# ``wil`` + ~15 métriques philologiques + reading order + NER + ALTO.
# Ce trigger remplace l'ancien import croisé Cercle 1 → Cercle 2 dans
# ``core/pipeline.py`` (violation B-1/B-2 du même esprit).
import picarones.measurements as _trigger_metric_registration # noqa: F401, E402
__all__ = [
"__version__",
"__author__",
# Corpus
"Corpus",
"Document",
"GTLevel",
"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",
# Pipelines composées (axe B)
"PipelineResult",
"PipelineRunner",
"PipelineSpec",
"PipelineStep",
"StepResult",
# Registre de métriques typées
"MetricSpec",
"compute_at_junction",
"register_metric",
"select_metrics",
]
|