[DTP-Worker 20260812_130149] vérif · chasse au défaut axe FRAIS date/time + parsing money/percent → 3 candidats RÉFUTÉS domaine-borné (signature_date="0" corrompu · banclib._pct constante canonique · rate() séparateur-milliers inatteignable car taux borné 0-100) + note anti-récurrence in-situ sur rate() (un Explore l'avait mal-classé en CONFIRMED DEFECT → re-flaggable) · commentaire pur · rebuild byte-identique · sans fix · sans gate · CI 33 PASS
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,6 +44,11 @@ def rate(value: Any) -> Optional[float]:
|
||||
return None
|
||||
if isinstance(value, (int, float)):
|
||||
return float(value) / 100.0
|
||||
# `replace(",", ".")` accepte la virgule décimale française (« 3,5 % » → 3.5).
|
||||
# Un séparateur de milliers (« 1.234,56 ») casserait ce parse — mais il est
|
||||
# INATTEIGNABLE : un taux de commission est borné 0-100 (cf. doctrine de
|
||||
# `_rate_label`), donc jamais ≥ 1000 → aucun séparateur de milliers. La virgule
|
||||
# est donc toujours décimale ici. Ne pas « corriger » vers locale.atof (#5/#6).
|
||||
txt = str(value).replace("%", "").replace(",", ".").strip()
|
||||
try:
|
||||
return float(txt) / 100.0
|
||||
|
||||
Reference in New Issue
Block a user