Model/orchestration
Khalim Conn-Kowlessar 3580d059ec feat(modelling): drive measure scoping from the Scenario's exclusions
The measures a run considers should come from the Scenario, not a CLI flag.
The live scenario table persists exclusions only (no inclusions column), as a
Postgres text-array of exact MeasureType values.

- Scenario gains `exclusions: frozenset[MeasureType]` + `considered_measures()`
  (all measures minus the excluded ones, or None when none are excluded).
- ScenarioModel.to_domain parses the `{a,b,c}` exclusions array into
  MeasureTypes, raising on a token that is not an exact MeasureType value
  (no high-level category expansion), per the strict-enum convention.
- ModellingOrchestrator._plan_for derives the allowlist from the Scenario's
  exclusions, combined (intersection) with any explicit considered_measures
  override via the new `combine_considered_measures`.
- run_modelling_e2e sources the allowlist from the Scenario; --measures /
  --exclude-measures become optional overlays (e.g. the technical
  secondary_heating_removal exclusion the catalogue cannot yet stock).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 15:26:25 +00:00
..
__init__.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
ara_first_run_pipeline.py feat(modelling): ModellingOrchestrator persists a Plan end-to-end (#1157) 2026-06-03 12:08:32 +00:00
audit_generator_orchestrator.py populate_sheet writes to new Sero template column layout 🟩 2026-06-10 13:21:50 +00:00
audit_generator_unit_of_work.py Audit generator populates XLSX, uploads to S3, and records UploadedFile row 🟥 2026-06-09 11:59:09 +00:00
bulk_upload_finaliser_orchestrator.py fix 2026-06-05 17:24:17 +00:00
classifiable_column.py moved classifier data transformation to an easy one 2026-06-01 14:53:34 +00:00
ingestion_orchestrator.py refactor(epc-prediction): PR review — rename ComparableProperty, relocate PredictionTarget 2026-06-16 13:34:44 +00:00
landlord_description_overrides_orchestrator.py tests wrong environemnt 2026-05-29 16:17:06 +00:00
magic_plan_orchestrator.py UploadedFile, FileTypeEnum, FileSourceEnum importable from infrastructure.postgres.uploaded_file_table 🟩 2026-06-09 11:50:51 +00:00
modelling_orchestrator.py feat(modelling): drive measure scoping from the Scenario's exclusions 2026-06-16 15:26:25 +00:00
postcode_splitter_orchestrator.py standardist Address 2026-05-22 10:13:32 +00:00
property_baseline_orchestrator.py feat(baseline): CalculatorRebaseliner — calculator goes load-bearing (ADR-0013 amend) 2026-06-04 15:40:26 +00:00
sharepoint_renamer_orchestrator.py ignore jpg and heic files. resolve filepath relatively 2026-06-16 10:06:39 +00:00
task_orchestrator.py get rid of comments 2026-05-20 13:21:11 +00:00