Source code for cadrumo.adapters.persistence.profile.counterparty_establishment
"""Encrypted profile adapter for counterparty-establishment facts.Core types::class:`~cadrumo.core.classification.policies.SensitivityClass`."""from__future__importannotationsfromcollections.abcimportCallablefromtypingimportClassVar,overridefrompydanticimportBaseModelfrom....application.ledger.counterparty_establishmentimportConfirmedCounterpartyFactsfrom....application.ledger.counterparty_establishment_portsimport(CounterpartyEstablishmentPersistenceError,CounterpartyEstablishmentRepositoryProtocol,)from....core.classification.policiesimportSensitivityClassfrom..storage.envelope.secure_bound_repositoryimportSecureBoundRepositoryfrom..storage.secure_object_namespacesimportLEDGER_CONFIRMED_COUNTERPARTY_FACTS_NAMESPACEdef_translate_storage[T](operation:str,action:Callable[[],T])->T:"""Expose only the application persistence error at this boundary."""try:returnaction()exceptCounterpartyEstablishmentPersistenceError:raiseexceptExceptionasexc:raiseCounterpartyEstablishmentPersistenceError(operation)fromexc
[docs]classCounterpartyEstablishmentRepository(SecureBoundRepository[ConfirmedCounterpartyFacts],CounterpartyEstablishmentRepositoryProtocol,):"""Bind confirmed counterparty facts to the encrypted profile store."""namespace:ClassVar[str]=LEDGER_CONFIRMED_COUNTERPARTY_FACTS_NAMESPACE.namespacesensitivity:ClassVar[SensitivityClass]=LEDGER_CONFIRMED_COUNTERPARTY_FACTS_NAMESPACE.sensitivityschema_version:ClassVar[int]=LEDGER_CONFIRMED_COUNTERPARTY_FACTS_NAMESPACE.schema_versionpayload_type:ClassVar[type[BaseModel]]=ConfirmedCounterpartyFacts
[docs]@overridedefload(self,identifier:str)->ConfirmedCounterpartyFacts|None:"""Load a fact while translating secure-object failures."""return_translate_storage("load",lambda:super(CounterpartyEstablishmentRepository,self).load(identifier),)
[docs]@overridedefsave(self,payload:ConfirmedCounterpartyFacts)->None:"""Persist a fact while translating secure-object failures."""_translate_storage("save",lambda:super(CounterpartyEstablishmentRepository,self).save(payload),)
[docs]@overridedefdelete(self,identifier:str)->bool:"""Delete a fact while translating secure-object failures."""return_translate_storage("delete",lambda:super(CounterpartyEstablishmentRepository,self).delete(identifier),)
[docs]defbuild_counterparty_establishment_repository(*,bucket_id:str,)->CounterpartyEstablishmentRepositoryProtocol:"""Bind the encrypted counterparty-facts store to one profile bucket."""returnCounterpartyEstablishmentRepository(bucket_id=bucket_id)