Skip to content

Commit ce8b0e8

Browse files
authored
Merge pull request #2965 from mrmundt/finalize-release
Finalize release 6.6.2
2 parents 5a56343 + b6fedf4 commit ce8b0e8

File tree

17 files changed

+163
-90
lines changed

17 files changed

+163
-90
lines changed

.coin-or/projDesc.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ Carl D. Laird, Chair, Pyomo Management Committee, claird at andrew dot cmu dot e
227227
Use explicit overrides to disable use of automated
228228
version reporting.
229229
-->
230-
<stableVersionNumber>6.6.1</stableVersionNumber>
231-
<releaseNumber>6.6.1</releaseNumber>
230+
<stableVersionNumber>6.6.2</stableVersionNumber>
231+
<releaseNumber>6.6.2</releaseNumber>
232232

233233
</developmentStatus>
234234

CHANGELOG.md

+69
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,75 @@ Pyomo CHANGELOG
22
===============
33

44

5+
-------------------------------------------------------------------------------
6+
Pyomo 6.6.2 (23 Aug 2023)
7+
-------------------------------------------------------------------------------
8+
9+
- General
10+
- Fall back on `multiprocessing.dummy` when `multiprocessing.Pool` is not
11+
available (#2890)
12+
- Clean up implicit function imports (#2892)
13+
- Ensure all pyomo modules import without warnings (#2897)
14+
- Resolve `FileDownloader.get_os_version` exception for missing
15+
`lsb_release` (#2911)
16+
- Improve `calculate_variable_from_constraint` error messages (#2914)
17+
- Add function for collecting expressions with unit inconsistencies (#2904)
18+
- Fix loading Scalar Param from `.dat` file (#2923)
19+
- Core
20+
- Resolve kernel pickle/clone errors (#2916)
21+
- Reorganize numeric expression modules (#2909)
22+
- Resolve error categorizing some Var discrete domains as "integer" (#2954)
23+
- Named expressions: `expr` should always return `NumericValue` (#2948)
24+
- Support kwargs in partial objects passed to Initializer() (#2960)
25+
- Remove `expr.current` (#2910)
26+
- Documentation
27+
- Fixing a 'that' vs. 'which' mistake in error about bounds crossing (#2950)
28+
- Add Explicit Linting Instructions to PR Template (#2947)
29+
- Update `pyomo.common` documentation (#2912)
30+
- Remove HTML4 Forcing in Online Docs (#2949)
31+
- Improved documentation for SOS (#2875)
32+
- Silence deprecation warnings (#2854)
33+
- Solvers Interfaces
34+
- Resolve handling of `{}**0` in Linear/QuadraticRepn (#2857)
35+
- Fix Linear/QuadraticRepnVisitor handling of `{}**{float}` (#2863, #2865)
36+
- GAMS: fix pickling models, update tests (#2913)
37+
- Xpress: fix NLP results processing for Xpress 9.2.0 (#2921)
38+
- Improve NaN handling in LP, NL writers (#2930)
39+
- Ensure constants written correctly to LP/NL files (#2953)
40+
- Testing
41+
- Remove the 'singletest' job from "branches" builds (#2917)
42+
- Reactivate NEOS-MOSEK Tests (#2870)
43+
- New version of `crate-ci/typos` GitHub Actions (#2869, #2931)
44+
- DAE
45+
- Improve error message when attempting to discretize models with circular
46+
references (#2943)
47+
- GDP
48+
- Fixing a typo in gdp.hull transformation (#2915)
49+
- Add some more instances to the GDP constrained layout example (#2838)
50+
- Adding (reversible) `gdp.transform_current_disjunctive_logic`
51+
transformation (#2809)
52+
- Contributed Packages
53+
- APPSI: change default behavior to not care where variables live (#2903)
54+
- APPSI: Correctly Process Objective Bounds from Gurobi for Nonconvex QCPs
55+
(#2898)
56+
- community_detection: fix networkx dependency in doctests (#2885)
57+
- cp: Fix bug with `land` in `contrib.logical_to_disjunctive` transformation
58+
(#2879)
59+
- DoE: Update tutorial notebook (#2889)
60+
- incidence_analysis: Filter variables with non-constant, fixed expressions
61+
that resolve to zero in `get_incident_variables` (#2882)
62+
- incidence_analysis: Correct behavior of `linear_only` argument in
63+
`get_incident_variables` (#2883)
64+
- MindtPy: Refactor to improve extensibility and maintainability (#2887)
65+
- PyNumero: Add `PyNumeroEvaluationError` (#2901)
66+
- PyNumero: Make min and max work with MPIBlockVector when some blocks have
67+
size 0 (#2896)
68+
- PyNumero: Remove old, unused PyNumero code (#2895)
69+
- PyNumero: Fix typo in docstring (#2873)
70+
- sensitivity_toolbox: Send lists to `numpy.vstack` rather than iterators
71+
(#2881)
72+
- viewer: Fix model viewer (#2924)
73+
574
-------------------------------------------------------------------------------
675
Pyomo 6.6.1 (30 May 2023)
776
-------------------------------------------------------------------------------

RELEASE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
We are pleased to announce the release of Pyomo 6.6.1.
1+
We are pleased to announce the release of Pyomo 6.6.2.
22

33
Pyomo is a collection of Python software packages that supports a
44
diverse set of optimization capabilities for formulating and analyzing

doc/OnlineDocs/developer_reference/expressions/design.rst

+28-28
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Design Details
1313

1414
Most Pyomo expression trees have the following form
1515

16-
1. Interior nodes are objects that inherit from the :class:`ExpressionBase <pyomo.core.expr.current.ExpressionBase>` class. These objects typically have one or more child nodes. Linear expression nodes do not have child nodes, but they are treated as interior nodes in the expression tree because they references other leaf nodes.
16+
1. Interior nodes are objects that inherit from the :class:`ExpressionBase <pyomo.core.expr.ExpressionBase>` class. These objects typically have one or more child nodes. Linear expression nodes do not have child nodes, but they are treated as interior nodes in the expression tree because they references other leaf nodes.
1717

1818
2. Leaf nodes are numeric values, parameter components and variable components, which represent the *inputs* to the expression.
1919

@@ -26,13 +26,13 @@ describes the standard operators in Python and their associated Pyomo expression
2626
========== ============= =============================================================================
2727
Operation Python Syntax Pyomo Class
2828
========== ============= =============================================================================
29-
sum ``x + y`` :class:`SumExpression <pyomo.core.expr.current.SumExpression>`
30-
product ``x * y`` :class:`ProductExpression <pyomo.core.expr.current.ProductExpression>`
31-
negation ``- x`` :class:`NegationExpression <pyomo.core.expr.current.NegationExpression>`
32-
division ``x / y`` :class:`DivisionExpression <pyomo.core.expr.current.DivisionExpression>`
33-
power ``x ** y`` :class:`PowExpression <pyomo.core.expr.current.PowExpression>`
34-
inequality ``x <= y`` :class:`InequalityExpression <pyomo.core.expr.current.InequalityExpression>`
35-
equality ``x == y`` :class:`EqualityExpression <pyomo.core.expr.current.EqualityExpression>`
29+
sum ``x + y`` :class:`SumExpression <pyomo.core.expr.SumExpression>`
30+
product ``x * y`` :class:`ProductExpression <pyomo.core.expr.ProductExpression>`
31+
negation ``- x`` :class:`NegationExpression <pyomo.core.expr.NegationExpression>`
32+
division ``x / y`` :class:`DivisionExpression <pyomo.core.expr.DivisionExpression>`
33+
power ``x ** y`` :class:`PowExpression <pyomo.core.expr.PowExpression>`
34+
inequality ``x <= y`` :class:`InequalityExpression <pyomo.core.expr.InequalityExpression>`
35+
equality ``x == y`` :class:`EqualityExpression <pyomo.core.expr.EqualityExpression>`
3636
========== ============= =============================================================================
3737

3838
Additionally, there are a variety of other Pyomo expression classes that capture more general
@@ -41,10 +41,10 @@ logical relationships, which are summarized in the following table:
4141
==================== ==================================== ========================================================================================
4242
Operation Example Pyomo Class
4343
==================== ==================================== ========================================================================================
44-
external function ``myfunc(x,y,z)`` :class:`ExternalFunctionExpression <pyomo.core.expr.current.ExternalFunctionExpression>`
45-
logical if-then-else ``Expr_if(IF=x, THEN=y, ELSE=z)`` :class:`Expr_ifExpression <pyomo.core.expr.current.Expr_ifExpression>`
46-
intrinsic function ``sin(x)`` :class:`UnaryFunctionExpression <pyomo.core.expr.current.UnaryFunctionExpression>`
47-
absolute function ``abs(x)`` :class:`AbsExpression <pyomo.core.expr.current.AbsExpression>`
44+
external function ``myfunc(x,y,z)`` :class:`ExternalFunctionExpression <pyomo.core.expr.ExternalFunctionExpression>`
45+
logical if-then-else ``Expr_if(IF=x, THEN=y, ELSE=z)`` :class:`Expr_ifExpression <pyomo.core.expr.Expr_ifExpression>`
46+
intrinsic function ``sin(x)`` :class:`UnaryFunctionExpression <pyomo.core.expr.UnaryFunctionExpression>`
47+
absolute function ``abs(x)`` :class:`AbsExpression <pyomo.core.expr.AbsExpression>`
4848
==================== ==================================== ========================================================================================
4949

5050
Expression objects are immutable. Specifically, the list of
@@ -119,7 +119,7 @@ the named expression.
119119
.. note::
120120

121121
The named expression classes are not implemented as sub-classes
122-
of :class:`NumericExpression <pyomo.core.expr.current.NumericExpression>`.
122+
of :class:`NumericExpression <pyomo.core.expr.NumericExpression>`.
123123
This reflects design constraints related to the fact that these
124124
are modeling components that belong to class hierarchies other
125125
than the expression class hierarchy, and Pyomo's design prohibits
@@ -130,7 +130,7 @@ Linear Expressions
130130

131131
Pyomo includes a special expression class for linear expressions.
132132
The class :class:`LinearExpression
133-
<pyomo.core.expr.current.LinearExpression>` provides a compact
133+
<pyomo.core.expr.LinearExpression>` provides a compact
134134
description of linear polynomials. Specifically, it includes a
135135
constant value :attr:`constant` and two lists for coefficients and
136136
variables: :attr:`linear_coefs` and :attr:`linear_vars`.
@@ -147,12 +147,12 @@ Sum Expressions
147147

148148
Pyomo does not have a binary sum expression class. Instead,
149149
it has an ``n``-ary summation class, :class:`SumExpression
150-
<pyomo.core.expr.current.SumExpression>`. This expression class
150+
<pyomo.core.expr.SumExpression>`. This expression class
151151
treats sums as ``n``-ary sums for efficiency reasons; many large
152152
optimization models contain large sums. But note that this class
153153
maintains the immutability property described above. This class
154154
shares an underlying list of arguments with other :class:`SumExpression
155-
<pyomo.core.expr.current.SumExpression>` objects. A particular
155+
<pyomo.core.expr.SumExpression>` objects. A particular
156156
object owns the first ``n`` arguments in the shared list, but
157157
different objects may have different values of ``n``.
158158

@@ -173,13 +173,13 @@ model transformations, developers may be able to limit the use of
173173
expressions to avoid these side-effects. The following mutable private classes
174174
are available in Pyomo:
175175

176-
:class:`_MutableSumExpression <pyomo.core.expr.current._MutableSumExpression>`
176+
:class:`_MutableSumExpression <pyomo.core.expr._MutableSumExpression>`
177177
This class
178-
is used in the :data:`nonlinear_expression <pyomo.core.expr.current.nonlinear_expression>` context manager to
178+
is used in the :data:`nonlinear_expression <pyomo.core.expr.nonlinear_expression>` context manager to
179179
efficiently combine sums of nonlinear terms.
180-
:class:`_MutableLinearExpression <pyomo.core.expr.current._MutableLinearExpression>`
180+
:class:`_MutableLinearExpression <pyomo.core.expr._MutableLinearExpression>`
181181
This class
182-
is used in the :data:`linear_expression <pyomo.core.expr.current.linear_expression>` context manager to
182+
is used in the :data:`linear_expression <pyomo.core.expr.linear_expression>` context manager to
183183
efficiently combine sums of linear terms.
184184

185185

@@ -192,22 +192,22 @@ interior node.
192192

193193
The following classes are valid interior nodes:
194194

195-
* Subclasses of :class:`ExpressionBase <pyomo.core.expr.current.ExpressionBase>`
195+
* Subclasses of :class:`ExpressionBase <pyomo.core.expr.ExpressionBase>`
196196

197-
* Classes that that are *duck typed* to match the API of the :class:`ExpressionBase <pyomo.core.expr.current.ExpressionBase>` class. For example, the named expression class :class:`Expression <pyomo.core.expr.current.Expression>`.
197+
* Classes that that are *duck typed* to match the API of the :class:`ExpressionBase <pyomo.core.expr.ExpressionBase>` class. For example, the named expression class :class:`Expression <pyomo.core.expr.Expression>`.
198198

199199
The following classes are valid leaf nodes:
200200

201-
* Members of :data:`nonpyomo_leaf_types <pyomo.core.expr.numvalue.nonpyomo_leaf_types>`, which includes standard numeric data types like :const:`int`, :const:`float` and :const:`long`, as well as numeric data types defined by `numpy` and other commonly used packages. This set also includes :class:`NonNumericValue <pyomo.core.expr.numvalue.NonNumericValue>`, which is used to wrap non-numeric arguments to the :class:`ExternalFunctionExpression <pyomo.core.expr.current.current.ExternalFunctionExpression>` class.
201+
* Members of :data:`nonpyomo_leaf_types <pyomo.core.expr.numvalue.nonpyomo_leaf_types>`, which includes standard numeric data types like :const:`int`, :const:`float` and :const:`long`, as well as numeric data types defined by `numpy` and other commonly used packages. This set also includes :class:`NonNumericValue <pyomo.core.expr.numvalue.NonNumericValue>`, which is used to wrap non-numeric arguments to the :class:`ExternalFunctionExpression <pyomo.core.expr.ExternalFunctionExpression>` class.
202202

203203
* Parameter component classes like :class:`ScalarParam <pyomo.core.base.param.ScalarParam>` and :class:`_ParamData <pyomo.core.base.param._ParamData>`, which arise in expression trees when the parameters are declared as mutable. (Immutable parameters are identified when generating expressions, and they are replaced with their associated numeric value.)
204204

205-
* Variable component classes like :class:`ScalarVar <pyomo.core.base.var.ScalarVar>` and :class:`_GeneralVarData <pyomo.core.base.var._GeneralVarData>`, which often arise in expression trees. <pyomo.core.expr.current.pyomo5_variable_types>`.
205+
* Variable component classes like :class:`ScalarVar <pyomo.core.base.var.ScalarVar>` and :class:`_GeneralVarData <pyomo.core.base.var._GeneralVarData>`, which often arise in expression trees. <pyomo.core.expr.pyomo5_variable_types>`.
206206

207207
.. note::
208208

209209
In some contexts the :class:`LinearExpression
210-
<pyomo.core.expr.current.LinearExpression>` class can be treated
210+
<pyomo.core.expr.LinearExpression>` class can be treated
211211
as an interior node, and sometimes it can be treated as a leaf.
212212
This expression object does not have any child arguments, so
213213
``nargs()`` is zero. But this expression references variables
@@ -223,7 +223,7 @@ Pyomo defines several context managers that can be used to declare
223223
the form of expressions, and to define a mutable expression object that
224224
efficiently manages sums.
225225

226-
The :data:`linear_expression <pyomo.core.expr.current.linear_expression>`
226+
The :data:`linear_expression <pyomo.core.expr.linear_expression>`
227227
object is a context manager that can be used to declare a linear sum. For
228228
example, consider the following two loops:
229229

@@ -240,8 +240,8 @@ more efficient processing of each sum, and (b) a more compact
240240
representation for the expression.
241241

242242
The difference between :data:`linear_expression
243-
<pyomo.core.expr.current.linear_expression>` and
244-
:data:`nonlinear_expression <pyomo.core.expr.current.nonlinear_expression>`
243+
<pyomo.core.expr.linear_expression>` and
244+
:data:`nonlinear_expression <pyomo.core.expr.nonlinear_expression>`
245245
is the underlying representation that each supports. Note that
246246
both of these are instances of context manager classes. In
247247
singled-threaded applications, these objects can be safely used to

0 commit comments

Comments
 (0)