Source code for cadrumo.adapters.persistence.profile.taxation_comparison
"""Persistence adapter for the Modelo taxation-comparison read capability."""from__future__importannotationsfromtypingimportoverridefrom....application.modelo.taxation_comparison_portsimport(TaxationComparisonPersistenceError,TaxationComparisonPorts,TaxationComparisonWorkUnitReader,)from....domain.modelos.repositoryimportWorkUnitPersistenceErrorfrom....domain.modelos.work_unitimportWorkUnitCataloguefrom..storage.errorsimportStorageErrorfrom..storage.runtime_repositoryimportsecure_object_repository_for_bucketfrom.modelos_work_unitsimportWorkUnitCatalogueRepository
[docs]classTaxationComparisonWorkUnitReaderAdapter(TaxationComparisonWorkUnitReader):"""Translate the encrypted work-unit repository to the application port."""def__init__(self,*,repository:WorkUnitCatalogueRepository)->None:"""Bind an already-composed work-unit repository."""self._repository=repository
[docs]@overridedefload(self)->WorkUnitCatalogue:"""Load work units while hiding persistence implementation errors."""try:returnself._repository.load()except(WorkUnitPersistenceError,StorageError,OSError)asexc:raiseTaxationComparisonPersistenceError("work_unit_catalogue_load")fromexc
[docs]defbuild_taxation_comparison_ports(*,bucket_id:str)->TaxationComparisonPorts:"""Bind the work-unit repository to one profile bucket."""normalized_bucket_id=bucket_id.strip()objects=secure_object_repository_for_bucket(normalized_bucket_id)returnTaxationComparisonPorts(work_unit_reader=TaxationComparisonWorkUnitReaderAdapter(repository=WorkUnitCatalogueRepository(bucket_id=normalized_bucket_id,objects=objects),),)