Fix parsing

This commit is contained in:
2026-04-07 11:32:03 +02:00
parent 2f2f7c74c5
commit d8d06162a8
3 changed files with 91 additions and 42 deletions
+7 -2
View File
@@ -14,6 +14,7 @@ Il risultato della classificazione determina:
State machine messaggi outbound:
sent/queued → accepted (ricevuta di accettazione o presa in carico)
sent/queued → delivered (ricevuta di consegna arrivata prima dell'accettazione)
accepted → delivered (ricevuta di avvenuta consegna)
any valid → anomaly (non-accettazione, mancata consegna, errore, virus)
"""
@@ -146,9 +147,13 @@ _RECEIPT_TO_STATE: dict[str, str] = {
# Transizioni di stato valide per ciascuno stato corrente
# Solo le transizioni in avanti sono permesse (no retrocessioni)
# NOTA: "delivered" e' ammesso anche da "sent"/"queued" perche' i gestori PEC
# possono inviare la ricevuta di consegna prima di quella di accettazione
# (o in assenza della ricevuta di accettazione). Se arriva prima la consegna
# lo stato deve diventare "delivered" indipendentemente dall'ordine di arrivo.
VALID_OUTBOUND_TRANSITIONS: dict[str, set[str]] = {
"queued": {"accepted", "anomaly"},
"sent": {"accepted", "anomaly"},
"queued": {"accepted", "delivered", "anomaly"},
"sent": {"accepted", "delivered", "anomaly"},
"accepted": {"delivered", "anomaly"},
# delivered e anomaly sono terminali: nessuna transizione
}