"""Domain errors for the :mod:`aeat.domain.manuals` subpackage.Every exception raised by loading, verifying, fetching, or extractingfrom the AEAT *Manual práctico* corpus inherits from:class:`ManualError`, which in turn inherits from:class:`aeat.core.errors.AeatError`."""from__future__importannotationsfrom...core.errorsimportAeatError
[docs]classManualError(AeatError):"""Base error for every :mod:`aeat.domain.manuals` failure mode."""
[docs]classManualNotFoundError(ManualError):"""Raised when a requested manual/year/part is missing on disk."""
[docs]classManualParseError(ManualError):"""Raised when a committed manual record fails schema validation."""
[docs]classManualReviewRequiredError(ManualError):"""Raised when a persisted record lacks reviewer metadata. The verify CLI rejects any :class:`~aeat.domain.manuals.Manual`, :class:`~aeat.domain.manuals.Section`, or :class:`~aeat.domain.manuals.Rule` record missing ``definition_reviewed_by`` or ``definition_reviewed_at`` when the ``AEAT_MANUALS_REVIEW_REQUIRED`` setting is enabled. """
[docs]classRuleExtractionError(ManualError):"""Raised by LLM-dependent CLI subcommands that have no backing implementation. The ``structure``, ``extract-rules``, and ``translate`` subcommands define their public CLI shape but raise this exception until the :mod:`aeat.adapters.outbound.llm` subpackage is available. """
[docs]classManifestError(ManualError):"""Raised when a ``manifest.json`` fails schema or sha256 checks."""
[docs]classManualValidationError(ManualError,ValueError):"""Raised when manual records violate state or shape invariants. Inherits from ValueError to maintain compatibility with Pydantic validators. """