mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-27 23:35:01 +00:00
An epc_property row can carry a null property_id (FE/historic ingestion persists EPC rows never linked to a property row), so a property_id-keyed read silently misses them. UPRN is the durable key both the property row and the epc_property row share. Repoint the lodged reads (get_for_property + get_for_properties) onto UPRN; the predicted reads stay on property_id because a predicted EPC deep-copies a neighbour's UPRN, so its UPRN column is never the property's own. UPRN is not unique on epc_property, so the read tie-break is now load- bearing (it was dormant under property_id, where the write path guarantees one lodged row per property): the most recently ingested (highest-id) row wins. Write path stays keyed on (property_id, source). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| audit_generator | ||
| magic_plan | ||
| __init__.py | ||
| fakes.py | ||
| test_abri_orchestrator_abandon_job.py | ||
| test_abri_orchestrator_amend_job.py | ||
| test_abri_orchestrator_log_job.py | ||
| test_abri_orchestrator_tenant_data_sync.py | ||
| test_ara_first_run_pipeline.py | ||
| test_ara_first_run_pipeline_integration.py | ||
| test_build_canonical_filename.py | ||
| test_bulk_document_download_orchestrator.py | ||
| test_bulk_upload_finaliser_orchestrator.py | ||
| test_first_run_without_database.py | ||
| test_ingestion_orchestrator.py | ||
| test_ingestion_prediction.py | ||
| test_landlord_description_overrides_orchestrator.py | ||
| test_modelling_fabric_first.py | ||
| test_modelling_goal_objectives.py | ||
| test_modelling_heat_pump_sizing_threading.py | ||
| test_modelling_solar_threading.py | ||
| test_postcode_splitter_orchestrator.py | ||
| test_property_baseline_orchestrator.py | ||
| test_task_orchestrator.py | ||