Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pyrate_limiter/exceptions.py: 58%
19 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 06:51 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 06:51 +0000
1# pylint: disable=C0114,C0115
2from typing import Any
3from typing import Dict
4from typing import TYPE_CHECKING
5from typing import Union
8if TYPE_CHECKING:
9 from .request_rate import RequestRate
12class BucketFullException(Exception):
13 def __init__(self, identity: str, rate: "RequestRate", remaining_time: float):
14 error = f"Bucket for {identity} with Rate {rate} is already full"
15 self.meta_info: Dict[str, Union[str, float]] = {
16 "error": error,
17 "identity": identity,
18 "rate": str(rate),
19 "remaining_time": remaining_time,
20 }
21 super().__init__(error)
24class InvalidParams(Exception):
25 def __init__(self, param_name: str):
26 self.message = f"Parameters missing or invalid:{param_name}"
27 super().__init__(self.message)
30class ImmutableClassProperty(Exception):
31 def __init__(self, class_instance: Any, prop: str):
32 """Mutating class property is forbidden"""
33 self.message = f"{class_instance}.{prop} must not be mutated"
34 super().__init__(self.message)