@@ -57,42 +57,25 @@ def between(
57
57
If `value` is not in between the given conditions.
58
58
59
59
Raises:
60
- ValueError: If both `min_val` and `max_val` are `None`,
61
- or if `min_val` is greater than `max_val`.
62
- TypeError: If there's a type mismatch before comparison.
60
+ (ValueError): If `min_val` is greater than `max_val`.
61
+ (TypeError): If there's a type mismatch during comparison.
63
62
64
63
Note:
65
64
- `PossibleValueTypes` = `TypeVar("PossibleValueTypes", int, float, str, datetime)`
66
- - Either one of `min_val` or `max_val` must be provided.
67
-
68
- > *New in version 0.2.0*.
65
+ - If neither `min_val` nor `max_val` is provided, result will always be `True`.
69
66
"""
70
67
if value is None :
71
68
return False
72
69
73
- if min_val is max_val is None :
74
- raise ValueError ("At least one of either `min_val` or `max_val` must be specified" )
75
-
76
70
if max_val is None :
77
71
max_val = AbsMax ()
78
72
if min_val is None :
79
73
min_val = AbsMin ()
80
74
81
- if isinstance (min_val , AbsMin ):
82
- if type (value ) is type (max_val ):
83
- return min_val <= value <= max_val
84
- raise TypeError ("`value` and `max_val` must be of same type" )
85
-
86
- if isinstance (max_val , AbsMax ):
87
- if type (value ) is type (min_val ):
88
- return min_val <= value <= max_val
89
- raise TypeError ("`value` and `min_val` must be of same type" )
90
-
91
- if type (min_val ) is type (max_val ):
75
+ try :
92
76
if min_val > max_val :
93
- raise ValueError ("`min_val` cannot be more than `max_val`" )
94
- if type (value ) is type (min_val ): # or is type(max_val)
95
- return min_val <= value <= max_val
96
- raise TypeError ("`value` and (`min_val` or `max_val`) must be of same type" )
77
+ raise ValueError ("`min_val` cannot be greater than `max_val`" )
78
+ except TypeError as err :
79
+ raise TypeError ("Comparison type mismatch" ) from err
97
80
98
- raise TypeError ( "`value` and ` min_val` and `max_val` must be of same type" )
81
+ return min_val <= value <= max_val
0 commit comments