Skip to content
Merged
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
151f603
data: Intermediate layer for versioning of datasets (#1675)
euronion Dec 2, 2025
3ca79a8
Fix BFS Swiss transport parsing (#1934)
danielelerede-oet Dec 4, 2025
4e75e2e
Adding Existing Biomass Heating in Urban Decentral and Rural (#1872)
LukasFrankenQ Dec 4, 2025
efb69ee
Fix build_energy_totals (Swiss transport) (#1936)
bobbyxng Dec 5, 2025
cfc6f56
fix bug in marginal and capital cost calculation for tech biomass-to-…
p-glaum Dec 10, 2025
88f5bd9
chore(deps): bump peter-evans/create-pull-request (#1942)
dependabot[bot] Dec 10, 2025
a2a7491
ci: run model runs only with src changes (#1932)
lkstrp Dec 10, 2025
420ab53
code: Remove unused inputs from snakefile (#1909)
euronion Dec 10, 2025
6016de4
Update README.md
fneum Dec 12, 2025
b5f353a
update pypsa-eur logo (#1946)
fneum Dec 12, 2025
b2c1afe
chore(deps): bump actions/cache from 4 to 5 in the github-actions gro…
dependabot[bot] Dec 12, 2025
a7e2514
chore(deps): bump the github-actions group with 2 updates (#1947)
dependabot[bot] Dec 16, 2025
21ed3dc
Make model instance conveniently inspectable (separate problem prep a…
Irieo Dec 16, 2025
3a35b4a
Fix OSM network building from overpass (formerly osm-raw) (#1940)
bobbyxng Dec 16, 2025
090dbd9
Update locked environment files for all platforms (#1948)
github-actions[bot] Dec 17, 2025
36f4a17
follow PyPSA to name 'PyPSA-Eur' contributors as authors/copyright (#…
fneum Dec 18, 2025
73fb005
Feature: Interactive balance maps (#1935)
bobbyxng Dec 29, 2025
9920a9f
fix: compatibility of build_gas_* rules with pyogrio >=0.12.0 (#1955)
coroa Jan 6, 2026
c8870c5
[pre-commit.ci] pre-commit autoupdate (#1954)
pre-commit-ci[bot] Jan 6, 2026
c474851
Merge branch 'master-upstream' into merge-upstream-260107
tgilon Jan 7, 2026
0d76b18
doc: fix PR template hyperlink (#1957)
tgilon Jan 7, 2026
9e631e0
fix: add pydeck lower version bound that was missing from pypsa <1.0.…
coroa Jan 7, 2026
3178923
Merge branch 'master-upstream' into merge-upstream-260107
tgilon Jan 7, 2026
750ee17
Merge pull request #83 from open-energy-transition/merge-upstream-260107
tgilon Jan 8, 2026
75d9c33
chore: renormalize line endings to enforce .gitattributes
tgilon Jan 9, 2026
8bf921f
Merge branch 'master-upstream-oet' into merge-upstream-260109
tgilon Jan 9, 2026
3902799
chore: renormalize line endings
tgilon Jan 9, 2026
347fd27
fix: fix compatibility with numpy >=2 (#1958)
coroa Jan 12, 2026
fbeb4d8
fix: Version controlled data layer (#1963)
euronion Jan 12, 2026
afbd2fc
Merge branch 'PyPSA:master' into master
tgilon Jan 12, 2026
cced75e
Merge branch 'master-upstream-oet' into merge-upstream-260109
tgilon Jan 12, 2026
4cd7cdc
Merge branch 'master' into merge-upstream-260109
tgilon Jan 13, 2026
85b1c7d
feat: define data layer for tyndp specific data
tgilon Jan 13, 2026
e4da023
refactor: use rules attributes to define inputs
tgilon Jan 14, 2026
ca5ae43
refactor: fix merge conflicts in REUSE.toml
tgilon Jan 14, 2026
fddeeba
refactor: make tyndp rules conditional
tgilon Jan 14, 2026
3a30d7d
doc: integrate doc/data-retrieval.rst information in doc/tyndp-2024-b…
tgilon Jan 15, 2026
2fc6241
refactor: deprecate retrieve_additional_tyndp_data
tgilon Jan 15, 2026
1853520
chore: fix formatting and improve consistency in data layer doc
tgilon Jan 14, 2026
3c7f815
Merge branch 'master' into merge-upstream-260109
tgilon Jan 15, 2026
43bc422
doc: add release note
tgilon Jan 15, 2026
af0b4d5
refactor: transform pecd release workflow to adapt to data layer
tgilon Jan 15, 2026
da93e7b
fix: use input function to define clean_pecd_data input as branch eva…
tgilon Jan 16, 2026
3f6da9e
Merge branch 'master' into merge-upstream-260109
tgilon Jan 16, 2026
b954704
chore: adjust reuse.toml to reflect open-tyndp contributors work
tgilon Jan 16, 2026
164ce26
doc: update docstring of dataset_version
tgilon Jan 16, 2026
895eddf
feat: address edge case when no pre-built exists in get_pecd_prebuilt…
tgilon Jan 16, 2026
d85c4f7
doc: fix typo in versions.csv
tgilon Jan 16, 2026
632ed24
chore: update lockfile
tgilon Jan 16, 2026
67d17e7
[github-actions.ci] Update locked envs
tgilon Jan 16, 2026
a9abbad
fix: remove unused carriers from the interactive map configuration
tgilon Jan 16, 2026
80343c7
fix: fix inputs for clean_projects
tgilon Jan 16, 2026
ba4ed7c
fix: adjust dependencies for plotting rules in integration tests
tgilon Jan 16, 2026
d766a56
Apply suggestions from code review
tgilon Jan 21, 2026
45b64e6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 21, 2026
15a6232
doc: add tyndp_pecd entry in doc/data_inventory.csv
tgilon Jan 21, 2026
64a60d5
chore: update lockfile
tgilon Jan 21, 2026
3db517d
[github-actions.ci] Update locked envs
tgilon Jan 21, 2026
9277096
refactor: reduce diff with upstream in common.smk
tgilon Jan 21, 2026
d7d071c
doc: improve pre_built definition
tgilon Jan 21, 2026
be38747
refactor: add option increment_minor in prepare_pecd_release
tgilon Jan 21, 2026
bd47e65
Update rules/sb.smk
tgilon Jan 22, 2026
67d4ad6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 22, 2026
377fb0b
fix: add seawater nc to archive and versions.csv
tgilon Jan 22, 2026
0dac0b0
ci: fix ci cache update
tgilon Jan 22, 2026
51b0e57
fix: fix source typo for seawater
tgilon Jan 22, 2026
e166485
fix: seawater url
daniel-rdt Jan 22, 2026
2b87f85
fix: retrieve eez data from own archive in test (#1992)
lkstrp Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,14 @@ Closes # (if applicable).

## Checklist

<!-- Remove what doesn't apply. -->

- [ ] I tested my contribution locally and it works as intended.
- [ ] Code and workflow changes are sufficiently documented.
- [ ] Changed dependencies are added to `pixi.toml` (using `pixi add <dependency-name>`).
- [ ] Changes in configuration options are added in `config/config.default.yaml`.
- [ ] Changes in configuration options are documented in `doc/configtables/*.csv`.
- [ ] Changes in configuration options are added in `config/test/*.yaml`.
- [ ] Open-TYNDP SPDX license header added to all touched files.
- [ ] Sources of newly added data are documented in `doc/data_sources.rst`.
- [ ] For new data sources or versions, [these instructions](https://pypsa-eur.readthedocs.io/en/latest/data_sources.html) have been followed.
- [ ] New rules are documented in the appropriate `doc/*.rst` files.
- [ ] A release note `doc/release_notes.rst` is added.
- [ ] Major features are documented with up-to-date information in `README` and `doc/index.rst`.
Expand Down
34 changes: 30 additions & 4 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,23 @@ jobs:
shell: bash -l {0}

steps:
- uses: actions/checkout@v6

- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
src:
- 'scripts/**'
- 'rules/**'
- 'data/**'
- 'Snakefile'
- 'config/**'
- 'test/**'
- 'pixi.toml'
- 'pixi.lock'
- '.github/workflows/test.yaml'

- name: Free up disk space
run: |
echo "Initial disk space"
Expand All @@ -40,10 +57,12 @@ jobs:
sudo docker builder prune -a --force
echo "Final disk space"
df -h

- uses: actions/checkout@v6
- name: Skip - no source changes
if: steps.filter.outputs.src != 'true' && github.event_name != 'schedule'
run: echo "Skipping tests because no source code changes detected"

- name: Setup Pixi
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
uses: prefix-dev/setup-pixi@v0.9.3
with:
pixi-version: v0.59.0
Expand All @@ -53,49 +72,56 @@ jobs:
environments: open-tyndp

- name: Setup cache keys
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
run: |
echo "WEEK=$(date +'%Y%U')" >> $GITHUB_ENV # data and cutouts

- uses: actions/cache@v4
- uses: actions/cache@v5
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
with:
path: |
data
cutouts
key: data-cutouts-${{ env.WEEK }}

- name: Run pylint check on scripts
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
# check for undefined variables to reuse functions across scripts
run: |
pixi run pylint --disable=all --enable=E0601,E0606 --output-format=parseable scripts/add_* scripts/prepare_* scripts/solve_*

- name: Run snakemake test workflows (sb)
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
env:
SNAKEMAKE_STORAGE_CACHED_HTTP_CACHE: ""
SNAKEMAKE_STORAGE_CACHED_HTTP_SKIP_REMOTE_CHECKS: "1"
run: |
pixi run -e open-tyndp tyndp-sb-test

- name: Run snakemake test workflows (cba)
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
env:
SNAKEMAKE_STORAGE_CACHED_HTTP_CACHE: ""
SNAKEMAKE_STORAGE_CACHED_HTTP_SKIP_REMOTE_CHECKS: "1"
run: |
pixi run -e open-tyndp tyndp-cba-test

- name: Run snakemake test workflows (upstream)
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
env:
SNAKEMAKE_STORAGE_CACHED_HTTP_CACHE: ""
SNAKEMAKE_STORAGE_CACHED_HTTP_SKIP_REMOTE_CHECKS: "1"
run: |
pixi run -e open-tyndp integration-tests

- name: Run unit tests
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
run: |
pixi run -e open-tyndp unit-tests

- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: results-${{ matrix.os }}
path: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/update-lockfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
pixi workspace export conda-environment -e default envs/environment.yaml -n pypsa-eur

- name: Upload artifacts
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: lockfiles
path: |
Expand Down Expand Up @@ -75,12 +75,12 @@ jobs:
steps:
- uses: actions/checkout@v6
- name: Download all artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
with:
name: lockfiles

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update-locked-environment
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@

master

.env

.snakemake*
.ipynb_checkpoints
__pycache__
*.egg-info
*dconf
gurobi.log
.vscode
Expand Down Expand Up @@ -37,7 +40,6 @@ config/config.yaml
config/scenarios.yaml
config/config.private.yaml

dconf
/data/links_p_nom.csv
/data/*totals.csv
/data/biomass*
Expand All @@ -50,7 +52,6 @@ dconf
/data/transport_data.csv
/data/.nfs*
/data/retro/*
/data/bundle/nuts*
data/gas_network/scigrid-gas/
data/costs_*.csv
!/data/custom_costs.csv
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ repos:
# Run ruff to lint and format
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.13.3
rev: v0.14.10
hooks:
# Run the linter.
- id: ruff
Expand Down Expand Up @@ -58,7 +58,7 @@ repos:

# Check for FSFE REUSE compliance (licensing)
- repo: https://github.com/fsfe/reuse-tool
rev: v6.0.0
rev: v6.2.0
hooks:
- id: reuse-lint-file

Expand Down
Loading