@@ -57,42 +57,25 @@ def between(
5757 If `value` is not in between the given conditions.
5858
5959 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.
6362
6463 Note:
6564 - `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`.
6966 """
7067 if value is None :
7168 return False
7269
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-
7670 if max_val is None :
7771 max_val = AbsMax ()
7872 if min_val is None :
7973 min_val = AbsMin ()
8074
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 :
9276 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
9780
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