From 718254fe5e4ffe87d681ea700c6023a8192f03e4 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 21 May 2025 12:16:04 +0500 Subject: [PATCH] Fix regression parsing iso duration with floats (d1b1b08) #6715 --- src/ifcopenshell-python/ifcopenshell/util/date.py | 4 ++-- src/ifcopenshell-python/test/util/test_date.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/date.py b/src/ifcopenshell-python/ifcopenshell/util/date.py index ac64d189a2..67fbd99a18 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/date.py +++ b/src/ifcopenshell-python/ifcopenshell/util/date.py @@ -93,14 +93,14 @@ def readable_ifc_duration(duration: str) -> str: for designator in ("Y", "M", "W", "D"): if designator in period_duration: value, period_duration = period_duration.split(designator) - if int(value): + if float(value): result.append(f"{value}{designator}") if time_duration: for designator in ("H", "M", "S"): if designator in time_duration: value, time_duration = time_duration.split(designator) - if int(value): + if float(value): result.append(f"{value}{designator.lower()}") return " ".join(result) diff --git a/src/ifcopenshell-python/test/util/test_date.py b/src/ifcopenshell-python/test/util/test_date.py index 5dc037d8a6..b57b2d158b 100644 --- a/src/ifcopenshell-python/test/util/test_date.py +++ b/src/ifcopenshell-python/test/util/test_date.py @@ -26,3 +26,7 @@ class TestReadableIFCDuration: assert subject.readable_ifc_duration("P0Y0M1DT16H0M0S") == "1D 16h" assert subject.readable_ifc_duration("P2Y3M1W4DT5H45M30S") == "2Y 3M 1W 4D 5h 45m 30s" assert subject.readable_ifc_duration("PT40H") == "40h" + + # Float values. + assert subject.readable_ifc_duration("P2.5D") == "2.5D" + assert subject.readable_ifc_duration("PT1.5H") == "1.5h"