Published May 11, 2026 | Version v0.7.0
Software Open

PyPSA/linopy: v0.7.0

  • 1. Open Energy Transition
  • 2. Technische Universität Berlin
  • 3. @open-energy-transition
  • 4. @MOSEK
  • 5. @WZBSocialScienceCenter
  • 6. University of Applied Sciences Aachen
  • 7. Deutsche Post DHL Group
  • 8. TU Berlin
  • 9. Doing The Math
  • 10. International Institute for Applied Systems Analysis (IIASA)
  • 11. IDEA @ NCBJ
  • 12. open-energy-transition

Description

What's Changed

  • feat: add sos reformulations into linopy to simplify adoption of new sos features by @FBumann in https://github.com/PyPSA/linopy/pull/549
  • feat: add piecewise linear constraint API (SOS2, incremental, disjunctive) by @FBumann in https://github.com/PyPSA/linopy/pull/576
  • Add reformulate_sos='auto' support to solve() by @FabianHofmann in https://github.com/PyPSA/linopy/pull/595
  • fix: make google-cloud-storage and requests optional dependencies by @lkstrp in https://github.com/PyPSA/linopy/pull/589
  • build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/PyPSA/linopy/pull/598
  • Expose the knitro context by @finozzifa in https://github.com/PyPSA/linopy/pull/600
  • enable quadratic for win with scip by @davide-f in https://github.com/PyPSA/linopy/pull/588
  • Piecewise linear constraints: follow-up improvements by @FabianHofmann in https://github.com/PyPSA/linopy/pull/602
  • Fix flaky SCIP time limit test (fixes #577) by @FabianHofmann in https://github.com/PyPSA/linopy/pull/606
  • refac: introduce consistent convention for linopy operations with subsets and supersets by @FabianHofmann in https://github.com/PyPSA/linopy/pull/572
  • Fix Xpress IIS mapping for masked constraints by @FabianHofmann in https://github.com/PyPSA/linopy/pull/605
  • handle missing dual values when barrier solution has no crossover by @danielelerede-oet in https://github.com/PyPSA/linopy/pull/601
  • feat: Add semi-continous variables as an option by @mcoughlin in https://github.com/PyPSA/linopy/pull/593
  • ci: Add CI workflow to test documentation notebooks by @FBumann in https://github.com/PyPSA/linopy/pull/615
  • Add OetcSettings.from_env() and forward solver options through Model.solve() by @FabianHofmann in https://github.com/PyPSA/linopy/pull/612
  • feat: add m.copy() method to create deep copy of model by @bobbyxng in https://github.com/PyPSA/linopy/pull/623
  • feat: Add fix(), unfix(), and fixed to Variable and Variables by @FBumann in https://github.com/PyPSA/linopy/pull/625
  • fix: Include semi-continuous in Variable.type property by @FBumann in https://github.com/PyPSA/linopy/pull/635
  • Re-introduce knitro context closure and export solver quantities by @finozzifa in https://github.com/PyPSA/linopy/pull/633
  • feat: Add relax() and unrelax() to Variable and Variables by @FBumann in https://github.com/PyPSA/linopy/pull/634
  • refac: replace print calls with str-returning format_* methods by @FBumann in https://github.com/PyPSA/linopy/pull/621
  • perf: use numpy array lookup for solution unpacking by @MaykThewessen in https://github.com/PyPSA/linopy/pull/619
  • chore: benchmarks by @FBumann in https://github.com/PyPSA/linopy/pull/567
  • fix: add_variables ignoring coords for DataArray bounds by @FBumann in https://github.com/PyPSA/linopy/pull/614
  • fix: blacklist highs 1.14.0 by @coroa in https://github.com/PyPSA/linopy/pull/654
  • fix: use xarray.Dataset copy instead of constructor by @maurerle in https://github.com/PyPSA/linopy/pull/647
  • feat: add weakref to Model.slots by @FBumann in https://github.com/PyPSA/linopy/pull/656
  • fix: as_dataarray treating multi-index levels as extra dims by @FabianHofmann in https://github.com/PyPSA/linopy/pull/659
  • fix: compute a single IIS in Xpress infeasibility path by @FabianHofmann in https://github.com/PyPSA/linopy/pull/658
  • Update release notes for v0.6.7 by @FabianHofmann in https://github.com/PyPSA/linopy/pull/661
  • fix: raise clear error when solving model without objective by @FBumann in https://github.com/PyPSA/linopy/pull/671
  • build(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/PyPSA/linopy/pull/669
  • feat: Unify piecewise API behind add_piecewise_formulation (sign + LP dispatch) by @FBumann in https://github.com/PyPSA/linopy/pull/638
  • feat: add slopes_align to breakpoints() by @FabianHofmann in https://github.com/PyPSA/linopy/pull/672
  • refac(piecewise): introduce Slopes class, remove breakpoints(slopes=) mode by @FBumann in https://github.com/PyPSA/linopy/pull/673
  • fix: serialize MultiIndex level names as JSON for scipy netCDF backend by @FBumann in https://github.com/PyPSA/linopy/pull/674
  • docs: restructure upcoming changelog and add missing PRs by @FBumann in https://github.com/PyPSA/linopy/pull/675
  • chore: Update release notes for v0.7.0 by @FBumann in https://github.com/PyPSA/linopy/pull/676

New Contributors

  • @finozzifa made their first contribution in https://github.com/PyPSA/linopy/pull/600
  • @davide-f made their first contribution in https://github.com/PyPSA/linopy/pull/588
  • @danielelerede-oet made their first contribution in https://github.com/PyPSA/linopy/pull/601
  • @mcoughlin made their first contribution in https://github.com/PyPSA/linopy/pull/593
  • @bobbyxng made their first contribution in https://github.com/PyPSA/linopy/pull/623
  • @MaykThewessen made their first contribution in https://github.com/PyPSA/linopy/pull/619

Full Changelog: https://github.com/PyPSA/linopy/compare/v0.6.4...v0.7.0

Files

PyPSA/linopy-v0.7.0.zip

Files (1.4 MB)

Name Size Download all
md5:a360be22beb48e9862a431f2688bf482
1.4 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/PyPSA/linopy/tree/v0.7.0 (URL)

Software