github.com/india-energy-atlas/ies-ingest
ies-ingest
The orchestration and contract layer between raw SLDC feeds and an IES-shaped consumer API. Apache 2.0. Dependency-light Python package; no Postgres, no Prometheus, no Docker required to import.
v0.4 §Adoption Strategy, p. 7 · §Programme Observability, pp. 26–28
- StateDemandRow Pydantic contract — refuses to serve null observed values, distinguishes observed from modeled / synthesized / derived / missing
- Canonical state-name normaliser collapsing 33+ SLDC variants (J&K vs Jammu and Kashmir, A&N vs Andaman, etc.) to one key
- IST-aligned canonical hour with publication-SLA settle window (IST at edge, UTC in DB)
- Lightweight {atlas_hour, source_health, data} freshness envelope, composable with the cryptographically-receipted IES envelope
- Pluggable Source registry with timeout-bounded async pull
- 60 unit tests, GitHub Actions CI matrix on Python 3.11 and 3.12, runnable end-to-end Delhi demo
Quick start
$ git clone https://github.com/india-energy-atlas/ies-ingest $ cd ies-ingest $ make verify