Published August 19, 2026 | Version v1.3.0

PyPSA: Python for Power System Analysis

Description

Revised release notes are available in the documentation.

What's Changed

  • fix: deterministic edge order in n.graph() by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1764
  • fix(docs): use thread pool in GSA example for cross-platform builds by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1765
  • fix(expressions): assign StorageUnit withdrawal to correct direction by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1761
  • build(deps): bump the github-actions group with 4 updates by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1772
  • perf: improve nodal balance constraint building by @koen-vg in https://github.com/PyPSA/PyPSA/pull/1770
  • add 'end of python code' in optimisation section by @gincrement in https://github.com/PyPSA/PyPSA/pull/1768
  • Fix typo by @ctmbl in https://github.com/PyPSA/PyPSA/pull/1787
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/PyPSA/PyPSA/pull/1786
  • fix(plot): exclude matplotlib 3.11.0, which crashes faceted plots by @oldrobotdev in https://github.com/PyPSA/PyPSA/pull/1781
  • fix: raise TypeError when iterating a Network by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1793
  • ci: commit and use uv.lock file by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1794
  • fix(docs): clarify Store marginal_cost is applied to net dispatch by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1775
  • add ennoh to users by @martacki in https://github.com/PyPSA/PyPSA/pull/1797
  • ci: run reduced test matrix on PRs by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1795
  • build(deps): bump idna from 3.11 to 3.15 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1815
  • build(deps): bump pillow from 12.1.1 to 12.2.0 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1813
  • build(deps): bump nbconvert from 7.17.0 to 7.17.1 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1812
  • build(deps): bump jupyterlab from 4.5.4 to 4.5.9 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1810
  • build(deps): bump pymdown-extensions from 10.21 to 10.21.3 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1807
  • build(deps): bump tornado from 6.5.4 to 6.5.7 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1805
  • build(deps): bump lxml from 6.0.2 to 6.1.0 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1801
  • build(deps): bump mistune from 3.2.0 to 3.3.0 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1798
  • build(deps): bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1800
  • ci: validate external doc links with lychee by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1777
  • Fix: properly assign status to non-committable assets in mixed asset set by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1766
  • fix: clarify error message for misaligned DataFrame columns in n.add by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1776
  • opt: align statistics grouper to expression name order by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1821
  • ci: run dependebot PRs only on direct deps by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1822
  • ci: run flaky external link checks only on scheduled daily runs by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1823
  • build(deps): bump the uv group across 1 directory with 30 updates by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1825
  • build(deps): bump actions/setup-python from 6 to 7 in the github-actions group by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1824
  • Remove reliance on linopy internals in optimization module by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1817
  • build(deps): bump gitpython from 3.1.46 to 3.1.52 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1833
  • Maintenance optimization by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1576
  • feat(optimization): support phase_shift in LOPF incl. optimisable taps by @MaykThewessen in https://github.com/PyPSA/PyPSA/pull/1661
  • Vectorize isin check by @tanelk in https://github.com/PyPSA/PyPSA/pull/1844
  • build(deps): bump tsam from 2.3.9 to 3.4.1 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1839
  • perf: import and export speedup by @koen-vg in https://github.com/PyPSA/PyPSA/pull/1771
  • fix: bump locked linopy and fix doctests by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1847
  • Add PyPSA-CL model to the Americas list by @paredes-vergara in https://github.com/PyPSA/PyPSA/pull/1851
  • test: seed seaborn for plot generation by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1852
  • ci: consolidate uv dependabot updates into a single PR by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1849
  • fix: stabilize test suite by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1854
  • ci: pin github actions to commit shas by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1859
  • build(deps): bump hynek/build-and-inspect-python-package from 2.18.0 to 3.0.1 in the github-actions group by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1860
  • Replace GPL-licensed Levenshtein with MIT rapidfuzz by @jvgkr in https://github.com/PyPSA/PyPSA/pull/1832
  • build(deps): bump the uv group across 1 directory with 15 updates by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1853
  • feat: Add piecewise linear costs and constraints by @coroa in https://github.com/PyPSA/PyPSA/pull/1603
  • build(deps): bump gitpython from 3.1.52 to 3.1.57 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1862
  • Add Chile's Ministry of Energy to user list by @AndreasHD11 in https://github.com/PyPSA/PyPSA/pull/1864
  • fix: support matplotlib 3.11 by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1863
  • build(deps): bump pymdown-extensions from 10.21.3 to 11.0.1 by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1867
  • fix: accept any list like value for carrier and groupby arguments by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1869
  • test: remove test_bugs.py and move all its tests by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1872
  • fix: piecewise pandas v3 compatibility by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1871
  • docs: render pre-executed notebooks instead of executing on every build by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1874
  • fix(optimization): inactive committable components fix by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1870
  • fix: support ramp limits under set_scenarios by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1873
  • Fix memory spike reading netCDF networks with shapes by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1830
  • fix: use capital cost accessor, dont ignore cost_attribute in installed_capex stat by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1876
  • fix: include fom in system_cost by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1877
  • docs: more exclusions for lychee link checker by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1878
  • feat: support pandas str dtype, require pandas 3 and pyarrow by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1858
  • Update example-3.ipynb by @Danielnied in https://github.com/PyPSA/PyPSA/pull/1879
  • build(deps): bump the uv group across 1 directory with 8 updates by @dependabot[bot] in https://github.com/PyPSA/PyPSA/pull/1880
  • ci: fix notebook execution in docs build by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1881
  • Prepare optimization module for linopy v1 semantics by @FabianHofmann in https://github.com/PyPSA/PyPSA/pull/1829
  • fix: apply tech_capacity_expansion_limit when not passing investment_period by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1886
  • fix: skip linearized unit commitment tightening for extendable committables by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1887
  • fix: make networks with sub-networks picklable by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1889
  • fix: docs build after linopy v1 merge by @lkstrp in https://github.com/PyPSA/PyPSA/pull/1890

New Contributors

  • @ctmbl made their first contribution in https://github.com/PyPSA/PyPSA/pull/1787
  • @oldrobotdev made their first contribution in https://github.com/PyPSA/PyPSA/pull/1781
  • @tanelk made their first contribution in https://github.com/PyPSA/PyPSA/pull/1844
  • @paredes-vergara made their first contribution in https://github.com/PyPSA/PyPSA/pull/1851
  • @jvgkr made their first contribution in https://github.com/PyPSA/PyPSA/pull/1832
  • @AndreasHD11 made their first contribution in https://github.com/PyPSA/PyPSA/pull/1864
  • @Danielnied made their first contribution in https://github.com/PyPSA/PyPSA/pull/1879

Full Changelog: https://github.com/PyPSA/PyPSA/compare/v1.2.4...v1.3.0

Notes

If you use this package, please cite the corresponding manuscript in Journal of Open Research Software.

Files

PyPSA/PyPSA-v1.3.0.zip

Files (10.2 MB)

Name Size Download all
md5:00649a8d425a029e3978a3a882542009
10.2 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/PyPSA/PyPSA/tree/v1.3.0 (URL)

Software