Source code for glotaran.model.interval_property

"""Helper functions."""
from __future__ import annotations

from typing import List
from typing import Tuple

from glotaran.model.item import model_item


[docs]@model_item( properties={ "interval": {"type": List[Tuple[float, float]], "default": None, "allow_none": True}, }, has_label=False, ) class IntervalProperty: """Applies a relation between clps as :math:`source = parameter * target`. """
[docs] def applies(self, value: float) -> bool: """ Returns true if ``value`` is in one of the intervals. Parameters ---------- value : float Returns ------- applies : bool """ if self.interval is None: return True def applies(interval): return interval[0] <= value <= interval[1] if isinstance(self.interval, tuple): return applies(self.interval) return any([applies(i) for i in self.interval])