Coverage for src \ syriantaxes \ bracket.py: 64%
28 statements
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-12 14:00 +0200
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-12 14:00 +0200
1from decimal import Decimal
3from .cast import cast_to_decimal
4from .types import Number
7class Bracket:
8 def __init__(self, _min: Number, _max: Number, rate: Number) -> None:
9 self._min = cast_to_decimal(_min, lt=Decimal(0))
10 self._max = cast_to_decimal(_max, lte=self._min)
11 self._rate = cast_to_decimal(rate, lt=Decimal(0), gt=Decimal(1))
13 @property
14 def min(self) -> Decimal:
15 return self._min
17 @min.setter
18 def min(self, value: Number) -> None:
19 self._min = cast_to_decimal(value, lt=Decimal(0), gte=self._max)
21 @property
22 def max(self) -> Decimal:
23 return self._max
25 @max.setter
26 def max(self, value: Number) -> None:
27 self._max = cast_to_decimal(value, lte=self._min)
29 @property
30 def rate(self) -> Decimal:
31 return self._rate
33 @rate.setter
34 def rate(self, value: Number) -> None:
35 self._rate = cast_to_decimal(value, lt=Decimal(0), gt=Decimal(1))
37 def __repr__(self) -> str:
38 return f"Bracket(min={self._min}, max={self._max}, rate={self._rate})"