Source code for cadrumo.domain.calculations.registry.counterpart_bindings
"""Validation for reserved counterpart-source registry bindings."""from__future__importannotationsfromtypingimportTYPE_CHECKINGfrom.binding_selector_utilsimportinvariant_diagnostics,selector_against_modelfrom.invoice_bindingsimport(InvoiceProviderBase,invoice_selector,validate_invoice_family_fact_and_aggregation,)ifTYPE_CHECKING:from.schemaimportBindingDefinitiondef_validated_counterpart_selector(binding:BindingDefinition)->InvoiceProviderBase:selector=invoice_selector(binding)validate_invoice_family_fact_and_aggregation(binding,selector,family_label="counterpart aggregation",strict_scalar_shape=False,)returnselector
[docs]defvalidate_counterpart_binding(binding:BindingDefinition)->list[str]:"""Validate a reserved counterpart-source declaration at registry build time."""failures=selector_against_model(binding,InvoiceProviderBase)iffailures:returnfailuresreturninvariant_diagnostics(binding,"counterpart",_validated_counterpart_selector)