Source code for glotaran.model.constraint

"""This package contains compartment constraint items."""
from __future__ import annotations

from glotaran.model.interval_property import IntervalProperty
from glotaran.model.item import model_item
from glotaran.model.item import model_item_typed


[docs]@model_item( properties={ "target": str, }, has_type=True, has_label=False, ) class OnlyConstraint(IntervalProperty): """A only constraint sets the calculated matrix row of a compartment to 0 outside the given intervals."""
[docs] def applies(self, value: float) -> bool: """ Returns true if ``value`` is in one of the intervals. Parameters ---------- index : float Returns ------- applies : bool """ return not super().applies(value)
[docs]@model_item( properties={ "target": str, }, has_type=True, has_label=False, ) class ZeroConstraint(IntervalProperty): """A zero constraint sets the calculated matrix row of a compartment to 0 in the given intervals."""
[docs]@model_item_typed( types={ "only": OnlyConstraint, "zero": ZeroConstraint, }, has_label=False, ) class Constraint: """A constraint is applied on one clp on one or many intervals on the estimated axis type. There are two types: zero and equal. See the documentation of the respective classes for details. """