- Reset index per year caused out-of-bounds error - Simplified loop using sequential hour_idx 0-8759 per year 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