From: heeplr <32984777+heeplr@users.noreply.github.com> Date: Thu, 27 Nov 2025 19:52:54 +0000 (+0100) Subject: Fix string handling of DecimalElement (#95) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3f9e39c0ef869405fcf56454f4354fbd550fb0b;p=thirdparty%2Fpython-drafthorse.git 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 --- 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)