From c521a3d8f0f09156a82ea367231ff24967bd4a5b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 11:43:38 +0200 Subject: [PATCH 1/6] Update locked environment files for all platforms (#1716) Co-authored-by: lkstrp <62255395+lkstrp@users.noreply.github.com> --- envs/linux-64.lock.yaml | 209 ++++++++++++++++++++------------------- envs/osx-64.lock.yaml | 171 ++++++++++++++++---------------- envs/osx-arm64.lock.yaml | 181 ++++++++++++++++----------------- envs/win-64.lock.yaml | 185 +++++++++++++++++----------------- 4 files changed, 375 insertions(+), 371 deletions(-) diff --git a/envs/linux-64.lock.yaml b/envs/linux-64.lock.yaml index 12226e3289..d981e474c4 100644 --- a/envs/linux-64.lock.yaml +++ b/envs/linux-64.lock.yaml @@ -3,7 +3,7 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: ced4943098a81eb1020ac5a833a1059d687e15573fe0431a3d7400d9fe711c44 +# input_hash: c1e546eb2254f61bf94878e96a6c74b3a652ac31876e743714771dd11f0c714c name: pypsa-eur channels: @@ -13,14 +13,14 @@ dependencies: - _libgcc_mutex=0.1=conda_forge - _openmp_mutex=4.5=2_gnu - _python_abi3_support=1.0=hd8ed1ab_2 - - adwaita-icon-theme=48.0=unix_0 + - adwaita-icon-theme=48.1=unix_0 - affine=2.4.0=pyhd8ed1ab_1 - alsa-lib=1.2.14=hb9d3cd8_0 - ampl-asl=1.0.0=h5888daf_2 - amply=0.1.6=pyhd8ed1ab_1 - anyio=4.9.0=pyh29332c3_0 - appdirs=1.4.4=pyhd8ed1ab_1 - - argon2-cffi=23.1.0=pyhd8ed1ab_1 + - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=21.2.0=py312h66e93f0_5 - argparse-dataclass=2.0.0=pyhd8ed1ab_0 - arrow=1.3.0=pyhd8ed1ab_1 @@ -32,19 +32,19 @@ dependencies: - atk-1.0=2.38.0=h04ea711_2 - atlite=0.4.1=pyhd8ed1ab_0 - attrs=25.3.0=pyh71513ae_0 - - aws-c-auth=0.9.0=h3318fae_10 - - aws-c-cal=0.9.1=h5e3027f_0 + - aws-c-auth=0.9.0=hbfa7f16_15 + - aws-c-cal=0.9.2=h5e3027f_0 - aws-c-common=0.12.3=hb9d3cd8_0 - aws-c-compression=0.3.1=hafb2847_5 - - aws-c-event-stream=0.5.4=haaa725d_10 - - aws-c-http=0.10.1=hd7992d4_3 - - aws-c-io=0.19.1=h93b6419_1 - - aws-c-mqtt=0.13.0=h7b3935a_4 - - aws-c-s3=0.8.0=h365f71b_1 + - aws-c-event-stream=0.5.4=h76f0014_12 + - aws-c-http=0.10.2=h015de20_2 + - aws-c-io=0.20.1=hdfce8c9_0 + - aws-c-mqtt=0.13.1=h1e5e6c0_3 + - aws-c-s3=0.8.1=h5e174a9_3 - aws-c-sdkutils=0.2.4=hafb2847_0 - aws-checksums=0.2.7=hafb2847_1 - - aws-crt-cpp=0.32.6=h96107e3_3 - - aws-sdk-cpp=1.11.510=hf282fd2_9 + - aws-crt-cpp=0.32.8=ha15c642_6 + - aws-sdk-cpp=1.11.510=h4607db7_10 - azure-core-cpp=1.14.0=h5cfcd09_0 - azure-identity-cpp=1.10.0=h113e628_0 - azure-storage-blobs-cpp=12.13.0=h3cf044e_1 @@ -59,19 +59,19 @@ dependencies: - bokeh=3.7.3=pyhd8ed1ab_0 - bottleneck=1.5.0=py312hc0a28a1_0 - branca=0.8.1=pyhd8ed1ab_0 - - brotli=1.1.0=hb9d3cd8_2 - - brotli-bin=1.1.0=hb9d3cd8_2 - - brotli-python=1.1.0=py312h2ec8cdc_2 + - brotli=1.1.0=hb9d3cd8_3 + - brotli-bin=1.1.0=hb9d3cd8_3 + - brotli-python=1.1.0=py312h2ec8cdc_3 - bzip2=1.0.8=h4bc722e_7 - c-ares=1.34.5=hb9d3cd8_0 - - c-blosc2=2.17.1=h3122c55_0 - - ca-certificates=2025.4.26=hbd8a1cb_0 + - c-blosc2=2.18.0=h3122c55_0 + - ca-certificates=2025.6.15=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cairo=1.18.4=h3394656_0 - cartopy=0.24.0=py312hf9745cd_0 - cdsapi=0.7.6=pyhd8ed1ab_0 - - certifi=2025.4.26=pyhd8ed1ab_0 + - certifi=2025.6.15=pyhd8ed1ab_0 - cffi=1.17.1=py312h06ac9bb_0 - cfgv=3.3.1=pyhd8ed1ab_1 - cftime=1.6.4=py312hc0a28a1_1 @@ -93,10 +93,10 @@ dependencies: - contourpy=1.3.2=py312h68727a3_0 - country_converter=1.2=pyhd8ed1ab_0 - cppad=20250000.2=h5888daf_0 - - cpython=3.12.10=py312hd8ed1ab_0 - - cryptography=45.0.3=py312hda17c39_0 + - cpython=3.12.11=py312hd8ed1ab_0 + - cryptography=45.0.4=py312hda17c39_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cyrus-sasl=2.1.27=h54b06d7_7 + - cyrus-sasl=2.1.28=hd9c7081_0 - cytoolz=1.0.1=py312h66e93f0_0 - dask=2025.5.1=pyhd8ed1ab_0 - dask-core=2025.5.1=pyhd8ed1ab_0 @@ -112,7 +112,7 @@ dependencies: - docutils=0.21.2=pyhd8ed1ab_1 - double-conversion=3.3.1=h5888daf_0 - dpath=2.2.0=pyha770c72_0 - - ecmwf-datastores-client=0.1.0=pyhd8ed1ab_0 + - ecmwf-datastores-client=0.2.0=pyhd8ed1ab_0 - entsoe-py=0.6.19=pyhd8ed1ab_0 - epoxy=1.5.10=h166bdaf_1 - et_xmlfile=2.0.0=pyhd8ed1ab_1 @@ -120,7 +120,7 @@ dependencies: - executing=2.2.0=pyhd8ed1ab_0 - filelock=3.18.0=pyhd8ed1ab_0 - fiona=1.10.1=py312h02b19dd_3 - - folium=0.19.6=pyhd8ed1ab_0 + - folium=0.20.0=pyhd8ed1ab_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-source-code-pro=2.038=h77eed37_0 @@ -128,7 +128,7 @@ dependencies: - fontconfig=2.15.0=h7e30c49_1 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - - fonttools=4.58.1=py312h178313f_0 + - fonttools=4.58.4=py312h178313f_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.13.3=ha770c72_1 - freexl=2.0.0=h9dce30a_2 @@ -137,8 +137,8 @@ dependencies: - gdk-pixbuf=2.42.12=hb9ae30d_0 - geographiclib=2.0=pyhd8ed1ab_1 - geojson=3.2.0=pyhd8ed1ab_0 - - geopandas=1.0.1=pyhd8ed1ab_3 - - geopandas-base=1.0.1=pyha770c72_3 + - geopandas=1.1.0=pyhd8ed1ab_0 + - geopandas-base=1.1.0=pyha770c72_0 - geopy=2.4.1=pyhd8ed1ab_2 - geos=3.13.1=h97f6797_0 - geotiff=1.7.4=h239500f_2 @@ -150,8 +150,8 @@ dependencies: - glog=0.7.1=hbabe93e_0 - glpk=5.0=h445213a_0 - gmp=6.3.0=hac33072_2 - - graphite2=1.3.13=h59595ed_1003 - - graphviz=12.2.1=h5ae0cbf_1 + - graphite2=1.3.14=h5888daf_0 + - graphviz=13.0.1=hcae58fd_0 - gtk3=3.24.43=h0c6a113_5 - gts=0.7.6=h977cf35_4 - h11=0.16.0=pyhd8ed1ab_0 @@ -160,7 +160,7 @@ dependencies: - hdf4=4.2.15=h2a13503_7 - hdf5=1.14.6=nompi_h2d575fe_101 - hicolor-icon-theme=0.17=ha770c72_2 - - highspy=1.10.0=np20py312ha7205f5_1 + - highspy=1.11.0=np20py312ha7205f5_0 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 @@ -206,27 +206,27 @@ dependencies: - kiwisolver=1.4.8=py312h84d6215_0 - krb5=1.21.3=h659f571_0 - lcms2=2.17=h717163a_0 - - ld_impl_linux-64=2.43=h712a8e2_4 + - ld_impl_linux-64=2.43=h1423503_5 - lerc=4.0.0=h0aef613_1 - libabseil=20250127.1=cxx17_hbbce691_0 - - libaec=1.1.3=h59595ed_0 - - libarchive=3.7.7=h75ea233_4 - - libarrow=20.0.0=h6b3f9de_5_cpu - - libarrow-acero=20.0.0=hcb10f89_5_cpu - - libarrow-dataset=20.0.0=hcb10f89_5_cpu - - libarrow-substrait=20.0.0=h1bed206_5_cpu - - libblas=3.9.0=31_h59b9bed_openblas - - libbrotlicommon=1.1.0=hb9d3cd8_2 - - libbrotlidec=1.1.0=hb9d3cd8_2 - - libbrotlienc=1.1.0=hb9d3cd8_2 - - libcblas=3.9.0=31_he106b2a_openblas - - libclang-cpp20.1=20.1.6=default_h1df26ce_0 - - libclang13=20.1.6=default_he06ed0a_0 + - libaec=1.1.4=h3f801dc_0 + - libarchive=3.8.1=gpl_h98cc613_100 + - libarrow=20.0.0=h314c690_7_cpu + - libarrow-acero=20.0.0=hcb10f89_7_cpu + - libarrow-dataset=20.0.0=hcb10f89_7_cpu + - libarrow-substrait=20.0.0=h1bed206_7_cpu + - libblas=3.9.0=32_h59b9bed_openblas + - libbrotlicommon=1.1.0=hb9d3cd8_3 + - libbrotlidec=1.1.0=hb9d3cd8_3 + - libbrotlienc=1.1.0=hb9d3cd8_3 + - libcblas=3.9.0=32_he106b2a_openblas + - libclang-cpp20.1=20.1.7=default_h1df26ce_0 + - libclang13=20.1.7=default_he06ed0a_0 - libcrc32c=1.1.2=h9c3ff4c_0 - - libcups=2.3.3=h4637d8d_4 - - libcurl=8.14.0=h332b0f4_0 + - libcups=2.3.3=hb8b1518_5 + - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - - libdrm=2.4.124=hb9d3cd8_0 + - libdrm=2.4.125=hb9d3cd8_0 - libedit=3.1.20250104=pl5321h7949ede_0 - libegl=1.7.0=ha4b6fd6_2 - libev=4.33=hd590300_2 @@ -238,10 +238,10 @@ dependencies: - libgcc=15.1.0=h767d61c_2 - libgcc-ng=15.1.0=h69a702a_2 - libgd=2.3.3=h6f5c62b_11 - - libgdal-core=3.10.3=h86883d2_10 - - libgdal-hdf4=3.10.3=h9f77858_10 - - libgdal-hdf5=3.10.3=heb3e146_10 - - libgdal-netcdf=3.10.3=hda9de04_10 + - libgdal-core=3.10.3=hcac4edf_11 + - libgdal-hdf4=3.10.3=hbe05c68_11 + - libgdal-hdf5=3.10.3=hc4e49b7_11 + - libgdal-netcdf=3.10.3=h6b150f0_11 - libgfortran=15.1.0=h69a702a_2 - libgfortran-ng=15.1.0=h69a702a_2 - libgfortran5=15.1.0=hcea5267_2 @@ -257,22 +257,22 @@ dependencies: - libiconv=1.18=h4ce23a2_1 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - libkml=1.3.0=hf539b9f_1021 - - liblapack=3.9.0=31_h7ac8fdf_openblas - - liblapacke=3.9.0=31_he2f377e_openblas - - libllvm20=20.1.6=he9d0ab4_0 - - liblzma=5.8.1=hb9d3cd8_1 - - liblzma-devel=5.8.1=hb9d3cd8_1 + - liblapack=3.9.0=32_h7ac8fdf_openblas + - liblapacke=3.9.0=32_he2f377e_openblas + - libllvm20=20.1.7=he9d0ab4_0 + - liblzma=5.8.1=hb9d3cd8_2 + - liblzma-devel=5.8.1=hb9d3cd8_2 - libnetcdf=4.9.2=nompi_h0134ee8_117 - libnghttp2=1.64.0=h161d5f1_0 - - libnsl=2.0.1=hd590300_0 + - libnsl=2.0.1=hb9d3cd8_1 - libntlm=1.8=hb9d3cd8_0 - - libopenblas=0.3.29=pthreads_h94d23a6_0 + - libopenblas=0.3.30=pthreads_h94d23a6_0 - libopengl=1.7.0=ha4b6fd6_2 - libopentelemetry-cpp=1.21.0=hd1b1c89_0 - libopentelemetry-cpp-headers=1.21.0=ha770c72_0 - - libparquet=20.0.0=h081d1f1_5_cpu - - libpciaccess=0.18=hd590300_0 - - libpng=1.6.47=h943b412_0 + - libparquet=20.0.0=h081d1f1_7_cpu + - libpciaccess=0.18=hb9d3cd8_0 + - libpng=1.6.49=h943b412_0 - libpq=17.5=h27ae623_0 - libprotobuf=5.29.3=h501fc15_1 - libre2-11=2024.07.02=hba17884_3 @@ -282,7 +282,7 @@ dependencies: - libsodium=1.0.20=h4ab18f5_0 - libspatialite=5.1.0=he17ca71_14 - libspral=2025.03.06=h39c1cf3_0 - - libsqlite=3.50.0=hee588c1_0 + - libsqlite=3.50.1=hee588c1_4 - libssh2=1.11.1=hcf80075_0 - libstdcxx=15.1.0=h8f9b012_2 - libstdcxx-ng=15.1.0=h4852527_2 @@ -315,19 +315,19 @@ dependencies: - minizip=4.0.10=h05a5f5f_0 - mistune=3.1.3=pyh29332c3_0 - mpfr=4.2.1=h90cbb55_3 - - msgpack-python=1.1.0=py312h68727a3_0 + - msgpack-python=1.1.1=py312h68727a3_0 - multiurl=0.3.5=pyhd8ed1ab_0 - mumps-include=5.7.3=h82cca05_10 - mumps-seq=5.7.3=h27a6a8b_0 - - munkres=1.1.4=pyh9f0ad1d_0 - - narwhals=1.41.0=pyhe01879c_0 + - munkres=1.1.4=pyhd8ed1ab_1 + - narwhals=1.43.1=pyhe01879c_0 - nbclient=0.10.2=pyhd8ed1ab_0 - nbconvert-core=7.16.6=pyh29332c3_0 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h2d0b736_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - netcdf4=1.7.2=nompi_py312h3805cb1_102 - - networkx=3.4.2=pyh267e887_2 + - networkx=3.5=pyhe01879c_0 - nlohmann_json=3.12.0=h3f2d84a_0 - nodeenv=1.9.1=pyhd8ed1ab_1 - nomkl=1.0=h5ca1d4c_0 @@ -335,7 +335,7 @@ dependencies: - notebook-shim=0.2.4=pyhd8ed1ab_1 - numexpr=2.10.2=py312h6a710ac_100 - numpy=1.26.4=py312heda63a1_0 - - oauthlib=3.2.2=pyhd8ed1ab_1 + - oauthlib=3.3.1=pyhd8ed1ab_0 - openjpeg=2.5.3=h5fbd93e_0 - openldap=2.6.10=he970967_0 - openpyxl=3.1.5=py312h710cb58_1 @@ -343,7 +343,7 @@ dependencies: - orc=2.1.2=h17f744e_0 - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - - pandas=2.2.3=py312hf9745cd_3 + - pandas=2.3.0=py312hf9745cd_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - pango=1.56.3=h9ac818e_1 - parso=0.8.4=pyhd8ed1ab_1 @@ -354,48 +354,49 @@ dependencies: - pickleshare=0.7.5=pyhd8ed1ab_1004 - pillow=11.2.1=py312h80c1187_0 - pip=25.1.1=pyh8b19718_0 - - pixman=0.46.0=h29eaf8c_0 + - pixman=0.46.2=h29eaf8c_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2 - plac=1.4.5=pyhd8ed1ab_0 - platformdirs=4.3.8=pyhe01879c_0 + - plotly=6.1.2=pyhd8ed1ab_0 - pluggy=1.6.0=pyhd8ed1ab_0 - - polars=1.30.0=default_h1443d73_0 - - polars-default=1.30.0=py39hfac2b71_0 + - polars=1.31.0=default_h1650462_0 + - polars-default=1.31.0=py39hfac2b71_0 - powerplantmatching=0.7.1=pyhd8ed1ab_0 - pre-commit=4.2.0=pyha770c72_0 - progressbar2=4.5.0=pyhd8ed1ab_1 - - proj=9.6.0=h0054346_1 + - proj=9.6.2=h0054346_0 - prometheus-cpp=1.3.0=ha5d0236_0 - - prometheus_client=0.22.0=pyhd8ed1ab_0 + - prometheus_client=0.22.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.51=pyha770c72_0 - prompt_toolkit=3.0.51=hd8ed1ab_0 - psutil=7.0.0=py312h66e93f0_0 - pthread-stubs=0.4=hb9d3cd8_1002 - ptyprocess=0.7.0=pyhd8ed1ab_1 - - pulp=2.8.0=py312hd0750ca_1 + - pulp=2.8.0=py312hd0750ca_2 - pure_eval=0.2.3=pyhd8ed1ab_1 - py-cpuinfo=9.0.0=pyhd8ed1ab_1 - pyarrow=20.0.0=py312h7900ff3_0 - pyarrow-core=20.0.0=py312h01725c0_0_cpu - pycountry=24.6.1=pyhd8ed1ab_0 - pycparser=2.22=pyh29332c3_1 - - pygments=2.19.1=pyhd8ed1ab_0 + - pygments=2.19.2=pyhd8ed1ab_0 - pyjwt=2.10.1=pyhd8ed1ab_0 - pylint=3.3.7=pyhe01879c_0 - pyogrio=0.11.0=py312h02b19dd_0 - pyparsing=3.2.3=pyhd8ed1ab_1 - pyproj=3.7.1=py312h03c6e1f_1 - - pypsa=0.34.1=pyhd8ed1ab_0 + - pypsa=0.35.0=pyhd8ed1ab_0 - pyscipopt=5.5.0=py312h2ec8cdc_0 - pyshp=2.3.1=pyhd8ed1ab_1 - - pyside6=6.9.0=py312h91f0f75_0 + - pyside6=6.9.1=py312hdb827e4_0 - pysocks=1.7.1=pyha55dd90_7 - - pytables=3.10.2=py312h4f06452_4 - - pytest=8.3.5=pyhd8ed1ab_0 - - python=3.12.10=h9e4cc4f_0_cpython + - pytables=3.10.2=py312h09a4e84_5 + - pytest=8.4.1=pyhd8ed1ab_0 + - python=3.12.11=h9e4cc4f_0_cpython - python-dateutil=2.9.0.post0=pyhff2d567_1 - python-fastjsonschema=2.21.1=pyhd8ed1ab_0 - - python-gil=3.12.10=hd8ed1ab_0 + - python-gil=3.12.11=hd8ed1ab_0 - python-json-logger=2.0.7=pyhd8ed1ab_0 - python-tzdata=2025.2=pyhd8ed1ab_0 - python-utils=3.9.1=pyhff2d567_1 @@ -403,49 +404,49 @@ dependencies: - pytz=2025.2=pyhd8ed1ab_0 - pyxlsb=1.0.10=pyhd8ed1ab_0 - pyyaml=6.0.2=py312h178313f_2 - - pyzmq=26.4.0=py312hbf22597_0 + - pyzmq=27.0.0=py312hbf22597_0 - qhull=2020.2=h434a139_5 - - qt6-main=6.9.0=h0384650_3 + - qt6-main=6.9.1=h0384650_0 - rasterio=1.4.3=py312h021bea1_1 - re2=2024.07.02=h9925aae_3 - readline=8.2=h8c095d6_2 - referencing=0.36.2=pyh29332c3_0 - - requests=2.32.3=pyhd8ed1ab_1 + - requests=2.32.4=pyhd8ed1ab_0 - requests-oauthlib=1.4.0=pyhd8ed1ab_0 - reretry=0.11.8=pyhd8ed1ab_1 - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rioxarray=0.19.0=pyhd8ed1ab_0 - rpds-py=0.25.1=py312h680f630_0 - - ruff=0.11.12=py312h1d08497_0 - - s2n=1.5.19=h763c568_0 - - scikit-learn=1.6.1=py312h7a48858_0 + - ruff=0.12.0=py312h1d08497_0 + - s2n=1.5.21=h7ab7c64_0 + - scikit-learn=1.7.0=py312h7a48858_1 - scip=9.2.2=h072bc7a_2 - scipy=1.15.2=py312ha707e6e_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - send2trash=1.8.3=pyh0d859eb_1 - - setuptools=80.8.0=pyhff2d567_0 + - setuptools=80.9.0=pyhff2d567_0 - shapely=2.0.7=py312h21f5128_1 - six=1.17.0=pyhd8ed1ab_0 - smart_open=7.1.0=pyhd8ed1ab_0 - smmap=5.0.2=pyhd8ed1ab_0 - snakemake-executor-plugin-cluster-generic=1.0.9=pyhdfd78af_0 - - snakemake-executor-plugin-slurm=1.3.6=pyhdfd78af_0 + - snakemake-executor-plugin-slurm=1.4.0=pyhdfd78af_0 - snakemake-executor-plugin-slurm-jobstep=0.3.0=pyhdfd78af_0 - snakemake-interface-common=1.18.0=pyhdfd78af_0 - - snakemake-interface-executor-plugins=9.3.5=pyhdfd78af_0 + - snakemake-interface-executor-plugins=9.3.6=pyhdfd78af_0 - snakemake-interface-logger-plugins=1.2.3=pyhdfd78af_0 - snakemake-interface-report-plugins=1.1.0=pyhdfd78af_0 - snakemake-interface-storage-plugins=4.2.1=pyhdfd78af_0 - - snakemake-minimal=9.5.1=pyhdfd78af_0 + - snakemake-minimal=9.6.1=pyhdfd78af_0 - snakemake-storage-plugin-http=0.3.0=pyhdfd78af_0 - snappy=1.2.1=h8bd8927_1 - sniffio=1.3.1=pyhd8ed1ab_1 - snuggs=1.4.7=pyhd8ed1ab_2 - sortedcontainers=2.4.0=pyhd8ed1ab_1 - soupsieve=2.7=pyhd8ed1ab_0 - - sqlite=3.50.0=h9eae976_0 + - sqlite=3.50.1=h9eae976_4 - stack_data=0.6.3=pyhd8ed1ab_1 - statsmodels=0.14.4=py312hc0a28a1_0 - tabulate=0.9.0=pyhd8ed1ab_2 @@ -457,14 +458,14 @@ dependencies: - tinycss2=1.4.0=pyhd8ed1ab_0 - tk=8.6.13=noxft_hd72426e_102 - tomli=2.2.1=pyhd8ed1ab_1 - - tomlkit=0.13.2=pyha770c72_1 + - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - tornado=6.5.1=py312h66e93f0_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - types-python-dateutil=2.9.0.20250516=pyhd8ed1ab_0 - - typing-extensions=4.13.2=h0e9735f_0 - - typing_extensions=4.13.2=pyh29332c3_0 + - typing-extensions=4.14.0=h32cad80_0 + - typing_extensions=4.14.0=pyhe01879c_0 - typing_utils=0.1.0=pyhd8ed1ab_1 - tzdata=2025b=h78e105d_0 - ukkonen=1.0.1=py312h68727a3_5 @@ -472,7 +473,7 @@ dependencies: - unidecode=1.3.8=pyh29332c3_1 - uri-template=1.3.0=pyhd8ed1ab_1 - uriparser=0.9.8=hac33072_0 - - urllib3=2.4.0=pyhd8ed1ab_0 + - urllib3=2.5.0=pyhd8ed1ab_0 - validators=0.35.0=pyhd8ed1ab_0 - virtualenv=20.31.2=pyhd8ed1ab_0 - wayland=1.23.1=h3e06ad9_1 @@ -483,15 +484,15 @@ dependencies: - wheel=0.45.1=pyhd8ed1ab_1 - widgetsnbextension=4.0.14=pyhd8ed1ab_0 - wrapt=1.17.2=py312h66e93f0_0 - - xarray=2025.4.0=pyhd8ed1ab_0 - - xcb-util=0.4.1=hb711507_2 + - xarray=2025.6.1=pyhd8ed1ab_1 + - xcb-util=0.4.1=h4f16b4b_2 - xcb-util-cursor=0.1.5=hb9d3cd8_0 - xcb-util-image=0.4.0=hb711507_2 - xcb-util-keysyms=0.4.1=hb711507_0 - xcb-util-renderutil=0.3.10=hb711507_0 - xcb-util-wm=0.4.2=hb711507_0 - xerces-c=3.2.5=h988505b_2 - - xkeyboard-config=2.44=hb9d3cd8_0 + - xkeyboard-config=2.45=hb9d3cd8_0 - xlrd=2.0.1=pyhd8ed1ab_3 - xorg-libice=1.1.2=hb9d3cd8_0 - xorg-libsm=1.2.6=he73a12e_0 @@ -510,14 +511,14 @@ dependencies: - xorg-libxtst=1.2.5=hb9d3cd8_3 - xorg-libxxf86vm=1.1.6=hb9d3cd8_0 - xyzservices=2025.4.0=pyhd8ed1ab_0 - - xz=5.8.1=hbcc6ac9_1 - - xz-gpl-tools=5.8.1=hbcc6ac9_1 - - xz-tools=5.8.1=hb9d3cd8_1 + - xz=5.8.1=hbcc6ac9_2 + - xz-gpl-tools=5.8.1=hbcc6ac9_2 + - xz-tools=5.8.1=hb9d3cd8_2 - yaml=0.2.5=h7f98852_2 - - yte=1.7.0=pyha770c72_1 + - yte=1.8.1=pyha770c72_0 - zeromq=4.3.5=h3b0a872_7 - zict=3.0.0=pyhd8ed1ab_1 - - zipp=3.22.0=pyhd8ed1ab_0 + - zipp=3.23.0=pyhd8ed1ab_0 - zlib=1.3.1=hb9d3cd8_2 - zlib-ng=2.2.4=h7955e40_0 - zstandard=0.23.0=py312h66e93f0_2 @@ -526,4 +527,4 @@ dependencies: - gurobipy == 12.0.2 --hash=sha256:111d32393a39a3e2ddd5ead1752731d388b3c685b73550c6b0ca9a45d954c364 - ply == 3.11 --hash=sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce - pyomo == 6.9.2 --hash=sha256:7d890f67053d10d89a3a2b8bc3901dc7d926fbf225b4bd219167c00f9550a5ff - - tsam == 2.3.7 --hash=sha256:8b102ec4d9991630fd39b76807ea639df14fb6013af37c574f5c343e26fa1cf5 + - tsam == 2.3.9 --hash=sha256:edcc4febb9e1dacc028bc819d710974ede8f563467c3d235a250f46416f93a1b diff --git a/envs/osx-64.lock.yaml b/envs/osx-64.lock.yaml index 3cc06a0afc..46e2edd1cc 100644 --- a/envs/osx-64.lock.yaml +++ b/envs/osx-64.lock.yaml @@ -3,7 +3,7 @@ # Generated by conda-lock. # platform: osx-64 -# input_hash: 3da97c357db95770dfeb31b4562303f1566b99443769728f86b8b18b85e28044 +# input_hash: 79abd0344aa1bb11c4dc0563743109cb1c616ebd89f57c1c798583fced12389f name: pypsa-eur channels: @@ -11,14 +11,14 @@ channels: - bioconda dependencies: - _python_abi3_support=1.0=hd8ed1ab_2 - - adwaita-icon-theme=48.0=unix_0 + - adwaita-icon-theme=48.1=unix_0 - affine=2.4.0=pyhd8ed1ab_1 - ampl-asl=1.0.0=h240833e_2 - amply=0.1.6=pyhd8ed1ab_1 - anyio=4.9.0=pyh29332c3_0 - appdirs=1.4.4=pyhd8ed1ab_1 - appnope=0.1.4=pyhd8ed1ab_1 - - argon2-cffi=23.1.0=pyhd8ed1ab_1 + - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=21.2.0=py312hb553811_5 - argparse-dataclass=2.0.0=pyhd8ed1ab_0 - arrow=1.3.0=pyhd8ed1ab_1 @@ -28,19 +28,19 @@ dependencies: - atk-1.0=2.38.0=h4bec284_2 - atlite=0.4.1=pyhd8ed1ab_0 - attrs=25.3.0=pyh71513ae_0 - - aws-c-auth=0.9.0=h6f66120_10 - - aws-c-cal=0.9.1=h80a239a_0 + - aws-c-auth=0.9.0=h11bee3c_15 + - aws-c-cal=0.9.2=h80a239a_0 - aws-c-common=0.12.3=h6e16a3a_0 - aws-c-compression=0.3.1=hdea44ad_5 - - aws-c-event-stream=0.5.4=h0098a4f_10 - - aws-c-http=0.10.1=hd3df5df_3 - - aws-c-io=0.19.1=h3f65a6a_1 - - aws-c-mqtt=0.13.0=h8feeaa6_4 - - aws-c-s3=0.8.0=h979a125_1 + - aws-c-event-stream=0.5.4=h01412b5_12 + - aws-c-http=0.10.2=ha1444c5_2 + - aws-c-io=0.20.1=h550966a_0 + - aws-c-mqtt=0.13.1=h90c2deb_3 + - aws-c-s3=0.8.1=hb3f0f26_3 - aws-c-sdkutils=0.2.4=hdea44ad_0 - aws-checksums=0.2.7=hdea44ad_1 - - aws-crt-cpp=0.32.6=h4eada78_3 - - aws-sdk-cpp=1.11.510=hd03c47d_9 + - aws-crt-cpp=0.32.8=h47a58cb_6 + - aws-sdk-cpp=1.11.510=h894e209_10 - azure-core-cpp=1.14.0=h9a36307_0 - azure-identity-cpp=1.10.0=ha4e2ba9_0 - azure-storage-blobs-cpp=12.13.0=h3d2f5f1_1 @@ -55,19 +55,19 @@ dependencies: - bokeh=3.7.3=pyhd8ed1ab_0 - bottleneck=1.5.0=py312h025c719_0 - branca=0.8.1=pyhd8ed1ab_0 - - brotli=1.1.0=h00291cd_2 - - brotli-bin=1.1.0=h00291cd_2 - - brotli-python=1.1.0=py312h5861a67_2 + - brotli=1.1.0=h6e16a3a_3 + - brotli-bin=1.1.0=h6e16a3a_3 + - brotli-python=1.1.0=py312haafddd8_3 - bzip2=1.0.8=hfdf4475_7 - c-ares=1.34.5=hf13058a_0 - - c-blosc2=2.17.1=h62acda9_0 - - ca-certificates=2025.4.26=hbd8a1cb_0 + - c-blosc2=2.18.0=h62acda9_0 + - ca-certificates=2025.6.15=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cairo=1.18.4=h950ec3b_0 - cartopy=0.24.0=py312h98e817e_0 - cdsapi=0.7.6=pyhd8ed1ab_0 - - certifi=2025.4.26=pyhd8ed1ab_0 + - certifi=2025.6.15=pyhd8ed1ab_0 - cffi=1.17.1=py312hf857d28_0 - cfgv=3.3.1=pyhd8ed1ab_1 - cftime=1.6.4=py312h3a11e2b_1 @@ -89,8 +89,8 @@ dependencies: - contourpy=1.3.2=py312hc47a885_0 - country_converter=1.2=pyhd8ed1ab_0 - cppad=20250000.2=h240833e_0 - - cpython=3.12.10=py312hd8ed1ab_0 - - cryptography=45.0.3=py312h0995e51_0 + - cpython=3.12.11=py312hd8ed1ab_0 + - cryptography=45.0.4=py312h0995e51_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312h01d7ebd_0 - dask=2025.5.1=pyhd8ed1ab_0 @@ -105,7 +105,7 @@ dependencies: - distributed=2025.5.1=pyhd8ed1ab_0 - docutils=0.21.2=pyhd8ed1ab_1 - dpath=2.2.0=pyha770c72_0 - - ecmwf-datastores-client=0.1.0=pyhd8ed1ab_0 + - ecmwf-datastores-client=0.2.0=pyhd8ed1ab_0 - entsoe-py=0.6.19=pyhd8ed1ab_0 - epoxy=1.5.10=h5eb16cf_1 - et_xmlfile=2.0.0=pyhd8ed1ab_1 @@ -113,7 +113,7 @@ dependencies: - executing=2.2.0=pyhd8ed1ab_0 - filelock=3.18.0=pyhd8ed1ab_0 - fiona=1.10.1=py312h4bcfd6b_3 - - folium=0.19.6=pyhd8ed1ab_0 + - folium=0.20.0=pyhd8ed1ab_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-source-code-pro=2.038=h77eed37_0 @@ -121,7 +121,7 @@ dependencies: - fontconfig=2.15.0=h37eeddb_1 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - - fonttools=4.58.1=py312h3520af0_0 + - fonttools=4.58.4=py312h3520af0_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.13.3=h694c41f_1 - freexl=2.0.0=h3183152_2 @@ -130,8 +130,8 @@ dependencies: - gdk-pixbuf=2.42.12=ha587570_0 - geographiclib=2.0=pyhd8ed1ab_1 - geojson=3.2.0=pyhd8ed1ab_0 - - geopandas=1.0.1=pyhd8ed1ab_3 - - geopandas-base=1.0.1=pyha770c72_3 + - geopandas=1.1.0=pyhd8ed1ab_0 + - geopandas-base=1.1.0=pyha770c72_0 - geopy=2.4.1=pyhd8ed1ab_2 - geos=3.13.1=h502464c_0 - geotiff=1.7.4=h88234f0_2 @@ -143,8 +143,8 @@ dependencies: - glog=0.7.1=h2790a97_0 - glpk=5.0=h3cb5acd_0 - gmp=6.3.0=hf036a51_2 - - graphite2=1.3.13=h73e2aa4_1003 - - graphviz=12.2.1=h44a0556_1 + - graphite2=1.3.14=h240833e_0 + - graphviz=13.0.1=hf067352_0 - gtk3=3.24.43=h70b172e_5 - gts=0.7.6=h53e17e3_4 - h11=0.16.0=pyhd8ed1ab_0 @@ -153,7 +153,7 @@ dependencies: - hdf4=4.2.15=h8138101_7 - hdf5=1.14.6=nompi_h1607680_101 - hicolor-icon-theme=0.17=h694c41f_2 - - highspy=1.10.0=np20py312hc6f6608_1 + - highspy=1.11.0=np20py312h17ae09a_0 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 @@ -200,20 +200,20 @@ dependencies: - lcms2=2.17=h72f5680_0 - lerc=4.0.0=hcca01a6_1 - libabseil=20250127.1=cxx17_h0e468a2_0 - - libaec=1.1.3=h73e2aa4_0 + - libaec=1.1.4=ha6bc127_0 - libarchive=3.7.7=h2c98640_4 - - libarrow=20.0.0=h8968376_5_cpu - - libarrow-acero=20.0.0=hdc53af8_5_cpu - - libarrow-dataset=20.0.0=hdc53af8_5_cpu - - libarrow-substrait=20.0.0=ha37b807_5_cpu - - libblas=3.9.0=31_h7f60823_openblas - - libbrotlicommon=1.1.0=h00291cd_2 - - libbrotlidec=1.1.0=h00291cd_2 - - libbrotlienc=1.1.0=h00291cd_2 - - libcblas=3.9.0=31_hff6cab4_openblas + - libarrow=20.0.0=hd0d6b81_7_cpu + - libarrow-acero=20.0.0=hdc53af8_7_cpu + - libarrow-dataset=20.0.0=hdc53af8_7_cpu + - libarrow-substrait=20.0.0=ha37b807_7_cpu + - libblas=3.9.0=32_h7f60823_openblas + - libbrotlicommon=1.1.0=h6e16a3a_3 + - libbrotlidec=1.1.0=h6e16a3a_3 + - libbrotlienc=1.1.0=h6e16a3a_3 + - libcblas=3.9.0=32_hff6cab4_openblas - libcrc32c=1.1.2=he49afe7_0 - - libcurl=8.14.0=h5dec5d8_0 - - libcxx=20.1.6=hf95d169_0 + - libcurl=8.14.1=h5dec5d8_0 + - libcxx=20.1.7=hf95d169_0 - libdeflate=1.24=hcc1b750_0 - libedit=3.1.20250104=pl5321ha958ccf_0 - libev=4.33=h10d778d_2 @@ -238,16 +238,16 @@ dependencies: - libintl=0.24.1=h27064b9_0 - libjpeg-turbo=3.1.0=h6e16a3a_0 - libkml=1.3.0=h9ee1731_1021 - - liblapack=3.9.0=31_h236ab99_openblas - - liblapacke=3.9.0=31_h85686d2_openblas - - liblzma=5.8.1=hd471939_1 + - liblapack=3.9.0=32_h236ab99_openblas + - liblapacke=3.9.0=32_h85686d2_openblas + - liblzma=5.8.1=hd471939_2 - libnetcdf=4.9.2=nompi_h924628f_117 - libnghttp2=1.64.0=hc7306c3_0 - - libopenblas=0.3.29=openmp_hbf64a52_0 + - libopenblas=0.3.30=openmp_hbf64a52_0 - libopentelemetry-cpp=1.21.0=h30c661f_0 - libopentelemetry-cpp-headers=1.21.0=h694c41f_0 - - libparquet=20.0.0=h283e888_5_cpu - - libpng=1.6.47=h3c4a55f_0 + - libparquet=20.0.0=h283e888_7_cpu + - libpng=1.6.49=h3c4a55f_0 - libprotobuf=5.29.3=h1c7185b_1 - libre2-11=2024.07.02=h08ce7b7_3 - librsvg=2.58.4=h21a6cfa_3 @@ -255,7 +255,7 @@ dependencies: - libscotch=7.0.6=h7a28ce2_1 - libsodium=1.0.20=hfdf4475_0 - libspatialite=5.1.0=hf0eb338_14 - - libsqlite=3.50.0=hdb6dae5_0 + - libsqlite=3.50.1=hdb6dae5_4 - libssh2=1.11.1=hed3591d_0 - libthrift=0.21.0=h75589b3_0 - libtiff=4.7.0=h1167cee_5 @@ -267,7 +267,7 @@ dependencies: - libzip=1.11.2=h31df5bb_0 - libzlib=1.3.1=hd23fc13_2 - linopy=0.5.5=pyhd8ed1ab_0 - - llvm-openmp=20.1.6=ha54dae1_0 + - llvm-openmp=20.1.7=ha54dae1_0 - locket=1.0.0=pyhd8ed1ab_0 - lxml=5.4.0=py312h3ce7cfc_0 - lz4=4.4.4=py312h3d55e07_0 @@ -284,33 +284,33 @@ dependencies: - minizip=4.0.10=hfb7a1ec_0 - mistune=3.1.3=pyh29332c3_0 - mpfr=4.2.1=haed47dc_3 - - msgpack-python=1.1.0=py312hc5c4d5f_0 + - msgpack-python=1.1.1=py312hc47a885_0 - multiurl=0.3.5=pyhd8ed1ab_0 - mumps-include=5.7.3=h991c767_10 - mumps-seq=5.7.3=hd5cbb73_10 - - munkres=1.1.4=pyh9f0ad1d_0 - - narwhals=1.41.0=pyhe01879c_0 + - munkres=1.1.4=pyhd8ed1ab_1 + - narwhals=1.43.1=pyhe01879c_0 - nbclient=0.10.2=pyhd8ed1ab_0 - nbconvert-core=7.16.6=pyh29332c3_0 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h0622a9a_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - netcdf4=1.7.2=nompi_py312ha2a03d4_102 - - networkx=3.4.2=pyh267e887_2 + - networkx=3.5=pyhe01879c_0 - nlohmann_json=3.12.0=h92383a6_0 - nodeenv=1.9.1=pyhd8ed1ab_1 - notebook=7.4.3=pyhd8ed1ab_0 - notebook-shim=0.2.4=pyhd8ed1ab_1 - numexpr=2.10.2=py312ha51eba0_0 - numpy=1.26.4=py312he3a82b2_0 - - oauthlib=3.2.2=pyhd8ed1ab_1 + - oauthlib=3.3.1=pyhd8ed1ab_0 - openjpeg=2.5.3=h7fd6d84_0 - openpyxl=3.1.5=py312h732d5f6_1 - openssl=3.5.0=hc426f3f_1 - orc=2.1.2=h82caab2_0 - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - - pandas=2.2.3=py312hec45ffd_3 + - pandas=2.3.0=py312hec45ffd_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - pango=1.56.3=hae8941d_1 - parso=0.8.4=pyhd8ed1ab_1 @@ -321,49 +321,50 @@ dependencies: - pickleshare=0.7.5=pyhd8ed1ab_1004 - pillow=11.2.1=py312hd9f36e3_0 - pip=25.1.1=pyh8b19718_0 - - pixman=0.46.0=h1fd1274_0 + - pixman=0.46.2=h1fd1274_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2 - plac=1.4.5=pyhd8ed1ab_0 - platformdirs=4.3.8=pyhe01879c_0 + - plotly=6.1.2=pyhd8ed1ab_0 - pluggy=1.6.0=pyhd8ed1ab_0 - - polars=1.30.0=default_h0e23938_0 - - polars-default=1.30.0=py39h6ff0a08_0 + - polars=1.31.0=default_h7ed7cb9_0 + - polars-default=1.31.0=py39h6ff0a08_0 - powerplantmatching=0.7.1=pyhd8ed1ab_0 - pre-commit=4.2.0=pyha770c72_0 - progressbar2=4.5.0=pyhd8ed1ab_1 - - proj=9.6.0=h5273da6_1 + - proj=9.6.2=h5273da6_0 - prometheus-cpp=1.3.0=h7802330_0 - - prometheus_client=0.22.0=pyhd8ed1ab_0 + - prometheus_client=0.22.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.51=pyha770c72_0 - prompt_toolkit=3.0.51=hd8ed1ab_0 - psutil=7.0.0=py312h01d7ebd_0 - pthread-stubs=0.4=h00291cd_1002 - ptyprocess=0.7.0=pyhd8ed1ab_1 - - pulp=2.8.0=py312hda2ad9a_1 + - pulp=2.8.0=py312hda2ad9a_2 - pure_eval=0.2.3=pyhd8ed1ab_1 - py-cpuinfo=9.0.0=pyhd8ed1ab_1 - pyarrow=20.0.0=py312hb401068_0 - pyarrow-core=20.0.0=py312h5157fe3_0_cpu - pycountry=24.6.1=pyhd8ed1ab_0 - pycparser=2.22=pyh29332c3_1 - - pygments=2.19.1=pyhd8ed1ab_0 + - pygments=2.19.2=pyhd8ed1ab_0 - pyjwt=2.10.1=pyhd8ed1ab_0 - pylint=3.3.7=pyhe01879c_0 - - pyobjc-core=11.0=py312h2365019_0 - - pyobjc-framework-cocoa=11.0=py312h2365019_0 + - pyobjc-core=11.1=py312h3f2cce9_0 + - pyobjc-framework-cocoa=11.1=py312h2365019_0 - pyogrio=0.11.0=py312h4bcfd6b_0 - pyparsing=3.2.3=pyhd8ed1ab_1 - pyproj=3.7.1=py312hdca46b5_1 - - pypsa=0.34.1=pyhd8ed1ab_0 + - pypsa=0.35.0=pyhd8ed1ab_0 - pyscipopt=5.5.0=py312haafddd8_0 - pyshp=2.3.1=pyhd8ed1ab_1 - pysocks=1.7.1=pyha55dd90_7 - - pytables=3.10.2=py312hbf54895_4 - - pytest=8.3.5=pyhd8ed1ab_0 - - python=3.12.10=h9ccd52b_0_cpython + - pytables=3.10.2=py312ha2e9fd2_5 + - pytest=8.4.1=pyhd8ed1ab_0 + - python=3.12.11=h9ccd52b_0_cpython - python-dateutil=2.9.0.post0=pyhff2d567_1 - python-fastjsonschema=2.21.1=pyhd8ed1ab_0 - - python-gil=3.12.10=hd8ed1ab_0 + - python-gil=3.12.11=hd8ed1ab_0 - python-json-logger=2.0.7=pyhd8ed1ab_0 - python-tzdata=2025.2=pyhd8ed1ab_0 - python-utils=3.9.1=pyhff2d567_1 @@ -371,47 +372,47 @@ dependencies: - pytz=2025.2=pyhd8ed1ab_0 - pyxlsb=1.0.10=pyhd8ed1ab_0 - pyyaml=6.0.2=py312h3520af0_2 - - pyzmq=26.4.0=py312h679dbab_0 + - pyzmq=27.0.0=py312h679dbab_0 - qhull=2020.2=h3c5361c_5 - rasterio=1.4.3=py312he539f6d_1 - re2=2024.07.02=hf8a452e_3 - readline=8.2=h7cca4af_2 - referencing=0.36.2=pyh29332c3_0 - - requests=2.32.3=pyhd8ed1ab_1 + - requests=2.32.4=pyhd8ed1ab_0 - requests-oauthlib=1.4.0=pyhd8ed1ab_0 - reretry=0.11.8=pyhd8ed1ab_1 - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rioxarray=0.19.0=pyhd8ed1ab_0 - rpds-py=0.25.1=py312haba3716_0 - - ruff=0.11.12=py312heade784_0 - - scikit-learn=1.6.1=py312he1a5313_0 + - ruff=0.12.0=py312heade784_0 + - scikit-learn=1.7.0=py312he1a5313_1 - scip=9.2.2=h9985c21_2 - scipy=1.15.2=py312hd04560d_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - send2trash=1.8.3=pyh31c8845_1 - - setuptools=80.8.0=pyhff2d567_0 + - setuptools=80.9.0=pyhff2d567_0 - shapely=2.0.7=py312hbf10b29_1 - six=1.17.0=pyhd8ed1ab_0 - smart_open=7.1.0=pyhd8ed1ab_0 - smmap=5.0.2=pyhd8ed1ab_0 - snakemake-executor-plugin-cluster-generic=1.0.9=pyhdfd78af_0 - - snakemake-executor-plugin-slurm=1.3.6=pyhdfd78af_0 + - snakemake-executor-plugin-slurm=1.4.0=pyhdfd78af_0 - snakemake-executor-plugin-slurm-jobstep=0.3.0=pyhdfd78af_0 - snakemake-interface-common=1.18.0=pyhdfd78af_0 - - snakemake-interface-executor-plugins=9.3.5=pyhdfd78af_0 + - snakemake-interface-executor-plugins=9.3.6=pyhdfd78af_0 - snakemake-interface-logger-plugins=1.2.3=pyhdfd78af_0 - snakemake-interface-report-plugins=1.1.0=pyhdfd78af_0 - snakemake-interface-storage-plugins=4.2.1=pyhdfd78af_0 - - snakemake-minimal=9.5.1=pyhdfd78af_0 + - snakemake-minimal=9.6.1=pyhdfd78af_0 - snakemake-storage-plugin-http=0.3.0=pyhdfd78af_0 - snappy=1.2.1=haf3c120_1 - sniffio=1.3.1=pyhd8ed1ab_1 - snuggs=1.4.7=pyhd8ed1ab_2 - sortedcontainers=2.4.0=pyhd8ed1ab_1 - soupsieve=2.7=pyhd8ed1ab_0 - - sqlite=3.50.0=h2e4c9dc_0 + - sqlite=3.50.1=h2e4c9dc_4 - stack_data=0.6.3=pyhd8ed1ab_1 - statsmodels=0.14.4=py312h3a11e2b_0 - tabulate=0.9.0=pyhd8ed1ab_2 @@ -423,14 +424,14 @@ dependencies: - tinycss2=1.4.0=pyhd8ed1ab_0 - tk=8.6.13=hf689a15_2 - tomli=2.2.1=pyhd8ed1ab_1 - - tomlkit=0.13.2=pyha770c72_1 + - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - tornado=6.5.1=py312h01d7ebd_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - types-python-dateutil=2.9.0.20250516=pyhd8ed1ab_0 - - typing-extensions=4.13.2=h0e9735f_0 - - typing_extensions=4.13.2=pyh29332c3_0 + - typing-extensions=4.14.0=h32cad80_0 + - typing_extensions=4.14.0=pyhe01879c_0 - typing_utils=0.1.0=pyhd8ed1ab_1 - tzdata=2025b=h78e105d_0 - ukkonen=1.0.1=py312hc5c4d5f_5 @@ -438,7 +439,7 @@ dependencies: - unidecode=1.3.8=pyh29332c3_1 - uri-template=1.3.0=pyhd8ed1ab_1 - uriparser=0.9.8=h6aefe2f_0 - - urllib3=2.4.0=pyhd8ed1ab_0 + - urllib3=2.5.0=pyhd8ed1ab_0 - validators=0.35.0=pyhd8ed1ab_0 - virtualenv=20.31.2=pyhd8ed1ab_0 - wcwidth=0.2.13=pyhd8ed1ab_1 @@ -448,17 +449,17 @@ dependencies: - wheel=0.45.1=pyhd8ed1ab_1 - widgetsnbextension=4.0.14=pyhd8ed1ab_0 - wrapt=1.17.2=py312h01d7ebd_0 - - xarray=2025.4.0=pyhd8ed1ab_0 + - xarray=2025.6.1=pyhd8ed1ab_1 - xerces-c=3.2.5=h197e74d_2 - xlrd=2.0.1=pyhd8ed1ab_3 - xorg-libxau=1.0.12=h6e16a3a_0 - xorg-libxdmcp=1.1.5=h00291cd_0 - xyzservices=2025.4.0=pyhd8ed1ab_0 - yaml=0.2.5=h0d85af4_2 - - yte=1.7.0=pyha770c72_1 + - yte=1.8.1=pyha770c72_0 - zeromq=4.3.5=h7130eaa_7 - zict=3.0.0=pyhd8ed1ab_1 - - zipp=3.22.0=pyhd8ed1ab_0 + - zipp=3.23.0=pyhd8ed1ab_0 - zlib=1.3.1=hd23fc13_2 - zlib-ng=2.2.4=h04d1b7c_0 - zstandard=0.23.0=py312h01d7ebd_2 @@ -467,4 +468,4 @@ dependencies: - gurobipy == 12.0.2 --hash=sha256:8bfd32805e8fc4ea2d0253b5beaef2c763570316f26a1f4f2c86cbaa0eb3a8d7 - ply == 3.11 --hash=sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce - pyomo == 6.9.2 --hash=sha256:3a2f80da2afa3f6eadd17f9d897b15459c91b299325aa5b788f961e28d2802ab - - tsam == 2.3.7 --hash=sha256:8b102ec4d9991630fd39b76807ea639df14fb6013af37c574f5c343e26fa1cf5 + - tsam == 2.3.9 --hash=sha256:edcc4febb9e1dacc028bc819d710974ede8f563467c3d235a250f46416f93a1b diff --git a/envs/osx-arm64.lock.yaml b/envs/osx-arm64.lock.yaml index c6b30f54e2..e5142bb239 100644 --- a/envs/osx-arm64.lock.yaml +++ b/envs/osx-arm64.lock.yaml @@ -3,7 +3,7 @@ # Generated by conda-lock. # platform: osx-arm64 -# input_hash: 2f55b3b5c4d835996f8bc5e4762dd0a1f8be6803517784fd267b3a51928ae758 +# input_hash: efead5e7dfc9ef6b2200329fbaf37ced8d2363527a7ef964537bd221db1a4304 name: pypsa-eur channels: @@ -11,14 +11,14 @@ channels: - bioconda dependencies: - _python_abi3_support=1.0=hd8ed1ab_2 - - adwaita-icon-theme=48.0=unix_0 + - adwaita-icon-theme=48.1=unix_0 - affine=2.4.0=pyhd8ed1ab_1 - ampl-asl=1.0.0=h286801f_2 - amply=0.1.6=pyhd8ed1ab_1 - anyio=4.9.0=pyh29332c3_0 - appdirs=1.4.4=pyhd8ed1ab_1 - appnope=0.1.4=pyhd8ed1ab_1 - - argon2-cffi=23.1.0=pyhd8ed1ab_1 + - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=21.2.0=py312h024a12e_5 - argparse-dataclass=2.0.0=pyhd8ed1ab_0 - arrow=1.3.0=pyhd8ed1ab_1 @@ -28,19 +28,19 @@ dependencies: - atk-1.0=2.38.0=hd03087b_2 - atlite=0.4.1=pyhd8ed1ab_0 - attrs=25.3.0=pyh71513ae_0 - - aws-c-auth=0.9.0=heec1a4a_10 - - aws-c-cal=0.9.1=h03444cf_0 + - aws-c-auth=0.9.0=hb5b73c5_15 + - aws-c-cal=0.9.2=h03444cf_0 - aws-c-common=0.12.3=h5505292_0 - aws-c-compression=0.3.1=hca07070_5 - - aws-c-event-stream=0.5.4=hb369d5e_10 - - aws-c-http=0.10.1=hd6e4345_3 - - aws-c-io=0.19.1=h465c264_1 - - aws-c-mqtt=0.13.0=h8e407d2_4 - - aws-c-s3=0.8.0=h0bc1dd9_1 + - aws-c-event-stream=0.5.4=h40449bf_12 + - aws-c-http=0.10.2=hb5bd760_2 + - aws-c-io=0.20.1=hf355ecc_0 + - aws-c-mqtt=0.13.1=h923d298_3 + - aws-c-s3=0.8.1=h78ecdd8_3 - aws-c-sdkutils=0.2.4=hca07070_0 - aws-checksums=0.2.7=hca07070_1 - - aws-crt-cpp=0.32.6=h09ab085_3 - - aws-sdk-cpp=1.11.510=h23ec857_9 + - aws-crt-cpp=0.32.8=ha2de2ec_6 + - aws-sdk-cpp=1.11.510=h8888cfc_10 - azure-core-cpp=1.14.0=hd50102c_0 - azure-identity-cpp=1.10.0=hc602bab_0 - azure-storage-blobs-cpp=12.13.0=h7585a09_1 @@ -55,19 +55,19 @@ dependencies: - bokeh=3.7.3=pyhd8ed1ab_0 - bottleneck=1.5.0=py312he0011b7_0 - branca=0.8.1=pyhd8ed1ab_0 - - brotli=1.1.0=hd74edd7_2 - - brotli-bin=1.1.0=hd74edd7_2 - - brotli-python=1.1.0=py312hde4cb15_2 + - brotli=1.1.0=h5505292_3 + - brotli-bin=1.1.0=h5505292_3 + - brotli-python=1.1.0=py312hd8f9ff3_3 - bzip2=1.0.8=h99b78c6_7 - c-ares=1.34.5=h5505292_0 - - c-blosc2=2.17.1=h9cbb436_0 - - ca-certificates=2025.4.26=hbd8a1cb_0 + - c-blosc2=2.18.0=h9cbb436_0 + - ca-certificates=2025.6.15=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cairo=1.18.4=h6a3b0d2_0 - cartopy=0.24.0=py312hcd31e36_0 - cdsapi=0.7.6=pyhd8ed1ab_0 - - certifi=2025.4.26=pyhd8ed1ab_0 + - certifi=2025.6.15=pyhd8ed1ab_0 - cffi=1.17.1=py312h0fad829_0 - cfgv=3.3.1=pyhd8ed1ab_1 - cftime=1.6.4=py312h755e627_1 @@ -89,8 +89,8 @@ dependencies: - contourpy=1.3.2=py312hb23fbb9_0 - country_converter=1.2=pyhd8ed1ab_0 - cppad=20250000.2=h286801f_0 - - cpython=3.12.10=py312hd8ed1ab_0 - - cryptography=45.0.3=py312hf9bd80e_0 + - cpython=3.12.11=py312hd8ed1ab_0 + - cryptography=45.0.4=py312hf9bd80e_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312hea69d52_0 - dask=2025.5.1=pyhd8ed1ab_0 @@ -105,7 +105,7 @@ dependencies: - distributed=2025.5.1=pyhd8ed1ab_0 - docutils=0.21.2=pyhd8ed1ab_1 - dpath=2.2.0=pyha770c72_0 - - ecmwf-datastores-client=0.1.0=pyhd8ed1ab_0 + - ecmwf-datastores-client=0.2.0=pyhd8ed1ab_0 - entsoe-py=0.6.19=pyhd8ed1ab_0 - epoxy=1.5.10=h1c322ee_1 - et_xmlfile=2.0.0=pyhd8ed1ab_1 @@ -113,7 +113,7 @@ dependencies: - executing=2.2.0=pyhd8ed1ab_0 - filelock=3.18.0=pyhd8ed1ab_0 - fiona=1.10.1=py312hfd5e53c_3 - - folium=0.19.6=pyhd8ed1ab_0 + - folium=0.20.0=pyhd8ed1ab_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-source-code-pro=2.038=h77eed37_0 @@ -121,7 +121,7 @@ dependencies: - fontconfig=2.15.0=h1383a14_1 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - - fonttools=4.58.1=py312h998013c_0 + - fonttools=4.58.4=py312h998013c_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.13.3=hce30654_1 - freexl=2.0.0=h3ab3353_2 @@ -130,8 +130,8 @@ dependencies: - gdk-pixbuf=2.42.12=h7ddc832_0 - geographiclib=2.0=pyhd8ed1ab_1 - geojson=3.2.0=pyhd8ed1ab_0 - - geopandas=1.0.1=pyhd8ed1ab_3 - - geopandas-base=1.0.1=pyha770c72_3 + - geopandas=1.1.0=pyhd8ed1ab_0 + - geopandas-base=1.1.0=pyha770c72_0 - geopy=2.4.1=pyhd8ed1ab_2 - geos=3.13.1=hc9a1286_0 - geotiff=1.7.4=h1d7e6e1_2 @@ -143,8 +143,8 @@ dependencies: - glog=0.7.1=heb240a5_0 - glpk=5.0=h6d7a090_0 - gmp=6.3.0=h7bae524_2 - - graphite2=1.3.13=hebf3989_1003 - - graphviz=12.2.1=hff64154_1 + - graphite2=1.3.14=h286801f_0 + - graphviz=13.0.1=haeab78c_0 - gtk3=3.24.43=h07173f4_5 - gts=0.7.6=he42f4ea_4 - h11=0.16.0=pyhd8ed1ab_0 @@ -153,7 +153,7 @@ dependencies: - hdf4=4.2.15=h2ee6834_7 - hdf5=1.14.6=nompi_ha698983_101 - hicolor-icon-theme=0.17=hce30654_2 - - highspy=1.10.0=np20py312h7ca56ae_1 + - highspy=1.11.0=np20py312h4049357_0 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 @@ -200,20 +200,20 @@ dependencies: - lcms2=2.17=h7eeda09_0 - lerc=4.0.0=hd64df32_1 - libabseil=20250127.1=cxx17_h07bc746_0 - - libaec=1.1.3=hebf3989_0 - - libarchive=3.7.7=h3c2f2b0_4 - - libarrow=20.0.0=h4589d68_5_cpu - - libarrow-acero=20.0.0=hf07054f_5_cpu - - libarrow-dataset=20.0.0=hf07054f_5_cpu - - libarrow-substrait=20.0.0=he749cb8_5_cpu - - libblas=3.9.0=31_h10e41b3_openblas - - libbrotlicommon=1.1.0=hd74edd7_2 - - libbrotlidec=1.1.0=hd74edd7_2 - - libbrotlienc=1.1.0=hd74edd7_2 - - libcblas=3.9.0=31_hb3479ef_openblas + - libaec=1.1.4=h51d1e36_0 + - libarchive=3.8.1=gpl_h46e8061_100 + - libarrow=20.0.0=h76b72fb_7_cpu + - libarrow-acero=20.0.0=hf07054f_7_cpu + - libarrow-dataset=20.0.0=hf07054f_7_cpu + - libarrow-substrait=20.0.0=he749cb8_7_cpu + - libblas=3.9.0=32_h10e41b3_openblas + - libbrotlicommon=1.1.0=h5505292_3 + - libbrotlidec=1.1.0=h5505292_3 + - libbrotlienc=1.1.0=h5505292_3 + - libcblas=3.9.0=32_hb3479ef_openblas - libcrc32c=1.1.2=hbdafb3b_0 - - libcurl=8.14.0=h73640d1_0 - - libcxx=20.1.6=ha82da77_0 + - libcurl=8.14.1=h73640d1_0 + - libcxx=20.1.7=ha82da77_0 - libdeflate=1.24=h5773f1b_0 - libedit=3.1.20250104=pl5321hafb1f1b_0 - libev=4.33=h93a5062_2 @@ -223,10 +223,10 @@ dependencies: - libfreetype=2.13.3=hce30654_1 - libfreetype6=2.13.3=h1d14073_1 - libgd=2.3.3=hb2c3a21_11 - - libgdal-core=3.10.3=hf7ea162_10 - - libgdal-hdf4=3.10.3=h3de3189_10 - - libgdal-hdf5=3.10.3=he36599c_10 - - libgdal-netcdf=3.10.3=h322d244_10 + - libgdal-core=3.10.3=h976ba99_11 + - libgdal-hdf4=3.10.3=h6769f21_11 + - libgdal-hdf5=3.10.3=haed1158_11 + - libgdal-netcdf=3.10.3=hf10a186_11 - libgfortran=5.0.0=14_2_0_h6c33f7e_103 - libgfortran5=14.2.0=h6c33f7e_103 - libglib=2.84.2=hbec27ea_0 @@ -238,16 +238,16 @@ dependencies: - libintl=0.24.1=h493aca8_0 - libjpeg-turbo=3.1.0=h5505292_0 - libkml=1.3.0=he250239_1021 - - liblapack=3.9.0=31_hc9a63f6_openblas - - liblapacke=3.9.0=31_hbb7bcf8_openblas - - liblzma=5.8.1=h39f12f2_1 + - liblapack=3.9.0=32_hc9a63f6_openblas + - liblapacke=3.9.0=32_hbb7bcf8_openblas + - liblzma=5.8.1=h39f12f2_2 - libnetcdf=4.9.2=nompi_h3352478_117 - libnghttp2=1.64.0=h6d7220d_0 - - libopenblas=0.3.29=openmp_hf332438_0 + - libopenblas=0.3.30=openmp_hf332438_0 - libopentelemetry-cpp=1.21.0=h0181452_0 - libopentelemetry-cpp-headers=1.21.0=hce30654_0 - - libparquet=20.0.0=h636d7b7_5_cpu - - libpng=1.6.47=h3783ad8_0 + - libparquet=20.0.0=h636d7b7_7_cpu + - libpng=1.6.49=h3783ad8_0 - libprotobuf=5.29.3=hccd9074_1 - libre2-11=2024.07.02=hd41c47c_3 - librsvg=2.58.4=h266df6f_3 @@ -255,7 +255,7 @@ dependencies: - libscotch=7.0.6=he56f69b_1 - libsodium=1.0.20=h99b78c6_0 - libspatialite=5.1.0=hea0a7cd_14 - - libsqlite=3.50.0=h3f77e49_0 + - libsqlite=3.50.1=h3f77e49_4 - libssh2=1.11.1=h1590b86_0 - libthrift=0.21.0=h64651cc_0 - libtiff=4.7.0=h2f21f7c_5 @@ -267,7 +267,7 @@ dependencies: - libzip=1.11.2=h1336266_0 - libzlib=1.3.1=h8359307_2 - linopy=0.5.5=pyhd8ed1ab_0 - - llvm-openmp=20.1.6=hdb05f8b_0 + - llvm-openmp=20.1.7=hdb05f8b_0 - locket=1.0.0=pyhd8ed1ab_0 - lxml=5.4.0=py312hc2c121e_0 - lz4=4.4.4=py312hf263c89_0 @@ -284,33 +284,33 @@ dependencies: - minizip=4.0.10=hff1a8ea_0 - mistune=3.1.3=pyh29332c3_0 - mpfr=4.2.1=hb693164_3 - - msgpack-python=1.1.0=py312h6142ec9_0 + - msgpack-python=1.1.1=py312hb23fbb9_0 - multiurl=0.3.5=pyhd8ed1ab_0 - mumps-include=5.7.3=h8c5b6c6_10 - mumps-seq=5.7.3=h390d176_10 - - munkres=1.1.4=pyh9f0ad1d_0 - - narwhals=1.41.0=pyhe01879c_0 + - munkres=1.1.4=pyhd8ed1ab_1 + - narwhals=1.43.1=pyhe01879c_0 - nbclient=0.10.2=pyhd8ed1ab_0 - nbconvert-core=7.16.6=pyh29332c3_0 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h5e97a16_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - netcdf4=1.7.2=nompi_py312h3abf214_102 - - networkx=3.4.2=pyh267e887_2 + - networkx=3.5=pyhe01879c_0 - nlohmann_json=3.12.0=ha1acc90_0 - nodeenv=1.9.1=pyhd8ed1ab_1 - notebook=7.4.3=pyhd8ed1ab_0 - notebook-shim=0.2.4=pyhd8ed1ab_1 - numexpr=2.10.2=py312hbbbb429_0 - numpy=1.26.4=py312h8442bc7_0 - - oauthlib=3.2.2=pyhd8ed1ab_1 + - oauthlib=3.3.1=pyhd8ed1ab_0 - openjpeg=2.5.3=h8a3d83b_0 - openpyxl=3.1.5=py312hf6e0af7_1 - openssl=3.5.0=h81ee809_1 - orc=2.1.2=hd90e43c_0 - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - - pandas=2.2.3=py312hcb1e3ce_3 + - pandas=2.3.0=py312hcb1e3ce_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - pango=1.56.3=h5fd7515_1 - parso=0.8.4=pyhd8ed1ab_1 @@ -321,49 +321,50 @@ dependencies: - pickleshare=0.7.5=pyhd8ed1ab_1004 - pillow=11.2.1=py312h50aef2c_0 - pip=25.1.1=pyh8b19718_0 - - pixman=0.46.0=h2f9eb0b_0 + - pixman=0.46.2=h2f9eb0b_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2 - plac=1.4.5=pyhd8ed1ab_0 - platformdirs=4.3.8=pyhe01879c_0 + - plotly=6.1.2=pyhd8ed1ab_0 - pluggy=1.6.0=pyhd8ed1ab_0 - - polars=1.30.0=default_hdd315a2_0 - - polars-default=1.30.0=py39h6da47c3_0 + - polars=1.31.0=default_h56a14c1_0 + - polars-default=1.31.0=py39h6da47c3_0 - powerplantmatching=0.7.1=pyhd8ed1ab_0 - pre-commit=4.2.0=pyha770c72_0 - progressbar2=4.5.0=pyhd8ed1ab_1 - - proj=9.6.0=h1318a7e_1 + - proj=9.6.2=h1318a7e_0 - prometheus-cpp=1.3.0=h0967b3e_0 - - prometheus_client=0.22.0=pyhd8ed1ab_0 + - prometheus_client=0.22.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.51=pyha770c72_0 - prompt_toolkit=3.0.51=hd8ed1ab_0 - psutil=7.0.0=py312hea69d52_0 - pthread-stubs=0.4=hd74edd7_1002 - ptyprocess=0.7.0=pyhd8ed1ab_1 - - pulp=2.8.0=py312h38bd297_1 + - pulp=2.8.0=py312h38bd297_2 - pure_eval=0.2.3=pyhd8ed1ab_1 - py-cpuinfo=9.0.0=pyhd8ed1ab_1 - pyarrow=20.0.0=py312h1f38498_0 - pyarrow-core=20.0.0=py312hc40f475_0_cpu - pycountry=24.6.1=pyhd8ed1ab_0 - pycparser=2.22=pyh29332c3_1 - - pygments=2.19.1=pyhd8ed1ab_0 + - pygments=2.19.2=pyhd8ed1ab_0 - pyjwt=2.10.1=pyhd8ed1ab_0 - pylint=3.3.7=pyhe01879c_0 - - pyobjc-core=11.0=py312hb9d441b_0 - - pyobjc-framework-cocoa=11.0=py312hb9d441b_0 + - pyobjc-core=11.1=py312h4c66426_0 + - pyobjc-framework-cocoa=11.1=py312hb9d441b_0 - pyogrio=0.11.0=py312hfd5e53c_0 - pyparsing=3.2.3=pyhd8ed1ab_1 - pyproj=3.7.1=py312h237c406_1 - - pypsa=0.34.1=pyhd8ed1ab_0 + - pypsa=0.35.0=pyhd8ed1ab_0 - pyscipopt=5.5.0=py312hd8f9ff3_0 - pyshp=2.3.1=pyhd8ed1ab_1 - pysocks=1.7.1=pyha55dd90_7 - - pytables=3.10.2=py312h1558ca1_4 - - pytest=8.3.5=pyhd8ed1ab_0 - - python=3.12.10=hc22306f_0_cpython + - pytables=3.10.2=py312h599e418_5 + - pytest=8.4.1=pyhd8ed1ab_0 + - python=3.12.11=hc22306f_0_cpython - python-dateutil=2.9.0.post0=pyhff2d567_1 - python-fastjsonschema=2.21.1=pyhd8ed1ab_0 - - python-gil=3.12.10=hd8ed1ab_0 + - python-gil=3.12.11=hd8ed1ab_0 - python-json-logger=2.0.7=pyhd8ed1ab_0 - python-tzdata=2025.2=pyhd8ed1ab_0 - python-utils=3.9.1=pyhff2d567_1 @@ -371,47 +372,47 @@ dependencies: - pytz=2025.2=pyhd8ed1ab_0 - pyxlsb=1.0.10=pyhd8ed1ab_0 - pyyaml=6.0.2=py312h998013c_2 - - pyzmq=26.4.0=py312hf4875e0_0 + - pyzmq=27.0.0=py312hf4875e0_0 - qhull=2020.2=h420ef59_5 - rasterio=1.4.3=py312h4623290_1 - re2=2024.07.02=h6589ca4_3 - readline=8.2=h1d1bf99_2 - referencing=0.36.2=pyh29332c3_0 - - requests=2.32.3=pyhd8ed1ab_1 + - requests=2.32.4=pyhd8ed1ab_0 - requests-oauthlib=1.4.0=pyhd8ed1ab_0 - reretry=0.11.8=pyhd8ed1ab_1 - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rioxarray=0.19.0=pyhd8ed1ab_0 - rpds-py=0.25.1=py312hd3c0895_0 - - ruff=0.11.12=py312h846f395_0 - - scikit-learn=1.6.1=py312h39203ce_0 + - ruff=0.12.0=py312h846f395_0 + - scikit-learn=1.7.0=py312h39203ce_1 - scip=9.2.2=hdf0ad90_2 - scipy=1.15.2=py312h99a188d_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - send2trash=1.8.3=pyh31c8845_1 - - setuptools=80.8.0=pyhff2d567_0 + - setuptools=80.9.0=pyhff2d567_0 - shapely=2.0.7=py312hf733f26_1 - six=1.17.0=pyhd8ed1ab_0 - smart_open=7.1.0=pyhd8ed1ab_0 - smmap=5.0.2=pyhd8ed1ab_0 - snakemake-executor-plugin-cluster-generic=1.0.9=pyhdfd78af_0 - - snakemake-executor-plugin-slurm=1.3.6=pyhdfd78af_0 + - snakemake-executor-plugin-slurm=1.4.0=pyhdfd78af_0 - snakemake-executor-plugin-slurm-jobstep=0.3.0=pyhdfd78af_0 - snakemake-interface-common=1.18.0=pyhdfd78af_0 - - snakemake-interface-executor-plugins=9.3.5=pyhdfd78af_0 + - snakemake-interface-executor-plugins=9.3.6=pyhdfd78af_0 - snakemake-interface-logger-plugins=1.2.3=pyhdfd78af_0 - snakemake-interface-report-plugins=1.1.0=pyhdfd78af_0 - snakemake-interface-storage-plugins=4.2.1=pyhdfd78af_0 - - snakemake-minimal=9.5.1=pyhdfd78af_0 + - snakemake-minimal=9.6.1=pyhdfd78af_0 - snakemake-storage-plugin-http=0.3.0=pyhdfd78af_0 - snappy=1.2.1=h98b9ce2_1 - sniffio=1.3.1=pyhd8ed1ab_1 - snuggs=1.4.7=pyhd8ed1ab_2 - sortedcontainers=2.4.0=pyhd8ed1ab_1 - soupsieve=2.7=pyhd8ed1ab_0 - - sqlite=3.50.0=hd7222ec_0 + - sqlite=3.50.1=hd7222ec_4 - stack_data=0.6.3=pyhd8ed1ab_1 - statsmodels=0.14.4=py312h755e627_0 - tabulate=0.9.0=pyhd8ed1ab_2 @@ -423,14 +424,14 @@ dependencies: - tinycss2=1.4.0=pyhd8ed1ab_0 - tk=8.6.13=h892fb3f_2 - tomli=2.2.1=pyhd8ed1ab_1 - - tomlkit=0.13.2=pyha770c72_1 + - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - tornado=6.5.1=py312hea69d52_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - types-python-dateutil=2.9.0.20250516=pyhd8ed1ab_0 - - typing-extensions=4.13.2=h0e9735f_0 - - typing_extensions=4.13.2=pyh29332c3_0 + - typing-extensions=4.14.0=h32cad80_0 + - typing_extensions=4.14.0=pyhe01879c_0 - typing_utils=0.1.0=pyhd8ed1ab_1 - tzdata=2025b=h78e105d_0 - ukkonen=1.0.1=py312h6142ec9_5 @@ -438,7 +439,7 @@ dependencies: - unidecode=1.3.8=pyh29332c3_1 - uri-template=1.3.0=pyhd8ed1ab_1 - uriparser=0.9.8=h00cdb27_0 - - urllib3=2.4.0=pyhd8ed1ab_0 + - urllib3=2.5.0=pyhd8ed1ab_0 - validators=0.35.0=pyhd8ed1ab_0 - virtualenv=20.31.2=pyhd8ed1ab_0 - wcwidth=0.2.13=pyhd8ed1ab_1 @@ -448,17 +449,17 @@ dependencies: - wheel=0.45.1=pyhd8ed1ab_1 - widgetsnbextension=4.0.14=pyhd8ed1ab_0 - wrapt=1.17.2=py312hea69d52_0 - - xarray=2025.4.0=pyhd8ed1ab_0 + - xarray=2025.6.1=pyhd8ed1ab_1 - xerces-c=3.2.5=h92fc2f4_2 - xlrd=2.0.1=pyhd8ed1ab_3 - xorg-libxau=1.0.12=h5505292_0 - xorg-libxdmcp=1.1.5=hd74edd7_0 - xyzservices=2025.4.0=pyhd8ed1ab_0 - yaml=0.2.5=h3422bc3_2 - - yte=1.7.0=pyha770c72_1 + - yte=1.8.1=pyha770c72_0 - zeromq=4.3.5=hc1bb282_7 - zict=3.0.0=pyhd8ed1ab_1 - - zipp=3.22.0=pyhd8ed1ab_0 + - zipp=3.23.0=pyhd8ed1ab_0 - zlib=1.3.1=h8359307_2 - zlib-ng=2.2.4=h13dfb9a_0 - zstandard=0.23.0=py312hea69d52_2 @@ -467,4 +468,4 @@ dependencies: - gurobipy == 12.0.2 --hash=sha256:8bfd32805e8fc4ea2d0253b5beaef2c763570316f26a1f4f2c86cbaa0eb3a8d7 - ply == 3.11 --hash=sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce - pyomo == 6.9.2 --hash=sha256:afd6944ff800554944fe5d5bc07d071c69c5d96df22b1edac4f784d3fbe2ff37 - - tsam == 2.3.7 --hash=sha256:8b102ec4d9991630fd39b76807ea639df14fb6013af37c574f5c343e26fa1cf5 + - tsam == 2.3.9 --hash=sha256:edcc4febb9e1dacc028bc819d710974ede8f563467c3d235a250f46416f93a1b diff --git a/envs/win-64.lock.yaml b/envs/win-64.lock.yaml index 4acdaa8677..1d7502cdf5 100644 --- a/envs/win-64.lock.yaml +++ b/envs/win-64.lock.yaml @@ -3,7 +3,7 @@ # Generated by conda-lock. # platform: win-64 -# input_hash: f6d18bd5edb587a285a0f7c4127445a880f7bfc3d20c3d5ddf77126dcd5b20cb +# input_hash: 5fa1c1561f9e1cd73a857edbd8df0e226e5690d856ad14b1bf17f2c454b734e5 name: pypsa-eur channels: @@ -17,7 +17,7 @@ dependencies: - amply=0.1.6=pyhd8ed1ab_1 - anyio=4.9.0=pyh29332c3_0 - appdirs=1.4.4=pyhd8ed1ab_1 - - argon2-cffi=23.1.0=pyhd8ed1ab_1 + - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=21.2.0=py312h4389bb4_5 - argparse-dataclass=2.0.0=pyhd8ed1ab_0 - arrow=1.3.0=pyhd8ed1ab_1 @@ -26,19 +26,19 @@ dependencies: - async-lru=2.0.5=pyh29332c3_0 - atlite=0.4.1=pyhd8ed1ab_0 - attrs=25.3.0=pyh71513ae_0 - - aws-c-auth=0.9.0=hf0c1250_10 - - aws-c-cal=0.9.1=hd8a8e38_0 + - aws-c-auth=0.9.0=hd490b63_15 + - aws-c-cal=0.9.2=hd8a8e38_0 - aws-c-common=0.12.3=h2466b09_0 - aws-c-compression=0.3.1=h5d0e663_5 - - aws-c-event-stream=0.5.4=hf27a43c_10 - - aws-c-http=0.10.1=hcc73f11_3 - - aws-c-io=0.19.1=hca30057_1 - - aws-c-mqtt=0.13.0=h78aaacf_4 - - aws-c-s3=0.8.0=hd6228ca_1 + - aws-c-event-stream=0.5.4=ha416645_12 + - aws-c-http=0.10.2=h81282ae_2 + - aws-c-io=0.20.1=hddf4d6c_0 + - aws-c-mqtt=0.13.1=h5c1ae27_3 + - aws-c-s3=0.8.1=h1e843c7_3 - aws-c-sdkutils=0.2.4=h5d0e663_0 - aws-checksums=0.2.7=h5d0e663_1 - - aws-crt-cpp=0.32.6=h7932cbf_3 - - aws-sdk-cpp=1.11.510=h8151383_9 + - aws-crt-cpp=0.32.8=h5d81255_6 + - aws-sdk-cpp=1.11.510=h7deb975_10 - babel=2.17.0=pyhd8ed1ab_0 - beautifulsoup4=4.13.4=pyha770c72_0 - bleach=6.2.0=pyh29332c3_4 @@ -48,19 +48,19 @@ dependencies: - bokeh=3.7.3=pyhd8ed1ab_0 - bottleneck=1.5.0=py312h1a27103_0 - branca=0.8.1=pyhd8ed1ab_0 - - brotli=1.1.0=h2466b09_2 - - brotli-bin=1.1.0=h2466b09_2 - - brotli-python=1.1.0=py312h275cf98_2 + - brotli=1.1.0=h2466b09_3 + - brotli-bin=1.1.0=h2466b09_3 + - brotli-python=1.1.0=py312h275cf98_3 - bzip2=1.0.8=h2466b09_7 - c-ares=1.34.5=h2466b09_0 - - c-blosc2=2.17.1=h9e57077_0 - - ca-certificates=2025.4.26=h4c7d964_0 + - c-blosc2=2.18.0=h9e57077_0 + - ca-certificates=2025.6.15=h4c7d964_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cairo=1.18.4=h5782bbf_0 - cartopy=0.24.0=py312h72972c8_0 - cdsapi=0.7.6=pyhd8ed1ab_0 - - certifi=2025.4.26=pyhd8ed1ab_0 + - certifi=2025.6.15=pyhd8ed1ab_0 - cffi=1.17.1=py312h4389bb4_0 - cfgv=3.3.1=pyhd8ed1ab_1 - cftime=1.6.4=py312h1a27103_1 @@ -82,8 +82,8 @@ dependencies: - contourpy=1.3.2=py312hd5eb7cc_0 - country_converter=1.2=pyhd8ed1ab_0 - cppad=20250000.2=he0c23c2_0 - - cpython=3.12.10=py312hd8ed1ab_0 - - cryptography=45.0.3=py312h9500af3_0 + - cpython=3.12.11=py312hd8ed1ab_0 + - cryptography=45.0.4=py312h9500af3_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312h4389bb4_0 - dask=2025.5.1=pyhd8ed1ab_0 @@ -99,14 +99,14 @@ dependencies: - docutils=0.21.2=pyhd8ed1ab_1 - double-conversion=3.3.1=he0c23c2_0 - dpath=2.2.0=pyha770c72_0 - - ecmwf-datastores-client=0.1.0=pyhd8ed1ab_0 + - ecmwf-datastores-client=0.2.0=pyhd8ed1ab_0 - entsoe-py=0.6.19=pyhd8ed1ab_0 - et_xmlfile=2.0.0=pyhd8ed1ab_1 - exceptiongroup=1.3.0=pyhd8ed1ab_0 - executing=2.2.0=pyhd8ed1ab_0 - filelock=3.18.0=pyhd8ed1ab_0 - fiona=1.10.1=py312h6e88f47_3 - - folium=0.19.6=pyhd8ed1ab_0 + - folium=0.20.0=pyhd8ed1ab_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-source-code-pro=2.038=h77eed37_0 @@ -114,7 +114,7 @@ dependencies: - fontconfig=2.15.0=h765892d_1 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - - fonttools=4.58.1=py312h31fea79_0 + - fonttools=4.58.4=py312h31fea79_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.13.3=h57928b3_1 - freexl=2.0.0=hf297d47_2 @@ -122,25 +122,25 @@ dependencies: - fsspec=2025.5.1=pyhd8ed1ab_0 - geographiclib=2.0=pyhd8ed1ab_1 - geojson=3.2.0=pyhd8ed1ab_0 - - geopandas=1.0.1=pyhd8ed1ab_3 - - geopandas-base=1.0.1=pyha770c72_3 + - geopandas=1.1.0=pyhd8ed1ab_0 + - geopandas-base=1.1.0=pyha770c72_0 - geopy=2.4.1=pyhd8ed1ab_2 - geos=3.13.1=h9ea8674_0 - geotiff=1.7.4=h86c3423_2 - - getopt-win32=0.1=hcfcfb64_1 + - getopt-win32=0.1=h6a83c73_2 - gitdb=4.0.12=pyhd8ed1ab_0 - gitpython=3.1.44=pyhff2d567_0 - glpk=5.0=h8ffe710_0 - gmp=6.3.0=hfeafd45_2 - - graphite2=1.3.13=h63175ca_1003 - - graphviz=12.2.1=hf40819d_1 + - graphite2=1.3.14=he0c23c2_0 + - graphviz=13.0.1=ha5e8f4b_0 - gts=0.7.6=h6b5321d_4 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - harfbuzz=11.2.1=h8796e6f_0 - hdf4=4.2.15=h5557f11_7 - hdf5=1.14.6=nompi_hd5d9e70_101 - - highspy=1.10.0=np20py312h21a228a_1 + - highspy=1.11.0=np20py312h21a228a_0 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 @@ -187,21 +187,21 @@ dependencies: - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libabseil=20250127.1=cxx17_h4eb7d71_0 - - libaec=1.1.3=h63175ca_0 - - libarchive=3.7.7=h5343c79_4 - - libarrow=20.0.0=haf9c06d_5_cpu - - libarrow-acero=20.0.0=h7d8d6a5_5_cpu - - libarrow-dataset=20.0.0=h7d8d6a5_5_cpu - - libarrow-substrait=20.0.0=hb76e781_5_cpu - - libblas=3.9.0=31_h641d27c_mkl + - libaec=1.1.4=h20038f6_0 + - libarchive=3.8.1=gpl_h1ca5a36_100 + - libarrow=20.0.0=hc090743_7_cpu + - libarrow-acero=20.0.0=h7d8d6a5_7_cpu + - libarrow-dataset=20.0.0=h7d8d6a5_7_cpu + - libarrow-substrait=20.0.0=hb76e781_7_cpu + - libblas=3.9.0=32_h641d27c_mkl - libboost=1.86.0=hb0986bb_3 - - libbrotlicommon=1.1.0=h2466b09_2 - - libbrotlidec=1.1.0=h2466b09_2 - - libbrotlienc=1.1.0=h2466b09_2 - - libcblas=3.9.0=31_h5e41251_mkl - - libclang13=20.1.6=default_h6e92b77_0 + - libbrotlicommon=1.1.0=h2466b09_3 + - libbrotlidec=1.1.0=h2466b09_3 + - libbrotlienc=1.1.0=h2466b09_3 + - libcblas=3.9.0=32_h5e41251_mkl + - libclang13=20.1.7=default_h6e92b77_0 - libcrc32c=1.1.2=h0e60522_0 - - libcurl=8.14.0=h88aaa65_0 + - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libevent=2.1.12=h3671451_1 - libexpat=2.7.0=he0c23c2_0 @@ -210,10 +210,10 @@ dependencies: - libfreetype6=2.13.3=h0b5ce68_1 - libgcc=15.1.0=h1383e82_2 - libgd=2.3.3=h7208af6_11 - - libgdal-core=3.10.3=heb20a2f_10 - - libgdal-hdf4=3.10.3=h95c155c_10 - - libgdal-hdf5=3.10.3=h7fa7d29_10 - - libgdal-netcdf=3.10.3=h7141178_10 + - libgdal-core=3.10.3=h7d16cc0_11 + - libgdal-hdf4=3.10.3=h0de24e7_11 + - libgdal-hdf5=3.10.3=h527b061_11 + - libgdal-netcdf=3.10.3=h1b8416b_11 - libglib=2.84.2=hbc94333_0 - libgomp=15.1.0=h1383e82_2 - libgoogle-cloud=2.36.0=hf249c01_1 @@ -224,17 +224,17 @@ dependencies: - libintl=0.22.5=h5728263_3 - libjpeg-turbo=3.1.0=h2466b09_0 - libkml=1.3.0=h538826c_1021 - - liblapack=3.9.0=31_h1aa476e_mkl - - liblzma=5.8.1=h2466b09_1 + - liblapack=3.9.0=32_h1aa476e_mkl + - liblzma=5.8.1=h2466b09_2 - libnetcdf=4.9.2=nompi_he045f6b_117 - - libparquet=20.0.0=ha850022_5_cpu - - libpng=1.6.47=h7a4582a_0 + - libparquet=20.0.0=ha850022_7_cpu + - libpng=1.6.49=h7a4582a_0 - libprotobuf=5.29.3=he9d8c4a_1 - libre2-11=2024.07.02=hd248061_3 - librttopo=1.1.0=hbfc9ebc_18 - libsodium=1.0.20=hc70643c_0 - libspatialite=5.1.0=h378fb81_14 - - libsqlite=3.50.0=h67fdade_0 + - libsqlite=3.50.1=h053a19d_4 - libssh2=1.11.1=h9aa295b_0 - libthrift=0.21.0=hbe90ef8_0 - libtiff=4.7.0=h05922d8_5 @@ -247,7 +247,7 @@ dependencies: - libzip=1.11.2=h3135430_0 - libzlib=1.3.1=h2466b09_2 - linopy=0.5.5=pyhd8ed1ab_0 - - llvm-openmp=20.1.6=h30eaf37_0 + - llvm-openmp=20.1.7=h30eaf37_0 - locket=1.0.0=pyhd8ed1ab_0 - lxml=5.4.0=py312hef2e38f_0 - lz4=4.4.4=py312h032eceb_0 @@ -266,30 +266,30 @@ dependencies: - mkl-include=2024.2.2=h66d3029_15 - mkl-static=2024.2.2=h66d3029_15 - mpfr=4.2.1=hbc20e70_3 - - msgpack-python=1.1.0=py312hd5eb7cc_0 + - msgpack-python=1.1.1=py312hd5eb7cc_0 - multiurl=0.3.5=pyhd8ed1ab_0 - mumps-seq=5.7.3=hbaa6519_10 - - munkres=1.1.4=pyh9f0ad1d_0 - - narwhals=1.41.0=pyhe01879c_0 + - munkres=1.1.4=pyhd8ed1ab_1 + - narwhals=1.43.1=pyhe01879c_0 - nbclient=0.10.2=pyhd8ed1ab_0 - nbconvert-core=7.16.6=pyh29332c3_0 - nbformat=5.10.4=pyhd8ed1ab_1 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - netcdf4=1.7.2=nompi_py312hf8617a8_102 - - networkx=3.4.2=pyh267e887_2 + - networkx=3.5=pyhe01879c_0 - nodeenv=1.9.1=pyhd8ed1ab_1 - notebook=7.4.3=pyhd8ed1ab_0 - notebook-shim=0.2.4=pyhd8ed1ab_1 - numexpr=2.10.2=mkl_py312h5e4250c_0 - numpy=1.26.4=py312h8753938_0 - - oauthlib=3.2.2=pyhd8ed1ab_1 + - oauthlib=3.3.1=pyhd8ed1ab_0 - openjpeg=2.5.3=h4d64b90_0 - openpyxl=3.1.5=py312he70551f_1 - openssl=3.5.0=ha4e3fda_1 - orc=2.1.2=h35764e3_0 - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - - pandas=2.2.3=py312h72972c8_3 + - pandas=2.3.0=py312h72972c8_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - pango=1.56.3=h0c53d3b_1 - parso=0.8.4=pyhd8ed1ab_1 @@ -299,47 +299,48 @@ dependencies: - pickleshare=0.7.5=pyhd8ed1ab_1004 - pillow=11.2.1=py312h078707f_0 - pip=25.1.1=pyh8b19718_0 - - pixman=0.46.0=had0cd8c_0 + - pixman=0.46.2=had0cd8c_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2 - plac=1.4.5=pyhd8ed1ab_0 - platformdirs=4.3.8=pyhe01879c_0 + - plotly=6.1.2=pyhd8ed1ab_0 - pluggy=1.6.0=pyhd8ed1ab_0 - - polars=1.30.0=default_he6f9c39_0 - - polars-default=1.30.0=py39h4d7386a_0 + - polars=1.31.0=default_hc01efcc_0 + - polars-default=1.31.0=py39h4d7386a_0 - powerplantmatching=0.7.1=pyhd8ed1ab_0 - pre-commit=4.2.0=pyha770c72_0 - progressbar2=4.5.0=pyhd8ed1ab_1 - - proj=9.6.0=h4f671f6_1 - - prometheus_client=0.22.0=pyhd8ed1ab_0 + - proj=9.6.2=h4f671f6_0 + - prometheus_client=0.22.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.51=pyha770c72_0 - prompt_toolkit=3.0.51=hd8ed1ab_0 - psutil=7.0.0=py312h4389bb4_0 - pthread-stubs=0.4=h0e40799_1002 - - pulp=2.8.0=py312he39998a_1 + - pulp=2.8.0=py312he39998a_2 - pure_eval=0.2.3=pyhd8ed1ab_1 - py-cpuinfo=9.0.0=pyhd8ed1ab_1 - pyarrow=20.0.0=py312h2e8e312_0 - pyarrow-core=20.0.0=py312h6a9c419_0_cpu - pycountry=24.6.1=pyhd8ed1ab_0 - pycparser=2.22=pyh29332c3_1 - - pygments=2.19.1=pyhd8ed1ab_0 + - pygments=2.19.2=pyhd8ed1ab_0 - pyjwt=2.10.1=pyhd8ed1ab_0 - pylint=3.3.7=pyhe01879c_0 - pyogrio=0.11.0=py312h6e88f47_0 - pyparsing=3.2.3=pyhd8ed1ab_1 - pyproj=3.7.1=py312h5ea471a_1 - - pypsa=0.34.1=pyhd8ed1ab_0 - - pyreadline3=3.5.4=py312hf8493c8_0 + - pypsa=0.35.0=pyhd8ed1ab_0 + - pyreadline3=3.5.4=py312h2e8e312_1 - pyscipopt=5.5.0=py312h275cf98_0 - pyshp=2.3.1=pyhd8ed1ab_1 - - pyside6=6.9.0=py312h520aab8_0 + - pyside6=6.9.1=py312h0ba07f7_0 - pysocks=1.7.1=pyh09c184e_7 - - pytables=3.10.2=py312h21e9067_4 - - pytest=8.3.5=pyhd8ed1ab_0 - - python=3.12.10=h3f84c4b_0_cpython + - pytables=3.10.2=py312h5195da4_5 + - pytest=8.4.1=pyhd8ed1ab_0 + - python=3.12.11=h3f84c4b_0_cpython - python-dateutil=2.9.0.post0=pyhff2d567_1 - python-fastjsonschema=2.21.1=pyhd8ed1ab_0 - - python-gil=3.12.10=hd8ed1ab_0 + - python-gil=3.12.11=hd8ed1ab_0 - python-json-logger=2.0.7=pyhd8ed1ab_0 - python-tzdata=2025.2=pyhd8ed1ab_0 - python-utils=3.9.1=pyhff2d567_1 @@ -349,47 +350,47 @@ dependencies: - pywinpty=2.0.15=py312h275cf98_0 - pyxlsb=1.0.10=pyhd8ed1ab_0 - pyyaml=6.0.2=py312h31fea79_2 - - pyzmq=26.4.0=py312hd7027bb_0 + - pyzmq=27.0.0=py312hd7027bb_0 - qhull=2020.2=hc790b64_5 - - qt6-main=6.9.0=h02ddd7d_3 + - qt6-main=6.9.1=h02ddd7d_0 - rasterio=1.4.3=py312ha172ac9_1 - re2=2024.07.02=haf4117d_3 - referencing=0.36.2=pyh29332c3_0 - - requests=2.32.3=pyhd8ed1ab_1 + - requests=2.32.4=pyhd8ed1ab_0 - requests-oauthlib=1.4.0=pyhd8ed1ab_0 - reretry=0.11.8=pyhd8ed1ab_1 - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rioxarray=0.19.0=pyhd8ed1ab_0 - rpds-py=0.25.1=py312h8422cdd_0 - - ruff=0.11.12=py312h24a9d25_0 - - scikit-learn=1.6.1=py312h816cc57_0 + - ruff=0.12.0=py312h24a9d25_0 + - scikit-learn=1.7.0=py312h816cc57_1 - scip=9.2.2=h3905589_2 - scipy=1.15.2=py312h451d5c4_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - send2trash=1.8.3=pyh5737063_1 - - setuptools=80.8.0=pyhff2d567_0 + - setuptools=80.9.0=pyhff2d567_0 - shapely=2.0.7=py312h3f81574_1 - six=1.17.0=pyhd8ed1ab_0 - smart_open=7.1.0=pyhd8ed1ab_0 - smmap=5.0.2=pyhd8ed1ab_0 - snakemake-executor-plugin-cluster-generic=1.0.9=pyhdfd78af_0 - - snakemake-executor-plugin-slurm=1.3.6=pyhdfd78af_0 + - snakemake-executor-plugin-slurm=1.4.0=pyhdfd78af_0 - snakemake-executor-plugin-slurm-jobstep=0.3.0=pyhdfd78af_0 - snakemake-interface-common=1.18.0=pyhdfd78af_0 - - snakemake-interface-executor-plugins=9.3.5=pyhdfd78af_0 + - snakemake-interface-executor-plugins=9.3.6=pyhdfd78af_0 - snakemake-interface-logger-plugins=1.2.3=pyhdfd78af_0 - snakemake-interface-report-plugins=1.1.0=pyhdfd78af_0 - snakemake-interface-storage-plugins=4.2.1=pyhdfd78af_0 - - snakemake-minimal=9.5.1=pyhdfd78af_0 + - snakemake-minimal=9.6.1=pyhdfd78af_0 - snakemake-storage-plugin-http=0.3.0=pyhdfd78af_0 - snappy=1.2.1=h500f7fa_1 - sniffio=1.3.1=pyhd8ed1ab_1 - snuggs=1.4.7=pyhd8ed1ab_2 - sortedcontainers=2.4.0=pyhd8ed1ab_1 - soupsieve=2.7=pyhd8ed1ab_0 - - sqlite=3.50.0=h2466b09_0 + - sqlite=3.50.1=hfd05255_4 - stack_data=0.6.3=pyhd8ed1ab_1 - statsmodels=0.14.4=py312h1a27103_0 - tabulate=0.9.0=pyhd8ed1ab_2 @@ -401,14 +402,14 @@ dependencies: - tinycss2=1.4.0=pyhd8ed1ab_0 - tk=8.6.13=h2c6b04d_2 - tomli=2.2.1=pyhd8ed1ab_1 - - tomlkit=0.13.2=pyha770c72_1 + - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - tornado=6.5.1=py312h4389bb4_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - types-python-dateutil=2.9.0.20250516=pyhd8ed1ab_0 - - typing-extensions=4.13.2=h0e9735f_0 - - typing_extensions=4.13.2=pyh29332c3_0 + - typing-extensions=4.14.0=h32cad80_0 + - typing_extensions=4.14.0=pyhe01879c_0 - typing_utils=0.1.0=pyhd8ed1ab_1 - tzdata=2025b=h78e105d_0 - ucrt=10.0.22621.0=h57928b3_1 @@ -417,12 +418,12 @@ dependencies: - unidecode=1.3.8=pyh29332c3_1 - uri-template=1.3.0=pyhd8ed1ab_1 - uriparser=0.9.8=h5a68840_0 - - urllib3=2.4.0=pyhd8ed1ab_0 + - urllib3=2.5.0=pyhd8ed1ab_0 - validators=0.35.0=pyhd8ed1ab_0 - - vc=14.3=h2b53caa_26 - - vc14_runtime=14.42.34438=hfd919c2_26 + - vc=14.3=h41ae7f8_26 + - vc14_runtime=14.44.35208=h818238b_26 - virtualenv=20.31.2=pyhd8ed1ab_0 - - vs2015_runtime=14.42.34438=h7142326_26 + - vs2015_runtime=14.44.35208=h38c0c73_26 - wcwidth=0.2.13=pyhd8ed1ab_1 - webcolors=24.11.1=pyhd8ed1ab_0 - webencodings=0.5.1=pyhd8ed1ab_3 @@ -432,7 +433,7 @@ dependencies: - win_inet_pton=1.1.0=pyh7428d3b_8 - winpty=0.4.3=4 - wrapt=1.17.2=py312h4389bb4_0 - - xarray=2025.4.0=pyhd8ed1ab_0 + - xarray=2025.6.1=pyhd8ed1ab_1 - xerces-c=3.2.5=he0c23c2_2 - xlrd=2.0.1=pyhd8ed1ab_3 - xorg-libice=1.1.2=h0e40799_0 @@ -445,10 +446,10 @@ dependencies: - xorg-libxt=1.3.1=h0e40799_0 - xyzservices=2025.4.0=pyhd8ed1ab_0 - yaml=0.2.5=h8ffe710_2 - - yte=1.7.0=pyha770c72_1 + - yte=1.8.1=pyha770c72_0 - zeromq=4.3.5=ha9f60a1_7 - zict=3.0.0=pyhd8ed1ab_1 - - zipp=3.22.0=pyhd8ed1ab_0 + - zipp=3.23.0=pyhd8ed1ab_0 - zlib=1.3.1=h2466b09_2 - zlib-ng=2.2.4=hbb528cf_0 - zstandard=0.23.0=py312h4389bb4_2 @@ -457,4 +458,4 @@ dependencies: - gurobipy == 12.0.2 --hash=sha256:5ef46799be0cefd5d33449c10d54a68826f8c32690d0185be0a0ba4834d7b595 - ply == 3.11 --hash=sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce - pyomo == 6.9.2 --hash=sha256:13ebb2f974f97afa626c2712d4f27e09a1c3d18ca11755676b743504a76e5161 - - tsam == 2.3.7 --hash=sha256:8b102ec4d9991630fd39b76807ea639df14fb6013af37c574f5c343e26fa1cf5 + - tsam == 2.3.9 --hash=sha256:edcc4febb9e1dacc028bc819d710974ede8f563467c3d235a250f46416f93a1b From 478b7abcd846b6483f8379773676c776791e85bf Mon Sep 17 00:00:00 2001 From: Fabian Hofmann Date: Thu, 26 Jun 2025 10:22:06 +0200 Subject: [PATCH 2/6] fix: make workflow compatible with optimization framework changes (#1720) * fix: make workflow compatible with optimization framework changes * refac: rename to pypsa_v1 --- .gitignore | 5 +++++ scripts/_helpers.py | 2 ++ scripts/add_electricity.py | 5 ++++- scripts/base_network.py | 7 +++++-- scripts/plot_balance_map.py | 4 +++- scripts/solve_network.py | 36 ++++++++++++++++++++++-------------- 6 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index f09ae60ed7..71ef3bf35d 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,8 @@ merger-todos.md *.html # private dev folder dev/* + +# ai coding tools +CLAUDE.md +.claude/ +.github/copilot-instructions.md \ No newline at end of file diff --git a/scripts/_helpers.py b/scripts/_helpers.py index 4912bc1b13..90eef50099 100644 --- a/scripts/_helpers.py +++ b/scripts/_helpers.py @@ -29,6 +29,8 @@ REGION_COLS = ["geometry", "name", "x", "y", "country"] +PYPSA_V1 = bool(re.match(r"^0\.35\.0\.post1\.dev\d{3}", pypsa.__version__)) + def get_scenarios(run): scenario_config = run.get("scenarios", {}) diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index aa0316ac48..2ddde99abe 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -61,6 +61,7 @@ from pypsa.clustering.spatial import DEFAULT_ONE_PORT_STRATEGIES, normed_or_uniform from scripts._helpers import ( + PYPSA_V1, configure_logging, get_snapshots, rename_techs, @@ -438,7 +439,9 @@ def attach_load( ) # apply clustering busmap - busmap = pd.read_csv(busmap_fn, dtype=str).set_index("Bus").squeeze() + busmap = pd.read_csv(busmap_fn, dtype=str) + index_col = "name" if PYPSA_V1 else "Bus" + busmap = busmap.set_index(index_col).squeeze() load = load.groupby(busmap).sum().T logger.info(f"Load data scaled by factor {scaling}.") diff --git a/scripts/base_network.py b/scripts/base_network.py index af35cbc9ad..16089a51eb 100644 --- a/scripts/base_network.py +++ b/scripts/base_network.py @@ -837,7 +837,7 @@ def voronoi(points, outline, crs=4326): voronoi = gpd.GeoDataFrame(geometry=voronoi) joined = gpd.sjoin_nearest(pts, voronoi, how="right") - return joined.dissolve(by="Bus").reindex(points.index).squeeze() + return joined.dissolve(by="name").reindex(points.index).squeeze() def process_onshore_regions( @@ -856,6 +856,7 @@ def process_onshore_regions( .drop_duplicates(subset=["x", "y", "country"], keep="first")[ ["x", "y", "country"] ] + .rename_axis("name") ) onshore_regions_adm = gpd.GeoDataFrame( { @@ -891,7 +892,9 @@ def process_offshore_regions( c_b = buses.country == country offshore_shape = offshore_shapes[country] - offshore_locs = buses.loc[c_b & buses.substation_off, ["x", "y"]] + offshore_locs = buses.loc[c_b & buses.substation_off, ["x", "y"]].rename_axis( + "name" + ) offshore_regions_c = gpd.GeoDataFrame( { "name": offshore_locs.index, diff --git a/scripts/plot_balance_map.py b/scripts/plot_balance_map.py index 8c83d22686..6c1e80180d 100644 --- a/scripts/plot_balance_map.py +++ b/scripts/plot_balance_map.py @@ -14,6 +14,7 @@ from pypsa.statistics import get_transmission_carriers from scripts._helpers import ( + PYPSA_V1, configure_logging, set_scenario_config, update_config_from_wildcards, @@ -122,7 +123,8 @@ buses = n.buses.query("carrier in @carrier").index weights = n.snapshot_weightings.generators prices = weights @ n.buses_t.marginal_price[buses] / weights.sum() - price = prices.rename(n.buses.location).groupby(level="Bus").mean() + level = "name" if PYPSA_V1 else "Bus" + price = prices.rename(n.buses.location).groupby(level=level).mean() if carrier == "co2 stored" and "CO2Limit" in n.global_constraints.index: co2_price = n.global_constraints.loc["CO2Limit", "mu"] diff --git a/scripts/solve_network.py b/scripts/solve_network.py index 4769abfa6f..2817314e5c 100644 --- a/scripts/solve_network.py +++ b/scripts/solve_network.py @@ -45,6 +45,7 @@ from scripts._benchmark import memory_logger from scripts._helpers import ( + PYPSA_V1, configure_logging, get, set_scenario_config, @@ -196,7 +197,7 @@ def add_solar_potential_constraints(n: pypsa.Network, config: dict) -> None: "solar-hsat": config["renewable"]["solar"]["capacity_per_sqkm"] / config["renewable"]["solar-hsat"]["capacity_per_sqkm"], } - rename = {"Generator-ext": "Generator"} + rename = {} if PYPSA_V1 else {"Generator-ext": "Generator"} solar_carriers = ["solar", "solar-hsat"] solar = n.generators[ @@ -556,7 +557,11 @@ def add_CCL_constraints( logger.info("Adding generation capacity constraints per carrier and country") p_nom = n.model["Generator-p_nom"] - gens = n.generators.query("p_nom_extendable").rename_axis(index="Generator-ext") + gens = n.generators.query("p_nom_extendable") + + if not PYPSA_V1: + gens = gens.rename_axis(index="Generator-ext") + if config["solving"]["agg_p_nom_limits"]["agg_offwind"]: rename_offwind = { "offwind-ac": "offwind-all", @@ -706,7 +711,9 @@ def add_BAU_constraints(n: pypsa.Network, config: dict) -> None: mincaps = pd.Series(config["electricity"]["BAU_mincapacities"]) p_nom = n.model["Generator-p_nom"] ext_i = n.generators.query("p_nom_extendable") - ext_carrier_i = xr.DataArray(ext_i.carrier.rename_axis("Generator-ext")) + ext_carrier_i = xr.DataArray(ext_i.carrier) + if not PYPSA_V1: + ext_carrier_i = ext_carrier_i.rename_axis("Generator-ext") lhs = p_nom.groupby(ext_carrier_i).sum() rhs = mincaps[lhs.indexes["carrier"]].rename_axis("carrier") n.model.add_constraints(lhs >= rhs, name="bau_mincaps") @@ -786,11 +793,9 @@ def add_operational_reserve_margin(n, sns, config): vres_i = n.generators_t.p_max_pu.columns if not ext_i.empty and not vres_i.empty: capacity_factor = n.generators_t.p_max_pu[vres_i.intersection(ext_i)] - p_nom_vres = ( - n.model["Generator-p_nom"] - .loc[vres_i.intersection(ext_i)] - .rename({"Generator-ext": "Generator"}) - ) + p_nom_vres = n.model["Generator-p_nom"].loc[vres_i.intersection(ext_i)] + if not PYPSA_V1: + p_nom_vres = p_nom_vres.rename({"Generator-ext": "Generator"}) lhs = summed_reserve + ( p_nom_vres * (-EPSILON_VRES * xr.DataArray(capacity_factor)) ).sum("Generator") @@ -816,9 +821,9 @@ def add_operational_reserve_margin(n, sns, config): dispatch = n.model["Generator-p"] reserve = n.model["Generator-r"] - capacity_variable = n.model["Generator-p_nom"].rename( - {"Generator-ext": "Generator"} - ) + capacity_variable = n.model["Generator-p_nom"] + if not PYPSA_V1: + capacity_variable = capacity_variable.rename({"Generator-ext": "Generator"}) capacity_fixed = n.generators.p_nom[fix_i] p_max_pu = get_as_dense(n, "Generator", "p_max_pu") @@ -885,8 +890,9 @@ def add_TES_energy_to_power_ratio_constraints(n: pypsa.Network) -> None: linear_expr_list.append(linear_expr) # Merge the individual expressions + dim = "Store-ext, Link-ext" if PYPSA_V1 else "name" merged_expr = linopy.expressions.merge( - linear_expr_list, dim="Store-ext, Link-ext", cls=type(linear_expr_list[0]) + linear_expr_list, dim=dim, cls=type(linear_expr_list[0]) ) n.model.add_constraints(merged_expr == 0, name="TES_energy_to_power_ratio") @@ -1022,7 +1028,7 @@ def add_chp_constraints(n): ) n.model.add_constraints(lhs == 0, name="chplink-fix_p_nom_ratio") - rename = {"Link-ext": "Link"} + rename = {} if PYPSA_V1 else {"Link-ext": "Link"} lhs = ( p.loc[:, electric_ext] + p.loc[:, heat_ext] @@ -1065,7 +1071,9 @@ def add_pipe_retrofit_constraint(n): CH4_per_H2 = 1 / n.config["sector"]["H2_retrofit_capacity_per_CH4"] lhs = p_nom.loc[gas_pipes_i] + CH4_per_H2 * p_nom.loc[h2_retrofitted_i] - rhs = n.links.p_nom[gas_pipes_i].rename_axis("Link-ext") + rhs = n.links.p_nom[gas_pipes_i] + if not PYPSA_V1: + rhs = rhs.rename_axis("Link-ext") n.model.add_constraints(lhs == rhs, name="Link-pipe_retrofit") From 38ff9dbac040dcebea83d4ad73446d46bb0634c9 Mon Sep 17 00:00:00 2001 From: Fabian Hofmann Date: Thu, 26 Jun 2025 12:22:05 +0200 Subject: [PATCH 3/6] Align to pypsa v1 api changes (#1722) * fix: make workflow compatible with optimization framework changes * refac: rename to pypsa_v1 * fix: follow up --- scripts/solve_network.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/solve_network.py b/scripts/solve_network.py index 2817314e5c..6dbf2d8273 100644 --- a/scripts/solve_network.py +++ b/scripts/solve_network.py @@ -402,8 +402,12 @@ def add_retrofit_gas_boiler_constraint( dispatch = n.model["Link-p"] active = get_activity_mask(n, c, snapshots, gas_i) rhs = rhs[active] - p_gas = dispatch.sel(Link=gas_i) - p_h2 = dispatch.sel(Link=h2_i) + if PYPSA_V1: + p_gas = dispatch.sel(name=gas_i) + p_h2 = dispatch.sel(name=h2_i) + else: + p_gas = dispatch.sel(Link=gas_i) + p_h2 = dispatch.sel(Link=h2_i) lhs = p_gas + p_h2 From 65798860c06d3ba3bee749f173b2caa772ddcae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20R=C3=BCdt?= <117752024+daniel-rdt@users.noreply.github.com> Date: Fri, 27 Jun 2025 17:09:08 +0200 Subject: [PATCH 4/6] bugfix: add existing renewables consistent with renewable_carriers list (#1717) * feat: include existing capacities only for included renewable carriers * bugfix: only add solar rooftop in distribution grid when solar included in config * revert mock snakemake changes * refactor: change to if not continue style to reduce diff --- rules/solve_myopic.smk | 1 + rules/solve_perfect.smk | 1 + scripts/add_existing_baseyear.py | 12 +++++++++++ scripts/prepare_sector_network.py | 33 ++++++++++++++++--------------- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/rules/solve_myopic.smk b/rules/solve_myopic.smk index 3b95dbe55b..5a96ca9714 100644 --- a/rules/solve_myopic.smk +++ b/rules/solve_myopic.smk @@ -8,6 +8,7 @@ rule add_existing_baseyear: baseyear=config_provider("scenario", "planning_horizons", 0), sector=config_provider("sector"), existing_capacities=config_provider("existing_capacities"), + carriers=config_provider("electricity", "renewable_carriers"), costs=config_provider("costs"), heat_pump_sources=config_provider("sector", "heat_pump_sources"), energy_totals_year=config_provider("energy", "energy_totals_year"), diff --git a/rules/solve_perfect.smk b/rules/solve_perfect.smk index fb073d014c..14a17c63ef 100644 --- a/rules/solve_perfect.smk +++ b/rules/solve_perfect.smk @@ -6,6 +6,7 @@ rule add_existing_baseyear: baseyear=config_provider("scenario", "planning_horizons", 0), sector=config_provider("sector"), existing_capacities=config_provider("existing_capacities"), + carriers=config_provider("electricity", "renewable_carriers"), costs=config_provider("costs"), heat_pump_sources=config_provider("sector", "heat_pump_sources"), energy_totals_year=config_provider("energy", "energy_totals_year"), diff --git a/scripts/add_existing_baseyear.py b/scripts/add_existing_baseyear.py index 081f92a66b..facc584486 100644 --- a/scripts/add_existing_baseyear.py +++ b/scripts/add_existing_baseyear.py @@ -68,6 +68,7 @@ def add_existing_renewables( costs: pd.DataFrame, df_agg: pd.DataFrame, countries: list[str], + renewable_carriers: list[str], ) -> None: """ Add existing renewable capacities to conventional power plant data. @@ -82,6 +83,8 @@ def add_existing_renewables( Network containing topology and generator data countries : list List of country codes to consider + renewable_carriers: list + List of renewable carriers in the network Returns ------- @@ -97,6 +100,8 @@ def add_existing_renewables( irena = irena.unstack().reset_index() for carrier, tech in tech_map.items(): + if carrier not in renewable_carriers: + continue df = ( irena[irena.Technology.str.contains(tech)] .drop(columns=["Technology"]) @@ -149,6 +154,7 @@ def add_power_capacities_installed_before_baseyear( countries: list[str], capacity_threshold: float, lifetime_values: dict[str, float], + renewable_carriers: list[str], ) -> None: """ Add power generation capacities installed before base year. @@ -171,6 +177,8 @@ def add_power_capacities_installed_before_baseyear( Minimum capacity threshold lifetime_values : dict Default values for missing data + renewable_carriers: list + List of renewable carriers in the network """ logger.debug(f"Adding power capacities installed before {baseyear}") @@ -223,6 +231,7 @@ def add_power_capacities_installed_before_baseyear( costs=costs, n=n, countries=countries, + renewable_carriers=renewable_carriers, ) # drop assets which are already phased out / decommissioned phased_out = df_agg[df_agg["DateOut"] < baseyear].index @@ -726,6 +735,8 @@ def add_heating_capacities_installed_before_baseyear( options = snakemake.params.sector + renewable_carriers = snakemake.params.carriers + baseyear = snakemake.params.baseyear n = pypsa.Network(snakemake.input.network) @@ -752,6 +763,7 @@ def add_heating_capacities_installed_before_baseyear( countries=snakemake.config["countries"], capacity_threshold=snakemake.params.existing_capacities["threshold_capacity"], lifetime_values=snakemake.params.costs["fill_values"], + renewable_carriers=renewable_carriers, ) if options["heating"]: diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index e8001f12b5..ad42cb2278 100755 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1589,23 +1589,24 @@ def insert_electricity_distribution_grid( n.generators.loc[solar, "capital_cost"] = costs.at["solar-utility", "capital_cost"] fn = solar_rooftop_potentials_fn - potential = pd.read_csv(fn, index_col=["bus", "bin"]).squeeze() - potential.index = potential.index.map(flatten) + " solar" + if len(fn) > 0: + potential = pd.read_csv(fn, index_col=["bus", "bin"]).squeeze() + potential.index = potential.index.map(flatten) + " solar" - n.add( - "Generator", - solar, - suffix=" rooftop", - bus=n.generators.loc[solar, "bus"] + " low voltage", - carrier="solar rooftop", - p_nom_extendable=True, - p_nom_max=potential.loc[solar], - marginal_cost=n.generators.loc[solar, "marginal_cost"], - capital_cost=costs.at["solar-rooftop", "capital_cost"], - efficiency=n.generators.loc[solar, "efficiency"], - p_max_pu=n.generators_t.p_max_pu[solar], - lifetime=costs.at["solar-rooftop", "lifetime"], - ) + n.add( + "Generator", + solar, + suffix=" rooftop", + bus=n.generators.loc[solar, "bus"] + " low voltage", + carrier="solar rooftop", + p_nom_extendable=True, + p_nom_max=potential.loc[solar], + marginal_cost=n.generators.loc[solar, "marginal_cost"], + capital_cost=costs.at["solar-rooftop", "capital_cost"], + efficiency=n.generators.loc[solar, "efficiency"], + p_max_pu=n.generators_t.p_max_pu[solar], + lifetime=costs.at["solar-rooftop", "lifetime"], + ) n.add("Carrier", "home battery") From f72ebe242d45def3239c589a8c166372940d0d98 Mon Sep 17 00:00:00 2001 From: JuliaSvn <144602424+JuliaSvn@users.noreply.github.com> Date: Mon, 30 Jun 2025 08:52:44 +0200 Subject: [PATCH 5/6] Add offwind float to CCL (#1725) --- scripts/solve_network.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/solve_network.py b/scripts/solve_network.py index 6dbf2d8273..f9945579f1 100644 --- a/scripts/solve_network.py +++ b/scripts/solve_network.py @@ -570,6 +570,7 @@ def add_CCL_constraints( rename_offwind = { "offwind-ac": "offwind-all", "offwind-dc": "offwind-all", + "offwind-float": "offwind-all", "offwind": "offwind-all", } gens = gens.replace(rename_offwind) From dcc3891d13f407624917079f374dd8bc2a99d172 Mon Sep 17 00:00:00 2001 From: Amos Schledorn <60692940+amos-schledorn@users.noreply.github.com> Date: Mon, 30 Jun 2025 12:56:21 +0200 Subject: [PATCH 6/6] Fix: Invalid aquifer shapes in build_ates_potentials (#1724) * fix: ensure aquifer geometries are valid in build_ates_potentials.py * fix: add release note for fixing invalid aquifer shape geometries in build_ates_potentials.py --- doc/release_notes.rst | 2 ++ scripts/build_ates_potentials.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 882fdb0506..90b5e0b1a6 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -11,6 +11,8 @@ Release Notes .. Upcoming Release .. ================ +* Fix: Invalid aquifer shape geometries are now fixed in `build_ates_potentials.py` (fixing https://github.com/PyPSA/pypsa-eur/issues/1696) + * Fix: Sanitize columns in `add_brownfield` as it's done for `add_exisiting_baseyear` (https://github.com/PyPSA/pypsa-eur/pull/1676). * (Breaking) Consolidate gap-filling strategies options under a new configuration section `load:fill_gaps` and add a switch (https://github.com/PyPSA/pypsa-eur/pull/1677). The options `load:interpolate_limit` and `load:time_shift_for_large_gaps` are now located under `load:fill_gaps` as `load:fill_gaps:interpolate_limit` and `load:fill_gaps:time_shift_for_large_gaps`. diff --git a/scripts/build_ates_potentials.py b/scripts/build_ates_potentials.py index 245039813a..ee6584151a 100644 --- a/scripts/build_ates_potentials.py +++ b/scripts/build_ates_potentials.py @@ -391,6 +391,8 @@ def check_aquifer_coverage( aquifer_shapes = gpd.read_file(snakemake.input.aquifer_shapes_shp).to_crs( regions_onshore.crs ) + # fix any invalid geometries + aquifer_shapes.geometry = aquifer_shapes.geometry.make_valid() dh_areas = gpd.read_file(snakemake.input.dh_areas).to_crs(regions_onshore.crs)