Source code for cadrumo.adapters.inbound.reconciliation_parser
"""Inbound PDF parser composition for modelo reconciliation.Core types::class:`~cadrumo.domain.calculations.registry.schema.RegistrySnapshot`."""from__future__importannotationsfromtypingimportTYPE_CHECKING,overridefrom...application.modelo.reconciliation_parsingimport(ReconciliationDeclaracionObservation,ReconciliationEvidenceParserPort,)from...domain.filing.reconciliation.errorsimportReconciliationDeclaracionParseErrorfrom.declaracion.errorsimportDeclaracionParseErrorifTYPE_CHECKING:frompathlibimportPathfrom...domain.calculations.registry.schemaimportRegistrySnapshotfrom...domain.justificante.schemaimportJustificante
[docs]classInboundReconciliationEvidenceParser(ReconciliationEvidenceParserPort):"""Compose the shipped declaración and justificante PDF parsers. The PDF parser trees load on first parse, not when the host binds this port. """
[docs]@overridedefparse_declaracion(self,source:Path,*,modelo:str,filing_year:int,period:str,)->ReconciliationDeclaracionObservation:from.declaracion.parserimportparse_declaraciontry:returnparse_declaracion(source,modelo_override=modelo,año_override=filing_year,period_override=period,)exceptDeclaracionParseErroraserror:raiseReconciliationDeclaracionParseError("filed declaración evidence could not be parsed",)fromerror
[docs]@overridedefparse_declaracion_bytes(self,source:bytes,*,modelo:str,filing_year:int,period:str,registry_snapshot:RegistrySnapshot,)->ReconciliationDeclaracionObservation:from.declaracion.parserimportparse_declaracion_bytestry:returnparse_declaracion_bytes(source,source_label="secure declaration PDF",modelo_override=modelo,año_override=filing_year,period_override=period,registry_snapshot=registry_snapshot,)exceptDeclaracionParseErroraserror:raiseReconciliationDeclaracionParseError("filed declaración evidence could not be parsed",)fromerror