    

 ## On this page

  

 

 # py\_os\_criterion

 Last update: 05.08.2026 

This module provides classes to handle design criteria.

A collection of criteria can be constructed in the following way:

```default
from py_os_criterion import PyOSCriterion, PyOSCriterionContainer, DesignStatus

criteria = PyOSCriterionContainer()

# add objective
criteria.add("minimize_mass", PyOSCriterion(DesignStatus.MIN, "mass_1 + mass_2 + mass_3"))
# add constraint
criteria.add("max_cost", PyOSCriterion(DesignStatus.LESSEQUAL, "min(cost_1, cost_2)", "3.0"))
# add limit state
criteria.add("measured_stress", PyOSCriterion(DesignStatus.LESSLIMITSTATE, "yield_stress", "2.3e9"))

# print criteria names
crit_names = [crit[0] for crit in criteria]
print(crit_names)

```

<a id="module-py_os_criterion"></a>

<a id="py_os_criterion.DesignStatus"></a>

## *class* py\_os\_criterion.DesignStatus

**Enumeration**

<a id="py_os_criterion.DesignStatus.EQUAL"></a>

#### EQUAL *= py\_os\_criterion.DesignStatus.EQUAL*

<a id="py_os_criterion.DesignStatus.GREATEREQUAL"></a>

#### GREATEREQUAL *= py\_os\_criterion.DesignStatus.GREATEREQUAL*

<a id="py_os_criterion.DesignStatus.GREATERLIMITSTATE"></a>

#### GREATERLIMITSTATE *= py\_os\_criterion.DesignStatus.GREATERLIMITSTATE*

<a id="py_os_criterion.DesignStatus.IGNORE"></a>

#### IGNORE *= py\_os\_criterion.DesignStatus.IGNORE*

<a id="py_os_criterion.DesignStatus.LESSEQUAL"></a>

#### LESSEQUAL *= py\_os\_criterion.DesignStatus.LESSEQUAL*

<a id="py_os_criterion.DesignStatus.LESSLIMITSTATE"></a>

#### LESSLIMITSTATE *= py\_os\_criterion.DesignStatus.LESSLIMITSTATE*

<a id="py_os_criterion.DesignStatus.MAX"></a>

#### MAX *= py\_os\_criterion.DesignStatus.MAX*

<a id="py_os_criterion.DesignStatus.MIN"></a>

#### MIN *= py\_os\_criterion.DesignStatus.MIN*

<a id="py_os_criterion.PyOSCriterion"></a>

## *class* py\_os\_criterion.PyOSCriterion

<a id="py_os_criterion.PyOSCriterion.__init__"></a>

#### \_\_init\_\_()

#### \_\_init\_\_(arg2: [DesignStatus](#py_os_criterion.DesignStatus), arg3: str)

#### \_\_init\_\_(arg2: [DesignStatus](#py_os_criterion.DesignStatus), arg3: str, arg4: str)

<a id="py_os_criterion.PyOSCriterion.get_expression"></a>

#### get\_expression() → str

<a id="py_os_criterion.PyOSCriterion.get_float_value"></a>

#### get\_float\_value() → float

<a id="py_os_criterion.PyOSCriterion.get_left_expression"></a>

#### get\_left\_expression() → str

<a id="py_os_criterion.PyOSCriterion.get_right_expression"></a>

#### get\_right\_expression() → str

<a id="py_os_criterion.PyOSCriterion.get_type"></a>

#### get\_type() → [DesignStatus](#py_os_criterion.DesignStatus)

<a id="py_os_criterion.PyOSCriterion.get_value"></a>

#### get\_value() → [PyOSDesignEntry](py_os_design.md#py_os_design.PyOSDesignEntry)

<a id="py_os_criterion.PyOSCriterion.is_constraint"></a>

#### is\_constraint() → bool

<a id="py_os_criterion.PyOSCriterion.is_equal_zero"></a>

#### is\_equal\_zero() → bool

<a id="py_os_criterion.PyOSCriterion.is_equality_constraint"></a>

#### is\_equality\_constraint() → bool

<a id="py_os_criterion.PyOSCriterion.is_equality_constraint_violated"></a>

#### is\_equality\_constraint\_violated() → bool

<a id="py_os_criterion.PyOSCriterion.is_inequality_constraint"></a>

#### is\_inequality\_constraint() → bool

<a id="py_os_criterion.PyOSCriterion.is_inequality_constraint_violated"></a>

#### is\_inequality\_constraint\_violated() → bool

<a id="py_os_criterion.PyOSCriterion.is_objective"></a>

#### is\_objective() → bool

<a id="py_os_criterion.PyOSCriterion.needs_eval"></a>

#### needs\_eval() → bool

<a id="py_os_criterion.PyOSCriterion.set_constraint"></a>

#### set\_constraint(type: [DesignStatus](#py_os_criterion.DesignStatus), expression\_left: str, expression\_right: str)

<a id="py_os_criterion.PyOSCriterion.set_left"></a>

#### set\_left(expression: str)

<a id="py_os_criterion.PyOSCriterion.set_objective"></a>

#### set\_objective(type: [DesignStatus](#py_os_criterion.DesignStatus), expression: str)

<a id="py_os_criterion.PyOSCriterion.set_right"></a>

#### set\_right(expression: str)

<a id="py_os_criterion.PyOSCriterion.set_type"></a>

#### set\_type(type: [DesignStatus](#py_os_criterion.DesignStatus))

<a id="py_os_criterion.PyOSCriterion.set_value"></a>

#### set\_value(value: float)

#### set\_value(value: [PyOSDesignEntry](py_os_design.md#py_os_design.PyOSDesignEntry))

<a id="py_os_criterion.PyOSCriterionContainer"></a>

## *class* py\_os\_criterion.PyOSCriterionContainer

<a id="py_os_criterion.PyOSCriterionContainer.__getitem__"></a>

#### \_\_getitem\_\_(arg2: str) → [PyOSCriterion](#py_os_criterion.PyOSCriterion)

<a id="py_os_criterion.PyOSCriterionContainer.__init__"></a>

#### \_\_init\_\_()

<a id="py_os_criterion.PyOSCriterionContainer.__iter__"></a>

#### \_\_iter\_\_() → object

<a id="py_os_criterion.PyOSCriterionContainer.__len__"></a>

#### \_\_len\_\_() → int

<a id="py_os_criterion.PyOSCriterionContainer.__setitem__"></a>

#### \_\_setitem\_\_(arg2: str) → [PyOSCriterion](#py_os_criterion.PyOSCriterion)

<a id="py_os_criterion.PyOSCriterionContainer.add"></a>

#### add(name: str, value: [PyOSCriterion](#py_os_criterion.PyOSCriterion))

<a id="py_os_criterion.PyOSCriterionContainer.add_expression"></a>

#### add\_expression(name: str, value: [PyOSCriterion](#py_os_criterion.PyOSCriterion))

<a id="py_os_criterion.PyOSCriterionContainer.remove"></a>

#### remove(name: str)

<a id="py_os_criterion.PyOSCriterionContainer.remove_expression"></a>

#### remove\_expression(name: str)