Developing pybalmorel
pybalmorel uses pixi to manage reproducible development environments. There are two environments available:
default(dev) — for developing pybalmorel and building its documentation locallyuser— for testing pybalmorel as an end-user, with only the PyPI package installed
Installing pixi
If you do not have pixi installed yet, follow the official installation instructions or run:
curl -fsSL https://pixi.sh/install.sh | sh
Architecture Decisions
Design decisions that are hard to see from the code alone are recorded as architecture decision records (ADRs) below. Add a new one, numbered in sequence, when you make such a decision.
- Ground-source heat pump COP is excluded from the weatheryear pipeline
- Vectorize symbol_to_df via gams.transfer instead of per-record iteration
- Derive GGG_renewable/INVDATASET_renewable/AAA_renewable names from one shared technology identity
- Fail loudly on unrecognized technologies; keep silently dropping known-excluded ones
- Use observed max flow, not NTC, as the transmission constraint for backcasting
- Generate XKFX overrides as a separate, non-destructive include file rather than regenerating XKFX.inc
- Split entsoe (generic ENTSO-E client) and backcasting (Balmorel validation) into separate packages
- Backcast calendar uses UTC, not local time
- Bundle the Price Year deflator and exchange-rate tables instead of fetching or passing them