mirror of
https://github.com/Hestia-Homes/survey-extraction.git
synced 2026-06-30 13:10:56 +00:00
section 4 completed
This commit is contained in:
parent
899f194d31
commit
1a03afdd0c
2 changed files with 58 additions and 8 deletions
|
|
@ -14,7 +14,7 @@ from etl.transform.conditionReportTypes import (
|
|||
ExternalElevationGableOne, ExternalElevationGableTwo, ExternalElevationRear, ConservatoryOrOutbuilding,
|
||||
AccessAndElevations, Hallway, RoomInfo, WindowsInfo, VentilationInfo, LivingRoom, DiningRoom, Kitchen, Rooms,
|
||||
Utility, WC, Landing, Bedroom, Bathroom, LoftSpace, RoomInRoof, HeatingSystem, GeneralConditionHeatingSystem,
|
||||
MainHeatingOne, MainHeatingTwo, SecondaryHeating
|
||||
MainHeatingOne, MainHeatingTwo, SecondaryHeating, HeatingByRoom, Renewables
|
||||
)
|
||||
from datetime import datetime
|
||||
from pprint import pprint
|
||||
|
|
@ -482,6 +482,8 @@ class ConditionReport(SiteNotesExtractor):
|
|||
_ = self.get_main_heating_one()
|
||||
_ = self.get_main_heating_two()
|
||||
_ = self.get_secondary_heating()
|
||||
_ = self.get_heating_by_room()
|
||||
_ = self.get_renewables()
|
||||
pprint(_)
|
||||
|
||||
def get_main_heating_one(self):
|
||||
|
|
@ -502,7 +504,53 @@ class ConditionReport(SiteNotesExtractor):
|
|||
data = self.get_data_between("Secondary Heating", "Heating by room")
|
||||
return SecondaryHeating(
|
||||
is_there_a_secondary_heating=True if self.get_next_value(data, "Is there a Secondary Heating?").lower() == "yes" else False,
|
||||
fuel=self.get_next_value(data, "Fuel")
|
||||
fuel=self.get_next_value(data, "Fuel"),
|
||||
electric_heating_type=self.get_next_value_greedy(data, "Type", 2),
|
||||
gas_heating_type=self.get_x_value(data, "Type", 1),
|
||||
)
|
||||
|
||||
def get_heating_by_room(self):
|
||||
data = self.get_data_between("Heating by room", "Renewables")
|
||||
list_of_main_heating_system_by_one = self.get_data_between("Rooms heated by Main System 1:", "Rooms Heated by Main System 2")[1:]
|
||||
list_of_main_heating_system_by_two = self.get_data_between("Rooms Heated by Main System 2", "Rooms heated by Secondary Heating:")[1:]
|
||||
list_of_rooms_heated_by_secondary_heating = self.get_data_between("Rooms heated by Secondary Heating:", "Are there any partially heated rooms?")[1:]
|
||||
are_there_any_partially_heated_rooms = True if self.get_next_value(data, "Are there any partially heated rooms?").lower() == "yes" else False
|
||||
are_there_any_unheated_rooms = True if self.get_next_value(data, "Are there any unheated rooms?").lower() == "yes" else False
|
||||
list_of_partially_heated_rooms = self.get_data_between("Are there any partially heated rooms?", "Are there any unheated rooms?")[2:]
|
||||
list_of_unheated_rooms = self.get_data_between("Are there any unheated rooms?", "Renewables")[2:]
|
||||
|
||||
def remove_special_character(lst):
|
||||
return_lst = []
|
||||
for i, item in enumerate(lst):
|
||||
if '\xa0' in item or 'Rooms' in item or len(item) == 1 or item.lower() == "None".lower():
|
||||
pass
|
||||
else:
|
||||
return_lst.append(item)
|
||||
return return_lst
|
||||
|
||||
return HeatingByRoom(
|
||||
rooms_heated_by_main_system_one=remove_special_character(list_of_main_heating_system_by_one),
|
||||
rooms_heated_by_main_system_two=remove_special_character(list_of_main_heating_system_by_two),
|
||||
rooms_heated_by_secondary_heating=remove_special_character(list_of_rooms_heated_by_secondary_heating),
|
||||
are_there_any_partially_heated_rooms=are_there_any_partially_heated_rooms,
|
||||
are_there_any_unheated_rooms=are_there_any_unheated_rooms,
|
||||
list_of_partially_heated_rooms=remove_special_character(list_of_partially_heated_rooms),
|
||||
unheated_rooms=remove_special_character(list_of_unheated_rooms),
|
||||
)
|
||||
|
||||
def get_renewables(self):
|
||||
data = self.get_data_between("Renewables", "5. Occupancy Assessment")
|
||||
|
||||
return Renewables(
|
||||
is_there_any_renewable_energy_system_in_place=True if self.get_next_value(data, "Is there any renewable energy system in place?").lower() == "yes" else False,
|
||||
suitable_roof_orientation_for_solar_pv_water=self.get_next_value(data, "Suitable roof orientation for Solar PV/water:"),
|
||||
is_there_a_water_tank=True if self.get_next_value(data, "Is there a Water Tank?").lower() == "yes" else False,
|
||||
type=self.get_next_value(data, "Type"),
|
||||
size=self.get_next_value(data, "Size"),
|
||||
tank_location=self.get_next_value(data, "Tank Location"),
|
||||
is_the_tank_insulated=True if self.get_next_value(data, "Is the tank Insulated") else False,
|
||||
type_of_insulation=self.get_next_value(data, "Type of Insulation"),
|
||||
thickness_of_insulation_in_mm=int(self.get_next_value(data, "Thickness of Insulation (mm)")),
|
||||
)
|
||||
|
||||
def get_general_condition_of_heating_system(self):
|
||||
|
|
|
|||
|
|
@ -176,7 +176,8 @@ class GeneralConditionHeatingSystem(BaseModel):
|
|||
class SecondaryHeating(BaseModel):
|
||||
is_there_a_secondary_heating: bool
|
||||
fuel: str
|
||||
type: str
|
||||
electric_heating_type: str
|
||||
gas_heating_type: str
|
||||
|
||||
class MainHeatingOne(BaseModel):
|
||||
as_defined_by: str
|
||||
|
|
@ -187,12 +188,13 @@ class MainHeatingTwo(BaseModel):
|
|||
is_there_a_main_heating_two: bool
|
||||
|
||||
class HeatingByRoom(BaseModel):
|
||||
rooms_heated_by_main_system_one: str
|
||||
rooms_heated_by_main_system_two: str
|
||||
rooms_heated_by_secondary_heating: str
|
||||
are_there_any_partially_heated_rooms: str
|
||||
rooms_heated_by_main_system_one: List[str]
|
||||
rooms_heated_by_main_system_two: List[str]
|
||||
rooms_heated_by_secondary_heating: List[str]
|
||||
are_there_any_partially_heated_rooms: bool
|
||||
partially_heated_rooms: Optional[List[str]] = []
|
||||
are_there_any_unheated_rooms: bool
|
||||
unheated_rooms: str
|
||||
unheated_rooms: List[str]
|
||||
|
||||
class Renewables(BaseModel):
|
||||
is_there_any_renewable_energy_system_in_place: bool
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue