feat(s53): load_dimension fail-fast loader (MAF-free, mirrors load_goal_config)
New load_dimension(str | Path) in dimension.py: is_file() -> FileNotFoundError, then Dimension.model_validate_json -> pydantic.ValidationError on malformed shape. Fail-fast because dimension config is authoritative startup input (contrast the tolerant verdict-inbox RAW layer). Stdlib + pydantic only — stays MAF-free (test_okf_is_maf_free AST guard green). Exported from __init__.py in both the import block and __all__. RED-first: 3 loader tests failed on the missing import, green after. tests/test_dimension.py + test_okf.py: 29 passed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KNNiJRk1sSwxgVLS5AobT1
This commit is contained in:
parent
2ed0b5991c
commit
124b7aedde
3 changed files with 59 additions and 2 deletions
|
|
@ -1,7 +1,7 @@
|
|||
"""portfolio-optimiser — generic MAF framework for per-project cost-savings optimization."""
|
||||
|
||||
from portfolio_optimiser.contracts import GoalConfig, GoalContract, load_goal_config
|
||||
from portfolio_optimiser.dimension import Dimension, admits
|
||||
from portfolio_optimiser.dimension import Dimension, admits, load_dimension
|
||||
from portfolio_optimiser.ledger import (
|
||||
LedgerEntry,
|
||||
RealizationRefused,
|
||||
|
|
@ -37,6 +37,7 @@ __all__ = [
|
|||
# Fase 1 domain model
|
||||
"Dimension",
|
||||
"admits",
|
||||
"load_dimension",
|
||||
"SavingsLedger",
|
||||
"LedgerEntry",
|
||||
"realize",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue