Source code for maha.parsers.rules.duration.template
from __future__ import annotations
__all__ = ["DurationValue"]
from dataclasses import dataclass
from maha.parsers.templates import DurationUnit
from ..common import ValueUnit
from .utils import convert_between_durations
@dataclass(init=False)
[docs]class DurationValue:
__slots__ = ("values", "normalized_unit")
def __init__(self, values: list[ValueUnit], normalized_unit=DurationUnit.SECONDS):
self.values = values
self.normalized_unit = normalized_unit
@property
[docs] def normalized_value(self) -> ValueUnit:
"""Returns the value with unit normalized."""
return convert_between_durations(*self.values, to_unit=self.normalized_unit)
def __len__(self) -> int:
return len(self.values)
def __getitem__(self, item) -> ValueUnit:
return self.values[item]