Bugfix: integrate build_bus_regions
into base_network
#1051
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Unfortunately, #1013 introduced a regression that can be a little hard to detect. It stems from the bad practice of using the input of the rule
build_bus_regions
as and output on this line: https://github.com/PyPSA/pypsa-eur/blob/master/scripts/build_bus_regions.py#L218. That's a no no!What happens is that snakemake can run
build_bus_regions
in parallel with other rules usingbase.nc
as an input, and cryptic errors arise when one rule tries to readbase.nc
whilebuild_bus_regions
is writing tobase.nc
. An example of the kind of problem I got:Changes proposed in this Pull Request
The most logical solution seems to be merging the
base_network
andbuild_bus_regions
rules; the alternative would be to introduce some intermediate file likebase_without_shapes.nc
and thenbase.nc
or firstbase.nc
and thenbase_with_shapes.nc
. But that seems rather inelegant.Checklist
envs/environment.yaml
.config.default.yaml
.doc/configtables/*.csv
.doc/release_notes.rst
is added.