I get the following traceback that mypy throws:
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("str" and "ValidateProperty")
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("float" and "ValidateProperty")
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("float" and "str")
dust/core/validator/_validators.py:504: error: Unsupported operand types for < ("str" and "float")
for the code that goes something like following.
class Value(ValidateProperty):
def __init__(min_value: VALUE_RANGE=None, max_value: VALUE_RANGE=None):
if min_value is not None and max_value is not None:
if max_value < min_value:
raise ValueError(f"max_value can not be less than min_value")
where VALUE_RANGE
is
VALUE_RANGE = typing.Union[FLOAT,STRING, None]
such that:
FLOAT = typing.Union[float, "ValidateProperty", None]
STRING = typing.Union[str, "ValidateProperty", None]
and ValidateProperty
is an ABC class with __get__
and __set__
methods.
how to ensure that mypy gets that comapred values are always of same types ?