Merge remote-tracking branch 'origin/main' into feature/landlord_data

# Conflicts:
#	datatypes/epc/schema/rdsap_schema_21_0_0.py
#	datatypes/epc/schema/rdsap_schema_21_0_1.py
This commit is contained in:
Jun-te Kim 2026-06-01 17:02:20 +00:00
commit 616744a606
2 changed files with 1 additions and 12 deletions

View file

@ -33,7 +33,6 @@ class ShowerOutlets:
@dataclass
class InstantaneousWwhrs:
"""Changed in 21.0.0: references WWHRS product index numbers instead of room counts."""
wwhrs_index_number1: Optional[int] = None
wwhrs_index_number2: Optional[int] = None
@ -62,7 +61,6 @@ class SapHeating:
cylinder_size: int
water_heating_code: int
water_heating_fuel: int
instantaneous_wwhrs: Optional[InstantaneousWwhrs]
main_heating_details: List[MainHeatingDetail]
immersion_heating_type: Union[int, str]
has_fixed_air_conditioning: str
@ -115,7 +113,6 @@ class PhotovoltaicArray:
`PhotovoltaicSupply`. The Union type on SapEnergySource.photovoltaic_supply
accepts either shape.
"""
peak_power: float
pitch: int
orientation: int
@ -182,7 +179,6 @@ class RoomInRoofType1:
full enum not yet mapped). `gable_wall_length_*` is the run of the
external gable in metres. Heights are NOT lodged here the cascade
applies the §3.9.1 default storey height (2.45 m)."""
gable_wall_type_1: Optional[int] = None
gable_wall_type_2: Optional[int] = None
gable_wall_length_1: Optional[float] = None
@ -193,7 +189,6 @@ class RoomInRoofType1:
class RoomInRoofDetails:
"""RdSAP §3.9 Detailed RR — per-surface lengths + heights + flat-ceiling
detail. See `rdsap_schema_21_0_1.RoomInRoofDetails`."""
gable_wall_type_1: Optional[int] = None
gable_wall_type_2: Optional[int] = None
gable_wall_length_1: Optional[float] = None
@ -209,7 +204,6 @@ class RoomInRoofDetails:
@dataclass
class SapRoomInRoof:
"""Room-in-roof details. insulation and roof_room_connected removed in schema 21.0.0."""
floor_area: Union[int, float]
construction_age_band: str
room_in_roof_type_1: Optional[RoomInRoofType1] = None

View file

@ -50,7 +50,7 @@ class MainHeatingDetail:
main_heating_data_source: int
emitter_temperature: Optional[Union[int, str]] = None
boiler_flue_type: Optional[int] = None
fan_flue_present: Optional[str] = None # TODO: make bool
fan_flue_present: Optional[str] = None # TODO: make bool
boiler_ignition_type: Optional[int] = None
central_heating_pump_age: Optional[int] = None
main_heating_index_number: Optional[int] = None
@ -62,7 +62,6 @@ class SapHeating:
cylinder_size: int
water_heating_code: int
water_heating_fuel: int
instantaneous_wwhrs: Optional[InstantaneousWwhrs]
main_heating_details: List[MainHeatingDetail]
immersion_heating_type: Union[int, str]
has_fixed_air_conditioning: str
@ -119,7 +118,6 @@ class PhotovoltaicSupplyNoneOrNoDetails:
@dataclass
class SchemaPhotovoltaicArray:
"""One measured PV array under `photovoltaic_supply.pv_arrays`."""
peak_power: Optional[float] = None
pitch: Optional[int] = None
orientation: Optional[int] = None
@ -145,7 +143,6 @@ class PhotovoltaicArray:
`PhotovoltaicSupply`. The Union type on SapEnergySource.photovoltaic_supply
accepts either shape. Some certs wrap the scalars in Measurement dicts.
"""
peak_power: Union[Measurement, int, float]
pitch: Union[Measurement, int]
orientation: Union[Measurement, int]
@ -214,7 +211,6 @@ class RoomInRoofType1:
full enum not yet mapped). `gable_wall_length_*` is the run of the
external gable in metres. Heights are NOT lodged here the cascade
applies the §3.9.1 default storey height (2.45 m)."""
gable_wall_type_1: Optional[int] = None
gable_wall_type_2: Optional[int] = None
gable_wall_length_1: Optional[float] = None
@ -229,7 +225,6 @@ class RoomInRoofDetails:
by `EpcPropertyDataMapper.from_api_response` to populate
`SapRoomInRoof.detailed_surfaces` with `gable_wall_external` /
`flat_ceiling` entries the cascade's Detailed-RR branch consumes."""
gable_wall_type_1: Optional[int] = None
gable_wall_type_2: Optional[int] = None
gable_wall_length_1: Optional[float] = None