arm-core/api/src/contract/__init__.py
Andrey Epifancev 17141c0a11 feat(contract): копии контракта обоих MAJOR, модели v2.0, приём конвертов 1.x/2.0, предупреждения файла структурами
Копии api/contracts/ побайтно равны docs/contracts/ (тест идентичности плана 0): схемы v2.0 основные, .v1 рядом,
examples/ — v2.0, examples/v1/ — v1.0. Модели result_v2.py и RecognitionResultMessageV2, versions.py выбирает модель
по MAJOR. Приём конвертов принимает оба MAJOR; metrics.warnings в recognition_job пишется структурами (строки 1.x
оборачиваются в LEGACY_WARNING). JobBrief.warnings отдаёт структуры, мусор пропускается, БД не переписывается.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 19:26:50 +04:00

79 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Контракт обмена с сервисами распознавания, MAJOR 1 и 2 (схемы — `api/contracts/`, копии `docs/contracts/`).
Публичный API: pydantic-модели запроса, конверта и файла результата, subject'ы NATS, идентификаторы сообщений.
"""
from src.contract.common import (
CONTRACT_VERSION,
ContractModel,
ErrorCode,
Metrics,
S3Ref,
ServiceInfo,
ServiceName,
)
from src.contract.message import MessageError, MessageStatus, RecognitionResultMessage, RecognitionResultMessageV2
from src.contract.request import FileType, RecognitionRequest
from src.contract.result import (
OsvDocument,
RecognitionResult,
ResultStatus,
StatementDocument,
)
from src.contract.result_v2 import (
DocumentWarning,
FileWarning,
MetricsV2,
OsvDocumentV2,
RecognitionResultV2,
StatementDocumentV2,
)
from src.contract.subjects import (
IMAGE_REQUEST_SUBJECT,
NATS_MSG_ID_HEADER,
REQUEST_SUBJECTS,
RESULT_SUBJECT,
TABULAR_REQUEST_SUBJECT,
Pipeline,
ack_msg_id,
request_msg_id,
request_subject,
result_msg_id,
)
__all__ = [
"CONTRACT_VERSION",
"IMAGE_REQUEST_SUBJECT",
"NATS_MSG_ID_HEADER",
"REQUEST_SUBJECTS",
"RESULT_SUBJECT",
"TABULAR_REQUEST_SUBJECT",
"ContractModel",
"DocumentWarning",
"ErrorCode",
"FileWarning",
"FileType",
"MessageError",
"MessageStatus",
"Metrics",
"MetricsV2",
"OsvDocument",
"OsvDocumentV2",
"Pipeline",
"RecognitionRequest",
"RecognitionResult",
"RecognitionResultMessage",
"RecognitionResultMessageV2",
"RecognitionResultV2",
"ResultStatus",
"S3Ref",
"ServiceInfo",
"ServiceName",
"StatementDocument",
"StatementDocumentV2",
"ack_msg_id",
"request_msg_id",
"request_subject",
"result_msg_id",
]