- Add client_load_mw to CommercialConfig (defaults to ppa_capacity_mw) - Add hourly_timestamps, hourly_fy, hourly_proj_year, hourly_total_re, hourly_client_end, hourly_load to ScenarioResult - Generate 25-year hourly data in runner.py with proper timestamps - Update API worker to return new hourly fields - Update WorkbookView HourlyGenerationSheet to show all 5 columns at each expandable level (Year > Month > Day > Hour) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| src/remodel_engine | ||
| tests | ||
| pyproject.toml | ||
| README.md | ||
remodel-engine
UI-agnostic Python calculation library for hybrid RE (Solar + Wind + BESS) project finance.
Setup
poetry install
Common commands
poetry run pytest # run tests with coverage
poetry run ruff check . # lint
poetry run mypy src/ # type-check
poetry run remodel --help # CLI (after implementation)
Package layout
src/remodel_engine/
├── schemas/ Pydantic models (single source of truth)
├── catalog/ Default values, CostItem catalog, profiles
├── generation/ solar.py, wind.py, bess_state.py
├── dispatch/ hybrid_rtc.py, mcp_settlement.py
├── commercial/ ppa.py, dsm.py, charges.py, losses.py
├── capex/ cost_items.py, phasing.py, idc.py
├── financial/ pnl.py, cfs.py, bs.py, depreciation.py, tax.py
├── debt/ sizing.py, sculpting.py, schedule.py, compliance.py
├── irr/ metrics.py
├── solver/ tariff.py
├── scenarios/ runner.py, sweep.py
├── io/ parquet_io.py, excel_export.py
└── cli.py