mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Closes 4 of 5 remaining cohort 000474 diffs (5 → 1): **Mapper:** Add "U" → 0 to `_ELMHURST_PARTY_WALL_CODE_TO_SAP10`. The modal cohort lodgement Summary §7 "Party Wall Type: U Unable to determine" was previously falling through to None; the cohort hand- built convention uses 0 as the explicit "unknown" sentinel. The cascade resolves both 0 and None to the same `u_party_wall` default (0.25), so cascade output is unchanged. Closes 3 diffs (one per bp). **Hand-built:** Set `central_heating_pump_age_str="Unknown"` on cohort 000474 Main heating detail (post-construction since the helper doesn't expose the kwarg). Matches the Elmhurst mapper's surfaced value from Summary §14 "Heat pump age: Unknown" — the str dual- encoding internal_gains.py reads. Closes 1 diff. All 66 cohort cascade pins remain GREEN at 1e-4. Pyright 35-error baseline preserved on mapper.py; 0 errors on the hand-built file. Remaining 1 diff on cohort 000474: - `sap_windows: LEN 7 vs 5` — the cohort hand-built collapsed §11 by glazing-type × orientation × bp group (preserving total area, cascade-equivalent but not field-equal); the mapper extracts 1:1 with the worksheet's 7 §11 table rows. Next slice will expand the hand-built to 7 individual SapWindow entries matching the mapper. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| domain | ||
| fetchers | ||
| repos | ||
| utils | ||
| README.md | ||
Shared packages
Workspace packages consumed by services/*. Each package is its own Python distribution with its own pyproject.toml; services import via the workspace dependency mechanism ({ workspace = true }).
| Package | Purpose |
|---|---|
domain/ |
Shared domain types — Property, BaselinePerformance, Plan, Scenario, EpcPropertyData, etc. No persistence, no IO, no business logic. |
repos/ |
Persistence layer — one repo per aggregate. Owns the SQL. Depends on domain. |
fetchers/ |
External API clients (gov EPC, Ofgem, Google Solar, etc.). Depend on domain for response shapes. |
utils/ |
Cross-cutting infra — logging, S3, CloudWatch URL builders, SQS task helpers. |
Adding a new shared package
Only when a real second consumer materialises. Don't pre-shatter (repos-epc, repos-property, ...) — split when a deployment needs to drop a dep, not before.
See ../ara_backend_design.md §11 for the broader monorepo layout and ../CONTEXT.md for the domain glossary that names the types living in domain/.