Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
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
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
347fd27
fix: fix compatibility with numpy >=2 (#1958)
coroa Jan 12, 2026
fbeb4d8
fix: Version controlled data layer (#1963)
euronion Jan 12, 2026
ab01bff
[github-actions.ci] Update locked envs (#1953)
github-actions[bot] Jan 14, 2026
09fed80
Bugfix pypsa eur as snakemake module (#1967)
jonathan-peel Jan 14, 2026
006d74e
doc: Correct section indent for data inventory (#1973)
euronion Jan 14, 2026
8b06487
Config Validation with Pydantic (#1912)
lkstrp Jan 15, 2026
cd00bb3
Update lock file workflow to remove push trigger (#1975)
lkstrp Jan 15, 2026
857c76b
chore: fix formatting and improve consistency in data layer doc (#1977)
tgilon Jan 15, 2026
8608d15
follow up on #1977 (#1980)
lkstrp Jan 15, 2026
6b0bdd5
Fix atlite cutouts default value (#1979)
bobbyxng Jan 15, 2026
1c7617e
Revert "Update lock file workflow to remove push trigger (#1975)" (#1…
lkstrp Jan 16, 2026
04d35de
Add user friendly messages to snakemake workflow (#1846)
willu47 Jan 16, 2026
a81e100
process eurostat energy balances via API
fneum Jan 18, 2026
46c01e8
Revert "process eurostat energy balances via API"
fneum Jan 18, 2026
2b76489
fix: avoid netcdf4 version 1.7.4 (#1988)
FabianHofmann Jan 19, 2026
dcc3c00
Update locked environment files for all platforms (#1983)
github-actions[bot] Jan 19, 2026
1e3e24b
Updated technology-data to v0.13.4. (#1985)
bobbyxng Jan 20, 2026
3c43925
Fix mock snakemake for Snakemake API changes. (#1984)
bobbyxng Jan 20, 2026
c49f04c
fix: retrieve eez data from own archive in test (#1992)
lkstrp Jan 20, 2026
21477be
Bugfix industry only (#1971)
jonathan-peel Jan 20, 2026
44f260a
Fix bug of no gas infrastructure when no CCGT: gas implemented. (#1993)
jonathan-peel Jan 21, 2026
f807031
feat: move archive from zenodo to s3 bucket (#1960)
lkstrp Jan 21, 2026
6bee929
update linopy pin (#1990)
FabianHofmann Jan 21, 2026
491ff9f
feat: remove and disallow setting credentials in config (#1989)
lkstrp Jan 21, 2026
f07ada9
Update locked environment files for all platforms (#1994)
github-actions[bot] Jan 21, 2026
18842da
fix: update costs for solar-hsat in myopic optimization; small refact…
lindnemi Jan 21, 2026
9450f99
Fix raw OSM build and release process (#1956)
brynpickering Jan 22, 2026
630d37d
feat: add electricitymaps and entsoepy bidding zone data to data laye…
daniel-rdt Jan 22, 2026
ff78022
Add Xpress solver configuration support (#2006)
brunoficoxpress Jan 24, 2026
adc14a9
fix: remove slurm dependency from windows environments (#2009)
coroa Jan 26, 2026
bca9f16
fix: follow up on added bidding zones datasets (#2007)
lkstrp Jan 26, 2026
3f04d24
Update locked environment files for all platforms (#2011)
github-actions[bot] Jan 26, 2026
88acb83
code: Fix logic for extracting WDPA and WDPA marine (#2010)
euronion Jan 26, 2026
547e8e8
Fix the WDPA links to function on Windows (#2008)
Eric-Nitschke Jan 26, 2026
c3dcdb0
Fix `min/max_shore_distance` param access in availability matrix calc…
brynpickering Jan 28, 2026
e87b0c6
chore(deps): bump prefix-dev/setup-pixi in the github-actions group (…
dependabot[bot] Jan 29, 2026
c5d57a7
Fix snakemake message for build_electricity/clean_osm_data (#2022)
bobbyxng Jan 29, 2026
9586d8f
Merge remote-tracking branch 'upstream/master' into merge-upstream-26…
lindnemi Jan 30, 2026
ee46d2a
adjust config to upstream changes
lindnemi Jan 30, 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
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
token: ${{ steps.generate-token.outputs.token }}

- name: Setup Pixi
uses: prefix-dev/setup-pixi@v0.9.3
uses: prefix-dev/setup-pixi@v0.9.4
with:
pixi-version: v0.59.0
cache: true
Expand Down
60 changes: 43 additions & 17 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test workflows
name: Test

on:
push:
Expand All @@ -17,8 +17,30 @@ concurrency:
cancel-in-progress: true

jobs:
run-tests:
name: OS
unit-tests:
name: Unit
runs-on: ubuntu-latest

defaults:
run:
shell: bash -l {0}

steps:
- uses: actions/checkout@v6

- name: Setup Pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
pixi-version: v0.59.0
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'master' }}

- name: Run unit tests
run: |
pixi run unit-tests

integration-tests:
name: Integration
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
Expand All @@ -43,7 +65,6 @@ jobs:
- 'data/**'
- 'Snakefile'
- 'config/**'
- 'test/**'
- 'pixi.toml'
- 'pixi.lock'
- '.github/workflows/test.yaml'
Expand All @@ -58,31 +79,41 @@ jobs:
sudo docker builder prune -a --force
echo "Final disk space"
df -h

- 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
uses: prefix-dev/setup-pixi@v0.9.4
with:
pixi-version: v0.59.0
cache: true
# Do not cache in branches
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'master' }}

- 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
echo "WEEK=$(date +'%Y%U')" >> $GITHUB_ENV # data
echo "MONTH=$(date +'%Y%m')" >> $GITHUB_ENV # cutouts
echo "VERSIONS_HASH=${{ hashFiles('data/versions.csv') }}" >> $GITHUB_ENV

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

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

- name: Restore git-tracked files in data/
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
run: git checkout HEAD -- data/

- name: Run pylint check on scripts
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
Expand All @@ -98,11 +129,6 @@ jobs:
run: |
pixi run integration-tests

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

- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-lockfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v6

- name: Setup Pixi
uses: prefix-dev/setup-pixi@v0.9.3
uses: prefix-dev/setup-pixi@v0.9.4
with:
pixi-version: v0.59.0

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ gurobi.log
/cutouts
/tmp
doc/_build
_build

/scripts/old
/scripts/create_scenarios.py
Expand Down Expand Up @@ -65,6 +66,8 @@ d1gam3xoknrgr2.cloudfront.net/

*~

*.egg-info

*.pyc

*.xlsx
Expand Down
3 changes: 1 addition & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# SPDX-FileCopyrightText: Contributors to PyPSA-Eur <https://github.com/pypsa/pypsa-eur>
#
# SPDX-License-Identifier: CC0-1.0

exclude: "^LICENSES"
exclude: "^LICENSES|^config/schema\\.json$|^config/config\\.default\\.yaml$"

ci:
autoupdate_schedule: quarterly
Expand Down
6 changes: 6 additions & 0 deletions Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ import yaml
import sys
from os.path import normpath, exists, join
from shutil import copyfile, move, rmtree, unpack_archive
from dotenv import load_dotenv
from snakemake.utils import min_version

load_dotenv()

min_version("8.11")

from scripts._helpers import (
Expand All @@ -17,13 +20,16 @@ from scripts._helpers import (
get_shadow,
path_provider,
)
from scripts.lib.validation.config import validate_config


configfile: "config/config.default.yaml"
configfile: "config/plotting.default.yaml"
configfile: "config/config.de.yaml"


validate_config(config)

run = config["run"]
scenarios = get_scenarios(run)
RDIR = get_rdir(run)
Expand Down
1 change: 1 addition & 0 deletions config/config.de.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,7 @@ solving:
runtime: 12h
mem_mb: 70000 #30000 is OK for 22 nodes, 365H; 140000 for 22 nodes 3H; 400000 for 44 nodes 3H
options:
custom_extra_functionality: "../scripts/pypsa-de/additional_functionality.py"
assign_all_duals: true
load_shedding: false
skip_iterations: true # settings for post-discretization: false
Expand Down
Loading
Loading