Source code for cadrumo.entrypoints.ledger_action_composition
"""Outer composition for bucket-scoped ledger action persistence.Core types::class:`~cadrumo.adapters.persistence.profile.transactions.TransactionCatalogueRepository`."""from__future__importannotationsfrom..application.ledger.action_portsimportLedgerActionPortsfrom..application.ledger.import_portsimportLedgerImportPortsfrom..domain.calculations.registry.authorityimportPinnedAuthorityOperationfrom..domain.usage_ratios.modelimportUsageRatioProfile
[docs]defcompose_ledger_action_ports(*,bucket_id:str,operation:PinnedAuthorityOperation)->LedgerActionPorts:"""Build the complete explicit persistence bundle for ``bucket_id``."""from..adapters.persistence.profile.bucketsimportBucketEventHistoryRepositoryfrom..adapters.persistence.profile.invoicesimportInvoiceCatalogueRepositoryfrom..adapters.persistence.profile.modelos_calculationimportCalculationRevisionCatalogueRepositoryfrom..adapters.persistence.profile.modelos_work_unitsimportWorkUnitCatalogueRepositoryfrom..adapters.persistence.profile.transactionsimportTransactionCatalogueRepositoryfrom..adapters.persistence.profile.usage_ratiosimportload_usage_ratiosfrom..adapters.persistence.storage.attachmentimportresolve_attachment_storefrom..adapters.persistence.storage.runtime_repositoryimportsecure_object_repository_for_bucketfrom..core.configimportload_settingsfrom.adapter_compositionimportbuild_ledger_evidence_portssettings=load_settings()objects=secure_object_repository_for_bucket(bucket_id,settings)evidence_records=build_ledger_evidence_ports(bucket_id=bucket_id,).evidence_repository.load(bucket_id=bucket_id)defload_pinned_usage_ratios(*,bucket_id:str,operation:PinnedAuthorityOperation,)->UsageRatioProfile:returnload_usage_ratios(bucket_id=bucket_id,operation=operation)returnLedgerActionPorts(operation=operation,transaction_repository=TransactionCatalogueRepository(bucket_id=bucket_id),bucket_event_repository=BucketEventHistoryRepository(objects=objects),invoice_repository=InvoiceCatalogueRepository(bucket_id=bucket_id),attachment_store=resolve_attachment_store(None),usage_ratio_profile=load_pinned_usage_ratios(bucket_id=bucket_id,operation=operation),usage_ratio_profile_loader=load_pinned_usage_ratios,work_unit_repository=WorkUnitCatalogueRepository(bucket_id=bucket_id),calculation_repository=CalculationRevisionCatalogueRepository(bucket_id=bucket_id),purchase_invoice_evidence_records=evidence_records,)
[docs]defcompose_ledger_import_ports()->LedgerImportPorts:"""Bind the concrete financial source and catalogue-location adapters."""from..adapters.inbound.financial.ledger_importimportbuild_ledger_import_portsreturnbuild_ledger_import_ports()