between¶
validators.between.between(value, /, *, min_val=None, max_val=None)
¶
Validate that a number is between minimum and/or maximum value.
This will work with any comparable type, such as floats, decimals and dates not just integers. This validator is originally based on WTForms-NumberRange-Validator.
Examples:
>>> from datetime import datetime
>>> between(5, min_val=2)
# Output: True
>>> between(13.2, min_val=13, max_val=14)
# Output: True
>>> between(500, max_val=400)
# Output: ValidationError(func=between, args=...)
>>> between(
... datetime(2000, 11, 11),
... min_val=datetime(1999, 11, 11)
... )
# Output: True
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
PossibleValueTypes
|
Value which is to be compared. |
required |
min_val |
Union[PossibleValueTypes, AbsMin, None]
|
The minimum required value of the number. If not provided, minimum value will not be checked. |
None
|
max_val |
Union[PossibleValueTypes, AbsMax, None]
|
The maximum value of the number. If not provided, maximum value will not be checked. |
None
|
Returns:
Type | Description |
---|---|
Literal[True]
|
If |
ValidationError
|
If |
Raises:
Type | Description |
---|---|
ValueError
|
If |
TypeError
|
If there's a type mismatch during comparison. |
Note
PossibleValueTypes
=TypeVar("PossibleValueTypes", int, float, str, datetime)
- If neither
min_val
normax_val
is provided, result will always beTrue
.
Source code in src/validators/between.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
|