Model/datatypes/epc/domain
Jun-te Kim 0536f70162 Take a Postcode value object at the historic EPC repository boundary 🟩
The port accepts a normalised Postcode and rejects malformed/empty ones via
Postcode.is_valid() (PostcodeNotFound) — dropping the per-lookup postcodes.io
HTTP call and the cross-module use of the private _sanitise_postcode. Mapper
helper promoted to public.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 15:24:18 +00:00
..
tests Take a Postcode value object at the historic EPC repository boundary 🟩 2026-06-29 15:24:18 +00:00
__init__.py fix broken imports and rename mapper class 2026-04-13 16:36:13 +00:00
epc.py feat(modelling): Epc.sap_lower_bound() — band → minimum SAP (#1160) 2026-06-03 12:50:40 +00:00
epc_codes.csv slice 8a: window physics and orientation aggregates 2026-05-16 15:32:45 +00:00
epc_property_data.py Merge remote-tracking branch 'origin/main' into feature/hyde_make_it_more_accurate_with_tests 2026-06-17 09:05:37 +00:00
field_mappings.py insulation thickness can be string 🟥 2026-04-15 14:26:09 +00:00
historic_epc.py demo generated for use in address2uprn 2026-05-08 14:48:15 +00:00
historic_epc_matching.py Take a Postcode value object at the historic EPC repository boundary 🟩 2026-06-29 15:24:18 +00:00
mapper.py Merge remote-tracking branch 'origin/main' into feature/hyde_make_it_more_accurate_with_tests 2026-06-17 09:05:37 +00:00