Source code for aeat.core.resources._repos.legal_parameters

"""Singleton legal-parameter repository.

:class:`LegalParameterRepository` loads registry-wide :class:`LegalParameter`
records through the shared :class:`ResourceCacheRepository` cache.
"""

from __future__ import annotations

from collections.abc import Mapping
from typing import TYPE_CHECKING, override

from .._repository import ResourceCacheRepository

if TYPE_CHECKING:
    from ....domain.calculations.registry import LegalParameter


[docs] class LegalParameterRepository(ResourceCacheRepository[Mapping[str, "LegalParameter"], None]): """Singleton-keyed repository for the registry-wide legal parameters. Wraps :func:`aeat.domain.calculations.registry.load_legal_parameters_only` rooted at the bundled registry tree and returns :class:`LegalParameter` records. """ @override def _load(self, key: None) -> Mapping[str, LegalParameter]: from ....domain.calculations.registry import load_legal_parameters_only from .._boundary import bundled_path return load_legal_parameters_only(bundled_path("registry", "aeat")) @property def singleton(self) -> Mapping[str, LegalParameter]: return self.get(None)