Releases: Bravos-Power/pyoframe
Releases · Bravos-Power/pyoframe
v1.2.0
New features
The bitwise or operator (|) is now a useful shortcut (#220). Instead of writing
a.keep_extras() + b.keep_extras()Can now simply write:
a | bOther improvements
- Add option to display logs of model construction to find performance bottlenecks by @staadecker in #215
- Add functions to inspect model size by @staadecker in #216
- Fix incorrect error message during
.overwith unhandled extras. by @staadecker in #217 - Improve error and debug messages by @staadecker in #219
- Improve documentation by @staadecker in #222
Full Changelog: v1.1.0...v1.2.0
v1.1.0
New Features 🎉 🎉
- Pyoframe now supports HiGHS v1.12 which includes a new multi-threaded interior-point solver! (#211 by @staadecker)
- Pyoframe now explicitly supports parameters! Thank you to @brynpickering for the feedback! (#212 by @staadecker)
Before:
susceptance = pl.DataFrame({"line": ["A", "B"], "suscep": [2, 4]}).to_expr()Now (optionally):
susceptance = pf.Param({"line": ["A", "B"], "suscep": [2, 4]})Note that
pf.Paramis just a function that returns anExpressionlike.to_expr().
- Pyoframe now supports dividing by constant expressions (#209 by @staadecker). For example:
reactance = 1 / susceptance # <-- This now works!
- When creating variables, you no longer need to call
.over(…)on the arguments oflbandubbecause, now,lbandubwill automatically be broadcasted to match the variable's dimensions. Existing code that used.over(…)will continue working just fine. (#210 by @staadecker).
Improvements
- Improved documentation, particularly a "Learn the Basics" page! (#214 by @staadecker)
- Thank you @n-takumasa for correcting an outdated error message when Ipopt is not installed! (#205)
New Contributors
- @n-takumasa made their first contribution in #205 🥳 🥳
Full Changelog: v1.0.1...v1.1.0
v1.0.1
What's Changed
Fix
- Block HiGHS v1.12 (released last week) since it introduces potentially breaking changes that will need to be investigated. (Please open an issue if support for HiGHS v1.12 is important to you!)
Chores
- Fix pre-release banner displaying when it shouldn't by @staadecker in #191
- Add dependabot .yml and limit to highs 1.11 by @staadecker in #194
- Allow dependabot to run workflows by @staadecker in #196
Full Changelog: v1.0.0...v1.0.1
v1.0.0 🎉🎉
Version 1 is available! See the migration guide.
What's Changed
Breaking changes (see migration guide)
- Rename
add_dimtoover, document, and generatenameto improve errors by @staadecker in #170 - Deprecate
pf.sumby @staadecker in #159 - Rename
drop_unmatchedandkeep_unmatchedby @staadecker in #185
Improved performance
- Improve performance by @staadecker in #172
New features
- Add COPT support to pyoframe by @eduardosalaz in #181
- Add support for ipopt solver by @eduardosalaz in #142
- Fix sign on ipopt duals (minimization problems only) by @staadecker in #155
- Add
maintain_orderoption by @staadecker in #156 - Move dtype to
Config.id_dtypeto allow for problems with >4 billion variables by @staadecker in #189
Bug fix
- Fix bug where HiGHS doesn't detect convex quadratic problems by @staadecker in #188
Better developer experience
- Improve documentation by @staadecker in #146
- Improve API documentation by @staadecker in #149
- Prevent type checking errors when accessing
Modelelements. by @staadecker in #157 - Use tables when printing dimensioned objects by @staadecker in #154
- Reduce and clarify public API by @staadecker in #158
- Rename
add_dimtoover, document, and generatenameto improve errors by @staadecker in #170 - Improve
Modelsignature and.objective. Implement.has_objectiveby @staadecker in #166 - Display multiple versions of the documentation with
mikeby @staadecker in #174 - Fix mike dependencies by @staadecker in #175
- Display pre-release banner by @staadecker in #177
- Improve migration docs by @staadecker in #178
- Reference API improvements by @staadecker in #186
- Hint when using
<or>instead of<=or>=and addSet.dropby @staadecker in #187
Internal changes
- Add
raiseoption toConfig.default_solverto improve testing by @staadecker in #151 - Fix broken tests due to unexpected deprecation by @staadecker in #164
- Fix deprecation, install and QuadConstr.attr bug by @staadecker in #167
- Add CI check for building documentation by @staadecker in #176
- Fix packaging by @staadecker in #180
- Setup COPT in CI pipeline by @staadecker in #183
- Minor improvements by @staadecker in #190
New Contributors
- @eduardosalaz made their first contribution in #142
Full Changelog: v0.2.0...v1.0.0
v1.0.0-alpha
What's Changed
See migration guide.
- Add support for ipopt solver by @eduardosalaz in #142
- Improve documentation by @staadecker in #146
- Add
raiseoption toConfig.default_solverto improve testing by @staadecker in #151 - Improve API documentation by @staadecker in #149
- Fix sign on ipopt duals (minimization problems only) by @staadecker in #155
- Add
maintain_orderoption by @staadecker in #156 - Prevent type checking errors when accessing
Modelelements. by @staadecker in #157 - Use tables when printing dimensioned objects by @staadecker in #154
- Reduce and clarify public API by @staadecker in #158
- Deprecate
pf.sumby @staadecker in #159 - Fix broken tests due to unexpected deprecation by @staadecker in #164
- Fix deprecation, install and QuadConstr.attr bug by @staadecker in #167
- Rename
add_dimtoover, document, and generatenameto improve errors by @staadecker in #170 - Improve
Modelsignature and.objective. Implement.has_objectiveby @staadecker in #166 - Improve performance by @staadecker in #172
- Display multiple versions of the documentation with
mikeby @staadecker in #174 - Fix mike dependencies by @staadecker in #175
- Add CI check for building documentation by @staadecker in #176
- Display pre-release banner by @staadecker in #177
- Improve migration docs by @staadecker in #178
- Fix packaging by @staadecker in #180
New Contributors
- @eduardosalaz made their first contribution in #142
Full Changelog: v0.2.0...v1.0.0-alpha
v0.2.1 Bug fixes
What's Changed
@staadecker in #168
- Fix bug where
Constraint.attrmay have returned incorrect values for quadratic constraints. - Fix confusing error message when
.attrraised an error (e.g. when callingVariable.solutionbefore having solved the model)
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
Breaking changes 💥
- Dropped support for Polars 0.20 in #137
Bug fixes 🐞
- Fix bug where quadratic objective functions were being treated as linear expressions leading to incorrect results (thanks @eduardosalaz for catching this!) #145
New features 🚀
- Add support for Python 3.13 in #137
- Add support for writing .lp and .sol files in HiGHS by @staadecker in #114
New examples
- Sudoku example by @aurelije in #115
- Pumped storage example by @aurelije in #119
- Add production planning to examples by @aurelije in #116 :party:
Other improvements
- Various internal improvements including switching to ruff and improving the security of the CI/CD pipelines by @staadecker #109 , #110 , #118 , #120 , #121 , #123 , #124 , #95 , #127 , #140
- Improve testing and examples by @staadecker in #112
- Improve documentation by @staadecker in #125
- Improve .dispose() function by @staadecker in #138
- Automatically run tests on documentation code by @staadecker in #141
New Contributors
Full Changelog: v0.1.4...v0.1.5
v0.1.4
v0.1.3
What's Changed
- Improved quadratic documentation by @kjartan-at-bravos in #94
- Added
model.dispose()by @staadecker in #98 - Fixed bug where zero rows are deleted by @staadecker in #97
Full Changelog: v0.1.2...v0.1.3
v0.1.2
What's Changed
- Add support for polars-lts-cpu by @tyler-petroske in #92
New Contributors
- @tyler-petroske made their first contribution in #92
Full Changelog: v0.1.1...v0.1.2