From 7a68fbcae97fa492c0d319f138009fcc48971cd7 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Mon, 27 Apr 2026 12:11:53 +0000 Subject: [PATCH] =?UTF-8?q?extract=20energy=20fields=20from=20elmhurst=20s?= =?UTF-8?q?ite=20notes=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/documents_parser/elmhurst_extractor.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/backend/documents_parser/elmhurst_extractor.py b/backend/documents_parser/elmhurst_extractor.py index 919c0f9a..3063e358 100644 --- a/backend/documents_parser/elmhurst_extractor.py +++ b/backend/documents_parser/elmhurst_extractor.py @@ -368,6 +368,13 @@ class ElmhurstSiteNotesExtractor: showers=showers, ) + def _rating_val(self, label: str) -> int: + v = self._next_val(label) + try: + return int(v.split()[-1]) if v else 0 + except (ValueError, IndexError): + return 0 + def _extract_renewables(self) -> Renewables: fghrs_lines = self._section_lines( "18.0 Flue Gas Heat Recovery System", "19.0 Photovoltaic Panel" @@ -390,9 +397,17 @@ class ElmhurstSiteNotesExtractor: ) def extract(self) -> ElmhurstSiteNotes: + emissions_raw = self._next_val("Emissions (t/year)") + co2 = float(emissions_raw.split()[0]) if emissions_raw else 0.0 + return ElmhurstSiteNotes( surveyor_info=self._extract_surveyor_info(), property_details=self._extract_property_details(), + current_sap_rating=self._rating_val("Current SAP rating"), + potential_sap_rating=self._rating_val("Potential SAP rating"), + current_ei_rating=self._rating_val("Current EI rating"), + potential_ei_rating=self._rating_val("Potential EI rating"), + co2_emissions_current_t=co2, property_type=self._str_val("1.0 Property type"), attachment=self._extract_attachment(), number_of_storeys=self._int_val("Storeys"),