Remodel/packages/api
Mannu 093e62b011
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
feat: add 25-year hourly generation data with expandable drill-down
- Engine: generate all 25 years × 8760 hours of hourly generation
- Schema: add solar_hourly and wind_hourly fields to ScenarioResult
- API: expose hourly data in statements endpoint
- UI: new HourlyGenerationSheet with Year → Month → Day → Hour drill-down
- Add TYPEOF for hourly generation in web API types

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 10:41:25 +05:30
..
src/remodel_api feat: add 25-year hourly generation data with expandable drill-down 2026-05-16 10:41:25 +05:30
tests [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish 2026-05-13 10:42:36 +05:30
Dockerfile Fix uvicorn PATH in Docker - use poetry venv bin directory 2026-05-13 21:47:53 +05:30
pyproject.toml [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish 2026-05-13 10:42:36 +05:30
README.md [S0-T03/T06/T07/T08/T09] Set up packages/api: FastAPI, SQLAlchemy, Arq worker, CRUD endpoints, SSE 2026-05-07 02:22:25 +05:30
uv.lock [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish 2026-05-13 10:42:36 +05:30

remodel-api

FastAPI + Arq async service for the REmodel calculation engine.

Setup

poetry install
# Redis must be running (see docker-compose.yml at repo root)
docker compose up -d redis

Common commands

# Start API server
poetry run uvicorn remodel_api.main:app --reload --port 8000

# Start Arq worker
poetry run arq remodel_api.workers.main.WorkerSettings

# Run tests
poetry run pytest

# Lint + typecheck
poetry run ruff check . && poetry run mypy src/

API

Method Path Description
GET /healthz Health check
POST /api/scenarios Create + enqueue
GET /api/scenarios List all
GET /api/scenarios/{id} Get one
GET /api/scenarios/{id}/events SSE progress stream

Interactive docs: http://localhost:8000/docs