Source code for cadrumo.application.aggregation._preconditions
"""Typed refusal outcomes owned by the aggregation application boundary."""from__future__importannotationsfromcollections.abcimportMappingfromdecimalimportDecimalfromenumimportStrEnumfrom...core.operator_action_enumsimportActionEvidenceProvenance,NoRecoveryOutcomefrom..operator_actions.modelsimportPreconditionVerdictfrom..operator_actions.preconditionsimportno_action_precondition_verdict
[docs]classAggregationPreconditionCondition(StrEnum):"""Closed failed-condition identities for aggregation refusals."""INVOICE_LEDGER_COMPLETE="aggregation.invoice_ledger.complete"PER_MODELO_MODELO_SUPPORTED="aggregation.per_modelo.modelo.supported"RETENCIONES_OBSERVATIONS_PRESENT="aggregation.retenciones.observations.present"
[docs]defaggregation_no_recovery_verdict(condition:AggregationPreconditionCondition,*,facts:Mapping[str,str|int|bool|Decimal],outcome:NoRecoveryOutcome=NoRecoveryOutcome.OPERATOR_DECISION,)->PreconditionVerdict:"""Return the observed failure and explicit absence of a bound recovery. Aggregation can identify the incompatibility in its inputs, but it cannot safely construct an executable recovery invocation from those facts. The terminal verdict keeps that boundary machine-readable without retaining presentation recovery prose. """returnno_action_precondition_verdict(condition_id=condition.value,facts=facts,provenance=ActionEvidenceProvenance.APPLICATION_STATE,outcome=outcome,)