From 2dd9b9ce844d611a81d76d5d445b07b72af94042 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Wed, 15 Apr 2026 14:29:03 +0000 Subject: [PATCH] =?UTF-8?q?insulation=20thickness=20can=20be=20string=20?= =?UTF-8?q?=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/ecmk_fetcher/xml_processor.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/ecmk_fetcher/xml_processor.py b/backend/ecmk_fetcher/xml_processor.py index a9f7490f..b6dabbbe 100644 --- a/backend/ecmk_fetcher/xml_processor.py +++ b/backend/ecmk_fetcher/xml_processor.py @@ -17,7 +17,7 @@ class Floor(TypedDict): class Roof(TypedDict, total=False): construction: int # TODO: map to str insulation_location: int # TODO: map to str - insulation_thickness_mm: float + insulation_thickness_mm: float | str class BuildingPart(TypedDict): @@ -55,10 +55,14 @@ def _parse_int(value: Optional[str], field: str) -> int: return int(value) -def _parse_thickness_mm(value: Optional[str]) -> Optional[float]: +def _parse_thickness_mm(value: Optional[str]) -> Optional[float | str]: if value is None: return None - return float(value.replace("mm", "").strip()) + stripped = value.replace("mm", "").strip() + try: + return float(stripped) + except ValueError: + return stripped def parse_rdsap(xml_string: str) -> SapPropertyDetails: