Source code for cadrumo.domain.calculations.registry.inventory_anexo_d_applicability
"""Typed projection of the governed Anexo D inventory applicability fact."""from__future__importannotationsfromdatetimeimportdatefrom.errorsimportRegistryValidationErrorfrom.facts.resolutionimportResolvedScalarFact,ScalarFactQueryfrom.governed_fact_scopeimportGovernedFactSource,governed_facts_in_scopefrom.schema_baseimportDateAxis_FACT_ID="inventory-anexo-d-applicability"_FILING_YEAR_UNIT="filing_year"
[docs]defresolve_inventory_anexo_d_filing_year(*,filing_year:int,authority:GovernedFactSource|None=None,)->int:"""Resolve the applicable Anexo D filing year, failing closed if absent."""authority=authorityorgoverned_facts_in_scope()ifauthorityisNone:raiseRegistryValidationError("inventory Anexo D applicability requires an explicit authority operation or scope")resolved=authority.resolve_governed_fact(ScalarFactQuery(fact_id=_FACT_ID,date_axis=DateAxis.FILING_PERIOD,effective_date=date(filing_year,12,31),),)ifnotisinstance(resolved,ResolvedScalarFact):raiseRegistryValidationError(f"{_FACT_ID} must resolve as a scalar fact")ifresolved.payload.unit!=_FILING_YEAR_UNIT:raiseRegistryValidationError(f"{_FACT_ID} must use unit {_FILING_YEAR_UNIT!r}, got {resolved.payload.unit!r}",)value=resolved.payload.valueifisinstance(value,bool)ornotisinstance(value,int):raiseRegistryValidationError(f"{_FACT_ID} must resolve to an integer filing year")returnvalue