Source code for abstract_api.core.validators.numerical
from typing import Any, Union
from ..exceptions import ClientRequestError
[docs]
def between(
param: str,
value: Any,
start: Union[int, float],
end: Union[int, float]
) -> None:
"""Validate a value to be in a range (inclusive).
Args:
param: Parameter name.
value: Parameter value.
start: Beginning of the range.
end: End of the range.
Raises:
ClientRequestError if the given value is not in the range (inclusive).
"""
if value is None:
return
if not (start <= value <= end):
raise ClientRequestError(
f"'{param}' must be in range from {start} to {end} (inclusive)"
)
[docs]
def greater_or_equal(
param: str,
value: Any,
threshold: Union[int, float]
) -> None:
"""Validate a value to be in a range (inclusive).
Args:
param: Parameter name.
value: Parameter value.
threshold: Threshold that the given value must be greater than.
Raises:
ClientRequestError if the given value is less than given threshold.
"""
if value is None:
return
if value < threshold:
raise ClientRequestError(
f"'{param}' must be greater than or equal to {threshold}"
)