Source code for cadrumo.domain.calculations.registry.modelo_rendering
"""Authority query seam for registry-owned Modelo rendering declarations."""from__future__importannotationsfromcollections.abcimportMappingfromdatetimeimportdatefrom....core.time.clockimporttoday_madridfrom.errorsimportRegistryValidationErrorfrom.facts.resolutionimportMappingFactQuery,ResolvedMappingFactfrom.governed_fact_scopeimportGovernedFactSource,governed_facts_in_scopefrom.schema_baseimportDateAxis_MODELO_RENDERING_FACT_ID="modelo-rendering-tax-notice-catalogue"
[docs]defmodelo_rendering_declarations(effective_date:date|None=None,*,authority:GovernedFactSource|None=None,)->Mapping[str,str]:"""Resolve the selected Modelo rendering mapping from registry authority."""selected_authority=authorityorgoverned_facts_in_scope()ifselected_authorityisNone:raiseRegistryValidationError("Modelo rendering declarations require an explicit authority operation or scope")resolved=selected_authority.resolve_governed_fact(MappingFactQuery(fact_id=_MODELO_RENDERING_FACT_ID,date_axis=DateAxis.FILING_PERIOD,effective_date=effective_dateortoday_madrid(),),)ifnotisinstance(resolved,ResolvedMappingFact):raiseTypeError("Modelo rendering declarations must resolve as a mapping fact")return{str(entry.key):str(entry.value)forentryinresolved.payload.entries}
[docs]defmodelo_rendering_value(key:str,*,effective_date:date|None=None,authority:GovernedFactSource|None=None,)->str:"""Resolve one required Modelo rendering declaration without a fallback."""declarations=modelo_rendering_declarations(effective_date,authority=authority)try:returndeclarations[key]exceptKeyErrorasexc:raiseKeyError(f"Modelo rendering declaration {key!r} is missing")fromexc