mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Closes 2 of 14 remaining diffs by populating Appendix J inputs the Elmhurst mapper surfaces from Summary §16: - `sap_heating.number_baths=1` (passed via make_sap_heating kwarg) - `sap_heating.shower_outlets = ShowerOutlets(Non-electric)` (set post-construction because the helper doesn't expose the field; added the dataclass imports for SCM completeness) Cascade-equivalent: number_baths=1 and one non-electric mixer outlet without WWHRS are the implicit Appendix J defaults when nothing is lodged. All 11 cohort 000474 cascade pins remain GREEN at 1e-4. Diff count: 14 → 12. Pyright net-zero (0 errors). Remaining 12 diffs split: - 7 mapper-needs-to-surface (country_code, water_heating_fuel, boiler_flue_type, emitter_temperature, main_heating_number, has_draught_lobby, central_heating_pump_age int↔str) - 3 party_wall_construction sentinel (None vs 0) across bps - 1 sap_windows: LEN 7 vs 5 (collapse vs 1:1 structural decision) - 1 dwelling_type / built_form casing nuance (resolved in Slice 64 bulk-update; remaining 1 was for one bp's encoding) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src/domain | ||
| pyproject.toml | ||
| README.md | ||
domna-domain
Shared domain types — Property, Properties, BaselinePerformance, Plan, PlanPhase, Scenario, ScenarioPhase, ScenarioSnapshot, Recommendation, OptimisedPackage, EpcPropertyData, etc.
Boundary: types only. No persistence, no IO, no business logic. Other packages and services depend on domna-domain; this package depends on nothing internal.
Domain definitions live in ../../CONTEXT.md. New types added here must match the glossary terms.
Layout
src/domain/
├── __init__.py
├── property.py # Property, Properties, PropertyIdentity
├── site_notes.py
├── landlord_overrides.py
├── baseline_performance.py # lodged + effective pair (ADR-0004)
├── plan.py # Plan, PlanPhase, OptimisedPackage
├── scenario.py # Scenario, ScenarioPhase, ScenarioSnapshot (ADR-0005)
├── recommendation.py
├── geospatial.py
├── solar.py
├── anomaly_flags.py
└── ml/
├── __init__.py
├── transform.py # EpcMlTransform (versioned per §8.3)
└── schema.py
When datatypes/epc/domain/ folds in, the EPC schema types move under src/domain/epc/.