From b3f9e39c0ef869405fcf56454f4354fbd550fb0b Mon Sep 17 00:00:00 2001 From: heeplr <32984777+heeplr@users.noreply.github.com> Date: Thu, 27 Nov 2025 20:52:54 +0100 Subject: [PATCH] Fix string handling of DecimalElement (#95) * remove __str__() to ensure string type by falling back to inherited StringElement.__str__() * wrap __format__ method of _value * enforce Decimal() type in __init__ Co-authored-by: Daniel Hiepler --- 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 @@ class StringElement(Element): 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) -- 2.47.3