pyomo.common.enums
This module provides standard enum.Enum
definitions used in
Pyomo, along with additional utilities for working with custom Enums
Utilities:
|
Metaclass for creating an |
Standard Enums:
|
Flag indicating if an objective is minimizing (1) or maximizing (-1). |
- class pyomo.common.enums.ExtendedEnumType(cls, bases, classdict, **kwds)[source]
Metaclass for creating an
enum.Enum
that extends another EnumIn general,
enum.Enum
classes are not extensible: that is, they are frozen when defined and cannot be the base class of another Enum. This Metaclass provides a workaround for creating a new Enum that extends an existing enum. Members in the base Enum are all present as members on the extended enum.Example
class ObjectiveSense(enum.IntEnum): minimize = 1 maximize = -1 class ProblemSense(enum.IntEnum, metaclass=ExtendedEnumType): __base_enum__ = ObjectiveSense unknown = 0
>>> list(ProblemSense) [<ProblemSense.unknown: 0>, <ObjectiveSense.minimize: 1>, <ObjectiveSense.maximize: -1>] >>> ProblemSense.unknown <ProblemSense.unknown: 0> >>> ProblemSense.maximize <ObjectiveSense.maximize: -1> >>> ProblemSense(0) <ProblemSense.unknown: 0> >>> ProblemSense(1) <ObjectiveSense.minimize: 1> >>> ProblemSense('unknown') <ProblemSense.unknown: 0> >>> ProblemSense('maximize') <ObjectiveSense.maximize: -1> >>> hasattr(ProblemSense, 'minimize') True >>> ProblemSense.minimize is ObjectiveSense.minimize True >>> ProblemSense.minimize in ProblemSense True
- enum pyomo.common.enums.ObjectiveSense(value)[source]
Flag indicating if an objective is minimizing (1) or maximizing (-1).
While the numeric values are arbitrary, there are parts of Pyomo that rely on this particular choice of value. These values are also consistent with some solvers (notably Gurobi).
- Member Type:
Valid values are as follows:
- minimize = <ObjectiveSense.minimize: 1>
- maximize = <ObjectiveSense.maximize: -1>