mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Forced ventilation is injected once across both fabric-first phases 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
0220bee87c
commit
471728db0a
1 changed files with 11 additions and 1 deletions
|
|
@ -271,13 +271,23 @@ def optimise_package_fabric_first(
|
|||
leftover_budget: Optional[float] = (
|
||||
None if budget is None else budget - _package_cost(fabric_package.selected)
|
||||
)
|
||||
# A dependency phase 1 already injected (e.g. the wall's ventilation) is
|
||||
# satisfied for the whole package: phase 2 must not force it in again.
|
||||
fabric_types: set[MeasureType] = {
|
||||
scored.option.measure_type for scored in fabric_package.selected
|
||||
}
|
||||
outstanding_dependencies: list[MeasureDependency] = [
|
||||
dependency
|
||||
for dependency in dependencies
|
||||
if dependency.required.option.measure_type not in fabric_types
|
||||
]
|
||||
top_up: OptimisedPackage = optimise_package(
|
||||
groups=_rescored_groups(remaining_groups, post_fabric_scorer, baseline_epc),
|
||||
scorer=post_fabric_scorer,
|
||||
baseline_epc=baseline_epc,
|
||||
budget=leftover_budget,
|
||||
target_sap=target_sap,
|
||||
dependencies=dependencies,
|
||||
dependencies=outstanding_dependencies,
|
||||
)
|
||||
return OptimisedPackage(
|
||||
selected=[*fabric_package.selected, *top_up.selected],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue