aeat.domain.calculations.registry.applicability module¶
Public non-cyclic access to registry-owned modelo applicability rules.
This module is the focused public surface for the applicability
subsystem. The underlying implementation in _applicability.py
uses leading-underscore names on the legal-refs constants and the
applicability-rules table to mark them as INTERNAL state — i.e.,
not part of the registry-root public API, not stable across
implementation refactors, and not to be reached for through the
private module from outside the registry package.
Re-exporting those names through this focused module IS the canonical public bridge. The underscore prefix on the source-side identifiers is preserved here for two reasons:
The constants are domain configuration data (legal-refs tuples + per-modelo rule table) that the application layer observes but should not mutate. Keeping the underscore prefix in consumer code signals “registry-owned, don’t manipulate” even when the import path is the focused public module.
A rename to public-style names (drop the underscore) would produce mechanical churn across 5 files without structural benefit — the public/private contradiction is resolved by this module’s existence as the documented bridge, not by the source-side name choice.
Cross-package consumers MUST import from this module
(aeat.domain.calculations.registry.applicability), NOT from
_applicability. Imports of _applicability are flagged by
test_public_api_boundaries.py::test_source_tree_does_not_use_absolute_registry_private_imports.