mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Review follow-up (Khalim): the first pass made far more optional than needed — notably the whole SapBuildingPart block — and a buggy 21.0.0↔21.0.1 diff also MISSED open_chimneys_count / cfl_/led_fixed_lighting_bulbs_count / suggested_ improvements, so the original change actually mapped only 3 of the 33 skipped certs (the rest still failed on open_chimneys_count). Re-derived the exact set empirically from all 33 skipped cohort certs: widen only fields that are (a) required in 21.0.0, (b) already optional in 21.0.1, AND (c) genuinely omitted by ≥1 of those certs. Result: - KEEP optional: the 4 SapWindow refinements, the top-level vent/lighting/ door/pressure-test block (incl. the 3 previously-missed fields), 2 SapEnergySource fields, Addendum.addendum_numbers, PhotovoltaicSupply. none_or_no_details, and exactly ONE building-part field (SapBuildingPart.roof_insulation_thickness — omitted by 7 certs). - REVERT to required: the other 12 SapBuildingPart fields (construction_age_ band, wall_construction, …), MainHeatingDetail.emitter_temperature, PvBatteries.pv_battery, ShowerOutlets.shower_outlet — none of the 33 certs omit these, so they stay strict. Mapper: coalesce the count fields (wet_rooms_count, open_chimneys_count, cfl_/led_fixed_lighting_bulbs_count) to 0 like every other mapper, so the now- optional values can't reach a NOT-NULL column (also drops 4 pyright ignores). Now maps 32/33 (up from 3); the last cert hits a pre-existing pv_batteries- shape AttributeError and degrades via the ADR-0031 skip path. pyright net unchanged (43, no new errors); regression test rewritten to the real omitted set. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| epc | ||
| __init__.py | ||
| datatypes.py | ||
| enums.py | ||