EPC-derived property type prefers lodged over predicted 🟩

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-07 11:37:45 +00:00
parent 45dab78f4e
commit e1dc0dc2f5

View file

@ -92,17 +92,20 @@ def _resolved_property_types(
epcs = session.exec(
select(EpcPropertyModel)
.where(col(EpcPropertyModel.property_id).in_(property_ids))
.where(EpcPropertyModel.source == "lodged")
.where(col(EpcPropertyModel.source).in_(("lodged", "predicted")))
).all()
by_lodged_epc = {
epc.property_id: epc.property_type
for epc in epcs
if epc.property_id is not None and epc.property_type is not None
}
by_epc_source: dict[str, dict[int, str]] = {"lodged": {}, "predicted": {}}
for epc in epcs:
if epc.property_id is not None and epc.property_type is not None:
by_epc_source[epc.source][epc.property_id] = epc.property_type
resolved: dict[int, str] = {}
for pid in property_ids:
value = by_override.get(pid) or by_lodged_epc.get(pid)
value = (
by_override.get(pid)
or by_epc_source["lodged"].get(pid)
or by_epc_source["predicted"].get(pid)
)
if value is not None:
resolved[pid] = value
return resolved