Pyomo

Latest version: v6.7.1

Safety actively analyzes 623827 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

6.7.1

Highlight of the 6.7 release series

- Added support for Python 3.12
- Removed support for Python 3.7
- New writer for converting linear models to matrix form
- Improved handling of nested GDPs
- New packages:
- latex_printer: print Pyomo models to a LaTeX compatible format
- contrib.solver: preview of redesigned solver interfaces
- ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

- General
- Add support for tuples in `ComponentMap`; add `DefaultComponentMap` (3150)
- Update `Path`, `PathList`, and `IsInstance` Domain Validators (3144)
- Remove usage of `__all__` (3142)
- Extend Path and Type Checking Validators of `common.config` (3140)
- Update Copyright Statements (3139)
- Update `ExitNodeDispatcher` to better support extensibility (3125)
- Create contributors data gathering script (3117)
- Prevent duplicate entries in ConfigDict declaration order (3116)
- Remove unnecessary `__future__` imports (3109)
- Import pandas through pyomo.common.dependencies (3102)
- Update links to workshop slides (3079)
- Remove incorrect use of identity (is) comparisons (3061)
- Core
- Add `Block.register_private_data_initializer()` (3153)
- Generalize the simple_constraint_rule decorator (3152)
- Fix edge case assigning new numeric types to Var/Param with units (3151)
- Add private_data to `_BlockData` (3138)
- IndexComponent create implicit sets as "anonymous" sets (3075)
- Add `all_different` and `count_if` to the logical expression system (3058)
- Fix RangeSet.__len__ when defined by floats (3119)
- Overhaul the `Suffix` component (3072)
- Enforce expression immutability in `expr.args` (3099)
- Improve NumPy registration when assigning numpy to Param (3093)
- Track changes in PyPy behavior introduced in 7.3.14 (3087)
- Remove automatic numpy import (3077)
- Fix `range_difference` for Sets with nonzero anchor points (3063)
- Clarify errors raised by accessing Sets by positional index (3062)
- Documentation
- Update intersphinx links, remove docs for nonfunctional code (3155)
- Update MPC documentation and citation (3148)
- Fix an error in the documentation for LinearExpression (3090)
- Fix Pyomo.DoE documentation (3070)
- Fix latex_printer documentation (3066)
- Solver Interfaces
- Preview release of new solver interfaces as pyomo.contrib.solver
(3137, 3156)
- Make error msg more explicit wrt different interfaces (3141)
- NLv2: only raise exception for empty models in the legacy API (3135)
- Add `to_expr()` to AMPLRepn, fix NLWriterInfo return type (3095)
- Testing
- Update Release Wheel Builder Action (3149)
- Actions Version Update: Address node.js deprecations (3118)
- New Black Major Release (24.1.0) (3108)
- Use scip for PyROS tests (3104)
- Add missing solver dependency flags for OnlineDocs tests (3094)
- Re-enable `contrib.viewer.tests.test_qt.py` (3085)
- Add automated testing of OnlineDocs examples (3080)
- Silence deprecation warnings emitted by Pyomo tests (3076)
- Fix Python 3.12 tests (manage `pyutilib`, `distutils` dependencies) (3065)
- DAE
- Replace deprecated `numpy.math` alias with standard `math` module (3074)
- GDP
- Handle nested GDPs correctly in all the transformations (3145)
- Fix bugs in nested models in gdp.hull transformation (3143)
- Various bug fixes in gdp.mbigm transformation (3073)
- Add GDP => MINLP Transformation (3082)
- Contributed Packages
- GDPopt: Fix lbb solve_data bug (3133)
- GDPopt: Adding missing import for gdpopt.enumerate (3105)
- FBBT: Extend `fbbt.ExpressionBoundsVisitor` to handle relational
expressions and Expr_if (3129)
- incidence_analysis: Method to add an edge in IncidenceGraphInterface (3120)
- incidence_analysis: Add subgraph method to IncidencegraphInterface (3122)
- incidence_analysis: Add `ampl_repn` option (3069)
- incidence_analysis: Update documentation (3067)
- interior_point: Resolve test failure due to Mumps update (3114)
- MindtPy: Various bug fixes (3034)
- PyROS: Update Solver Argument Resolution and Validation Routines (3126)
- PyROS: Update Subproblem Initialization Routines (3071)
- PyROS: Fix DR polishing under nominal objective focus (3060)

6.7.0

Highlights of the 6.7 release series

- Added support for Python 3.12
- Removed support for Python 3.7
- New writer for converting linear models to matrix form
- New packages:
- latex_printer (print Pyomo models to a LaTeX compatible format)
- ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

- General
- Remove Python 3.7, add Python 3.12 Support (3050, 2956)
- Update report_timing() to support context manager API (3039)
- Add `Preformatted` class for logging preformatted messages (2998)
- QuadraticRepnVisitor: Improve nonlinear expression expansion (2997)
- Add `CITATION` file to main repository (2992)
- Minor typo / formatting fixes (3010, 2975)
- Core
- Fix exception from interaction of Gurobi, Pint, Dask, and Threading (3026)
- Fix differentiation of `Expressions` with `native_numeric_types` (3017)
- Warn for explicit declaration of immutable params with units (3004)
- Use `SetInitializer` for initializing `Param` domains; reinitializing
`IndexedVar` domains (3001)
- Ensure templatize_constraint returns an expression (2983)
- Prevent multiple applications of the scaling transform (2979)
- Solver Interfaces
- Remove presolve-eliminated variables from named expressions (3056)
- Improve LP/NL writer determinism (3054)
- Add "writer" for converting linear models to standard matrix form (3046)
- NLv2/LPv2: Log which suffix values were skipped at the DEBUG level (3043)
- NLv2: add linear presolve and general problem scaling support (3037)
- Adjust mps writer format for integer variable declaration (2946)
- Fix scip results processing (3023)
- Fix quadratic objective off-diagonal-terms in cplex_direct interface (3025)
- Consolidate walker logic in LP/NL representations (3015)
- LP writer: warn user for ignored suffixes (2982)
- Update handling of `0*` in linear, quadratic walkers (2981)
- Testing
- Pin `gurobipy` version for testing to 10.0.3 (3053)
- Update Performance Plot URL (3033)
- Track change in Black rules (3021)
- Resolve build infrastructure errors (with mpi4py, gams, networkx) (3018)
- Improve GHA conda env package setup (3013, 2967)
- Update Gurobi license checks in tests (3011)
- Skip `fileutils` test failure that persists in OSX 12.7 (3008)
- LINTING: New Version of `crate-ci/typos` (2987)
- GDP
- Improve Disjunction construction error for invalid types (3042)
- Adding new walker for compute_bounds_on_expr (3027)
- Fix bugs in gdp.bound_pretransformation (2973)
- Fix various bugs in GDP transformations (3009)
- Add a few more GDP examples (2932)
- Contributed Packages
- APPSI: Add interface to WNTR (2902)
- APPSI: Capture HiGHS output when initializing model (3005)
- APPSI: Fix auto-update when unfixing variable and changing bounds (2996)
- APPSI: Fix reference bug in HiGHS interface (2995)
- FBBT: Add new walker for compute_bounds_on_expr (3027)
- incidence_analysis: Fix bugs with subset ordering and 0 coefficients (3041)
- incidence_analysis: Update paper reference (2969)
- latex_printer: Add contrib.latex_printer package (2984)
- MindtPy: Add support for GreyBox models (2988)
- parmest: Cleanup examples and tests (3028)
- PyNumero: Handle evaluation errors in CyIpopt solver (2994)
- PyROS: Report relative variable shifts in solver logs (3035)
- PyROS: Update logging system (2990)

6.6.2

Highlights of the 6.0 release series

- Improved stability and robustness of core Pyomo code and solver interfaces
- Integration of Boolean variables into GDP
- Integration of NumPy support into the Pyomo expression system
- Implemented a more performant and robust expression generation system
- Implemented a more performant NL file writer (NLv2)
- Implemented a more performant LP file writer (LPv2)
- Applied [PEP8 standards](https://peps.python.org/pep-0008/) throughout the
codebase
- Added support for Python 3.10, 3.11
- Removed support for Python 3.6
- Removed the `pyomo check` command
- New packages:
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
- CP (Constraint programming models and solver interfaces)
- DoE (Model based design of experiments)
- External grey box models
- IIS (Standard interface to solver IIS capabilities)
- MPC (Data structures/utils for rolling horizon dynamic optimization)
- piecewise (Modeling with and reformulating multivariate piecewise linear
functions)
- PyROS (Pyomo Robust Optimization Solver)
- Structural model analysis
- Rewrite of the TrustRegion Solver

Changes in this release

- **ADVANCE CHANGE NOTICE**
- This will be the last release to support Python 3.7.

- General
- Fall back on `multiprocessing.dummy` when `multiprocessing.Pool` is not
available (2890)
- Clean up implicit function imports (2892)
- Ensure all pyomo modules import without warnings (2897)
- Resolve `FileDownloader.get_os_version` exception for missing
`lsb_release` (2911)
- Improve `calculate_variable_from_constraint` error messages (2914)
- Add function for collecting expressions with unit inconsistencies (2904)
- Fix loading Scalar Param from `.dat` file (2923)
- Core
- Resolve kernel pickle/clone errors (2916)
- Reorganize numeric expression modules (2909)
- Resolve error categorizing some Var discrete domains as "integer" (2954)
- Named expressions: `expr` should always return `NumericValue` (2948)
- Support kwargs in partial objects passed to Initializer() (2960)
- Remove `expr.current` (2910)
- Documentation
- Fixing a 'that' vs. 'which' mistake in error about bounds crossing (2950)
- Add Explicit Linting Instructions to PR Template (2947)
- Update `pyomo.common` documentation (2912)
- Remove HTML4 Forcing in Online Docs (2949)
- Improved documentation for SOS (2875)
- Silence deprecation warnings (2854)
- Solvers Interfaces
- Resolve handling of `{}**0` in Linear/QuadraticRepn (2857)
- Fix Linear/QuadraticRepnVisitor handling of `{}**{float}` (2863, 2865)
- GAMS: fix pickling models, update tests (2913)
- Xpress: fix NLP results processing for Xpress 9.2.0 (2921)
- Improve NaN handling in LP, NL writers (2930)
- Ensure constants written correctly to LP/NL files (2953)
- Testing
- Remove the 'singletest' job from "branches" builds (2917)
- Reactivate NEOS-MOSEK Tests (2870)
- New version of `crate-ci/typos` GitHub Actions (2869, 2931)
- DAE
- Improve error message when attempting to discretize models with circular
references (2943)
- GDP
- Fixing a typo in gdp.hull transformation (2915)
- Add some more instances to the GDP constrained layout example (2838)
- Adding (reversible) `gdp.transform_current_disjunctive_logic`
transformation (2809)
- Contributed Packages
- APPSI: change default behavior to not care where variables live (2903)
- APPSI: Correctly Process Objective Bounds from Gurobi for Nonconvex QCPs
(2898)
- community_detection: fix networkx dependency in doctests (2885)
- cp: Fix bug with `land` in `contrib.logical_to_disjunctive` transformation
(2879)
- DoE: Update tutorial notebook (2889)
- incidence_analysis: Filter variables with non-constant, fixed expressions
that resolve to zero in `get_incident_variables` (2882)
- incidence_analysis: Correct behavior of `linear_only` argument in
`get_incident_variables` (2883)
- MindtPy: Refactor to improve extensibility and maintainability (2887)
- PyNumero: Add `PyNumeroEvaluationError` (2901)
- PyNumero: Make min and max work with MPIBlockVector when some blocks have
size 0 (2896)
- PyNumero: Remove old, unused PyNumero code (2895)
- PyNumero: Fix typo in docstring (2873)
- sensitivity_toolbox: Send lists to `numpy.vstack` rather than iterators
(2881)
- viewer: Fix model viewer (2924)

6.6.1

Highlights of the 6.0 release series

- Improved stability and robustness of core Pyomo code and solver interfaces
- Integration of Boolean variables into GDP
- Integration of NumPy support into the Pyomo expression system
- Implemented a more performant and robust expression generation system
- Implemented a more performant NL file writer (NLv2)
- Implemented a more performant LP file writer (LPv2)
- Applied [PEP8 standards](https://peps.python.org/pep-0008/) throughout the codebase
- Added support for Python 3.10, 3.11
- Removed support for Python 3.6
- Removed the `pyomo check` command
- New packages:
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
- CP (Constraint programming models and solver interfaces)
- DoE (Model based design of experiments)
- External grey box models
- IIS (Standard interface to solver IIS capabilities)
- MPC (Data structures/utils for rolling horizon dynamic optimization)
- piecewise (Modeling with and reformulating multivariate piecewise linear functions)
- PyROS (Pyomo Robust Optimization Solver)
- Structural model analysis
- Rewrite of the TrustRegion Solver

Changes in this release

- General
- Update cmake builder for recent setuptools (2847)
- Fixing minor formatting for 6.6.0 release changes (2842)
- Silence deprecation warnings (2854)
- Core
- Update indentation handling in `config.StringFormatter` (2853)
- Restore slice API broken by 2829 (2849)
- Resolve handling of {}**0 in `LinearRepn`/`QuadraticRepn` (2857)
- Solver Interfaces
- NL writer: resolve error identifying vars in indexed SOS (2852)
- Manage Gurobi environments in GurobiDirect (2680)
- Contributed Packages
- cp: fix handling fixed BooleanVars in logical-to-disjunctive walker (2850)
- FBBT: Fix typo when handling GeneralExpression objects (2848)
- MindtPy: add support for cyipopt (2830)

6.6.0

Highlights of the 6.0 release series

- Improved stability and robustness of core Pyomo code and solver interfaces
- Integration of Boolean variables into GDP
- Integration of NumPy support into the Pyomo expression system
- Implemented a more performant and robust expression generation system
- Implemented a more performant NL file writer (NLv2)
- Implemented a more performant LP file writer (LPv2)
- Applied [PEP8 standards](https://peps.python.org/pep-0008/) throughout the
codebase
- Added support for Python 3.10, 3.11
- Removed support for Python 3.6
- Removed the `pyomo check` command
- New packages:
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
- CP (Constraint programming models and solver interfaces)
- DoE (Model based design of experiments)
- External grey box models
- IIS (Standard interface to solver IIS capabilities)
- MPC (Data structures/utils for rolling horizon dynamic optimization)
- piecewise (Modeling with and reformulating multivariate piecewise linear
functions)
- PyROS (Pyomo Robust Optimization Solver)
- Structural model analysis
- Rewrite of the TrustRegion Solver


Changes in this release

- General
- Remove `pyomo check`/`pyomo.checker` module (2753)
- Improve formatting of docstrings generated from `ConfigDict` (2754)
- Deprecate `add_docstring_list` (2755)
- Reapply `black` to previously completed directories (2775)
- Improve formatting for `DeveloperError`, `MouseTrap` messages (2805)
- Core
- Bugfix: component indexes specified as lists (2765)
- Remove the use of weakrefs in `SymbolMap` (2791)
- Improve conversions between Pyomo and Sympy expressions (2806)
- Rework expression generation to leverage multiple dispatch (2722)
- Improve robustness of `calculate_variable_from_constraint()` (2812)
- Add support for infix Boolean logical operators (2835)
- Improvements to Pyomo component iteration (2829)
- Documentation
- Copyright and Book Updates (2750)
- Link documentation in incidence_analysis README (2759)
- Update ReadtheDocs Configuration (2780)
- Correct import in community.rst (2792)
- Remove instructions for python <= 3.0 (2822)
- Solvers Interfaces
- NEOS: fix typo in `kestrelAMPL.kill()` argument (2758)
- Better handling of mutable parameters in HiGHS interface (2763)
- Improve linear data structure in NL writer (2769)
- Bugfix for shared named expressions in NL writer (2790)
- Resolve NPV constants in `LinearExpressions` in NL writer (2811)
- GAMS/Baron: ensure negative numbers are parenthesized (2833)
- Release LP version 2 (LPv2) writer (2823, 2840)
- Testing
- Rework Upload of Coverage Reports (2761)
- Update constant for visitor tests for python 3.11.2 (2799)
- Auto-Linting: Spelling Black Style Checker (2800, 2818)
- Skip MOSEK tests on NEOS (due to unknown NEOS error) (2839)
- GDP
- Add `gdp.bound_pretransformation` (2824)
- Contributed Packages
- APPSI: Improve logging consistency across solvers (2787)
- APPSI: Update `available` method in APPSI-Gurobi interface (2828)
- DoE: Release version 2 (2794)
- incidence_analysis: Remove strict usage of PyomoNLP (2752)
- incidence_analysis: Test `IndexedBlock` (2789)
- incidence_analysis: Use standard repn for incidence graph generation (2834)
- Parmest: Update for pandas 2.0.0 release (2795)
- piecewise: Add contrib.piecewise package (2708, 2768, 2766, 2797, 2798,
2826)
- PyNumero: Refactor CyIpopt interface to subclass `cyipopt.Problem` (2760)
- PyNumero: Fix CyIpopt interface when `load_solutions=False` (2820)
- PyROS: Fixes to PyROS Separation Routine (2815)
- PyROS: Fixes to Coefficient Matching and Timing Functionalities (2837)

6.5.0

Highlights of the 6.0 release series

- Improved stability and robustness of core Pyomo code and solver interfaces
- Integration of Boolean variables into GDP
- Integration of NumPy support into the Pyomo expression system
- Implemented a more performant NL file writer (NLv2)
- Added support for Python 3.10, 3.11
- Removed support for Python 3.6
- New packages:
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
- CP (Constraint programming models and solver interfaces)
- DoE (Model based design of experiments)
- External grey box models
- IIS (Standard interface to solver IIS capabilities)
- MPC (Data structures/utils for rolling horizon dynamic optimization)
- PyROS (Pyomo Robust Optimization Solver)
- Structural model analysis
- Rewrite of the TrustRegion Solver

Changes in this release

- General
- Apply `black` to enforce PEP8 standards in certain modules (2737, 2738,
2733, 2732, 2731, 2728, 2730, 2729, 2720, 2721, 2719, 2718)
- Add Developers' call information to README (2665)
- Deprecate `pyomo.checker` module (2734)
- Warn when infeasibility tools will not log output (2666)
- Separate identification from logging in `pyomo.util.infeasible.log_*` (2669)
- Convert subprocess timeout parameters to module attributes (2672)
- Resolve consistency issues in the Bunch class (2685)
- Remove GSL downloader from `download-extensions` (2725)
- Update enhancement GitHub issue template to link to wiki (2739)
- Add deprecation warning to `pyomo` command (2740)
- Require `version=` for all deprecation utilities (2744)
- Fix `pyomo --version` version string (2743)
- Core
- Fix minor typo: taht -> that in set.py (2679)
- Fix bugs in scaling transformation (2678)
- Rework handling of 'dimensionless' units in Pyomo (2691)
- Solver Interfaces
- Switch default NL writer to nlv2 and bug fixes (2676, 2710, 2726)
- Enable MOSEK10 warm-start flag and relocate var initialization (2647)
- Fix handling of POW in Baron writer (2693)
- Update GAMS license check to avoid exception when not available (2697)
- Documentation
- Fix incorrect documentation for sending options to solvers (2688)
- Fix Sphinx warnings (2712)
- Document Python Version Support policy (2735)
- Document deprecation and removal of functionality (2741)
- Document docstring formatting requirements (2742)
- Testing
- Skip failing Baron tests (2694)
- Remove residual `nose` references (2736)
- Update GHA setup-python version (2705)
- Improve GHA conda setup performance (2701)
- Add unit test for QCQO problems with MOSEK (2682)
- DAE
- Fix typo in `__init__.py` (2683)
- Add `active` filter to flattener (2643)
- GDP
- Add GDP-to-MIP transformation base class (2687)
- Contributed Packages
- DoE: New module for model-based design of experiments (2294, 2711, 2527)
- FBBT: Add tolerances to tests (2675)
- GDPopt: Switch a LBB test to use Gurobi as MINLP solver (2686)
- incidence_analysis: Add `plot` method to `IncidenceGraphInterface` (2716)
- incidence_analysis: Refactor to cache a graph instead of a matrix (2715)
- incidence_analysis: Add documentation and update API (2727, 2745)
- incidence_analysis: Add logging solve_strongly_connected_components (2723)
- MindtPy: Refactor to improve extensibility and maintainability (2654)
- Parmest: Suppress mpi-sppy output in import (2692)
- PyNumero: Add tee argument to Pyomo-SciPy square solvers (2668)
- PyNumero: Support implicit function solvers in ExternalPyomoModel (2652)
- PyROS: Fix user_time and wallclock_time bug (2670)
- PyROS: More judicious enforcement of PyROS Solver time limit (2660, 2706)
- PyROS: Update documentation (2698, 2707)
- PyROS: Adjust routine for loading DR polishing model solutions (2700)
- Viewer: Update to support PySide6 and display units and domain (2689)

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.