From fed25a8f75c4688bec0aab646d1c2123137c5e23 Mon Sep 17 00:00:00 2001 From: Daniel Hiepler Date: Wed, 5 Nov 2025 10:49:22 +0100 Subject: [PATCH] fix string handling of DecimalElement * remove __str__() to ensure string type by falling back to inherited StringElement.__str__() * wrap __format__ method of _value * enforce Decimal() type in __init__ --- drafthorse/models/elements.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drafthorse/models/elements.py b/drafthorse/models/elements.py index 2d763b7..31a0e3d 100644 --- a/drafthorse/models/elements.py +++ b/drafthorse/models/elements.py @@ -158,15 +158,15 @@ def from_etree(self, root, strict=True): class DecimalElement(StringElement): def __init__(self, namespace, tag, value=None): super().__init__(namespace, tag) - self._value = value + self._value = None if value is None else Decimal(value) def to_etree(self): node = self._etree_node() node.text = str(self._value) if self._value is not None else "" return node - def __str__(self): - return self._value + def __format__(self, fmt): + return self._value.__format__(fmt) def from_etree(self, root, strict=True): self._value = Decimal(root.text)