fix: add min_integer and max_integer for intOption

This commit is contained in:
egarette@silique.fr 2025-09-23 20:32:24 +02:00
parent 7173a93749
commit 9c97f92775

View file

@ -30,12 +30,16 @@ class IntOption(Option):
__slots__ = tuple()
_type = "integer"
def __init__(self, *args, min_number=None, max_number=None, **kwargs):
def __init__(self, *args, min_number=None, max_number=None, min_integer=None, max_integer=None, **kwargs):
extra = {}
if min_number is not None:
extra["min_number"] = min_number
extra["min_integer"] = min_number
if min_integer is not None:
extra["min_integer"] = min_integer
if max_number is not None:
extra["max_number"] = max_number
extra["max_integer"] = max_number
if max_integer is not None:
extra["max_integer"] = max_integer
super().__init__(*args, extra=extra, **kwargs)
def validate(
@ -46,17 +50,17 @@ class IntOption(Option):
raise ValueError(_("which is not an integer"))
def second_level_validation(self, value, warnings_only):
min_number = self.impl_get_extra("min_number")
if min_number is not None and value < min_number:
min_integer = self.impl_get_extra("min_integer")
if min_integer is not None and value < min_integer:
if warnings_only:
msg = _('value should be equal or greater than "{0}"')
else:
msg = _('value must be equal or greater than "{0}"')
raise ValueError(msg.format(min_number))
max_number = self.impl_get_extra("max_number")
if max_number is not None and value > max_number:
raise ValueError(msg.format(min_integer))
max_integer = self.impl_get_extra("max_integer")
if max_integer is not None and value > max_integer:
if warnings_only:
msg = _('value should be less than "{0}"')
else:
msg = _('value must be less than "{0}"')
raise ValueError(msg.format(max_number))
raise ValueError(msg.format(max_integer))