Skip to content

chore: bump linopy from 0.9.0 to 0.9.1 - #208

Merged
github-actions[bot] merged 1 commit into
mainfrom
dependabot/uv/linopy-0.9.1
Sep 1, 2026
Merged

github-actions[bot] merged 1 commit into
mainfrom
dependabot/uv/linopy-0.9.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 1, 2026

Copy link
Copy Markdown
Contributor

Bumps linopy from 0.9.0 to 0.9.1.

Release notes

Sourced from linopy's releases.

v0.9.1

What's Changed

... (truncated)

Changelog

Sourced from linopy's changelog.

Version 0.9.1

Features

Named expressions

  • You can now store expressions in the model and get them back by name. Model.add_expressions registers a LinearExpression or QuadraticExpression under a name (auto-named expr0, expr1, ... if you don't pass one). Registered expressions live in Model.expressions, a container that works like Model.variables and Model.constraints, and are removed with Model.remove_expressions. They survive Model.to_netcdf/linopy.read_netcdf, Model.copy, copy.copy, copy.deepcopy and pickling. ([#882](https://github.com/PyPSA/linopy/issues/882) <https://github.com/PyPSA/linopy/pull/882>__)

SOS constraints

  • Model.add_sos_constraints now works with any coordinates on the SOS dimension, not only numeric ones. ([#893](https://github.com/PyPSA/linopy/issues/893) <https://github.com/PyPSA/linopy/pull/893>__)

Performance

  • Model.remove_variables is 2-5x faster. The masked labels are filtered once per removal instead of once per constraint group, membership is tested against the contiguous label range rather than by a sort-based isin, and CSR-backed constraints are matched on term positions instead of gathering their labels. ([#895](https://github.com/PyPSA/linopy/issues/895) <https://github.com/PyPSA/linopy/pull/895>__)

Bug fixes

  • An SOS set is now ordered by declaration, not by the values of its coordinates. Labels are names, but they were handed to the solver as SOS weights, so element-for-element identical models could reach different optima — silently changing who is adjacent in a sos_type=2 set — just because their coordinates were named differently. Behaviour change: ascending coordinates are unaffected (this covers every piecewise formulation), descending ones now run in reverse with the same adjacency, and only a sos_type=2 set whose numeric coordinates neither ascend nor descend changes meaning — that case now warns, and sorting the index restores the old order. ([#892](https://github.com/PyPSA/linopy/issues/892) <https://github.com/PyPSA/linopy/issues/892>, [#893](https://github.com/PyPSA/linopy/issues/893) <https://github.com/PyPSA/linopy/pull/893>)
  • Model.remove_variables now ignores the removed variable's masked entries. A masked variable has no label, stored as -1 — the same marker a constraint uses for an unused term slot — so it looked used by every constraint with a free slot, and models built with mask= could silently lose constraints and solve to a wrong optimum. ([#883](https://github.com/PyPSA/linopy/issues/883) <https://github.com/PyPSA/linopy/issues/883>, [#886](https://github.com/PyPSA/linopy/issues/886) <https://github.com/PyPSA/linopy/pull/886>, [#895](https://github.com/PyPSA/linopy/issues/895) <https://github.com/PyPSA/linopy/pull/895>__)
  • Model.remove_variables no longer raises an IndexError on a quadratic objective. A quadratic term is dropped when any of its factors uses the removed variable. ([#883](https://github.com/PyPSA/linopy/issues/883) <https://github.com/PyPSA/linopy/issues/883>, [#895](https://github.com/PyPSA/linopy/issues/895) <https://github.com/PyPSA/linopy/pull/895>)
  • The Xpress interface no longer calls API functions deprecated in Xpress 9.8. ([#880](https://github.com/PyPSA/linopy/issues/880) <https://github.com/PyPSA/linopy/pull/880>__)
  • The docs extra no longer pins numpy<2. ([#869](https://github.com/PyPSA/linopy/issues/869) <https://github.com/PyPSA/linopy/pull/869>__)
  • Using timezone-aware DatetimeIndex coordinates in a model no longer raises a ValueError. The index is now retrieved directly via DataArray.to_index() instead of rebuilding it with pd.Index(), which dropped the timezone info and failed during alignment. ([#898](https://github.com/PyPSA/linopy/issues/898) <https://github.com/PyPSA/linopy/issues/898>__)
Commits
  • 4961c79 release: udpate release notes for v0.9.1
  • 9129b35 fix(sos): order a set by its declaration, not by its coordinate labels (#893)
  • 65e36de fix: ignore masked variable labels when matching constraints (#895)
  • 5d22e35 udpate release notes (#889)
  • 78d00f9 build(deps-dev): bump highspy from 1.15.0 to 1.15.1 (#879)
  • 0d0536f Expressions container (#882)
  • 09e11ad build(deps): bump dask from 2026.6.0 to 2026.7.1 (#878)
  • 81d083c build(deps-dev): bump pandas from 3.0.3 to 3.0.5 (#877)
  • 57f926b build(deps): bump xarray from 2026.4.0 to 2026.7.0 (#876)
  • 6f44463 build(deps): bump polars from 1.41.2 to 1.42.1 (#875)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [linopy](https://github.com/PyPSA/linopy) from 0.9.0 to 0.9.1.
- [Release notes](https://github.com/PyPSA/linopy/releases)
- [Changelog](https://github.com/PyPSA/linopy/blob/master/doc/release_notes.rst)
- [Commits](PyPSA/linopy@v0.9.0...v0.9.1)

---
updated-dependencies:
- dependency-name: linopy
  dependency-version: 0.9.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Dependency updates label Sep 1, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) September 1, 2026 18:10
@github-actions
github-actions Bot merged commit e4bb990 into main Sep 1, 2026
11 of 12 checks passed
@dependabot
dependabot Bot deleted the dependabot/uv/linopy-0.9.1 branch September 1, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants