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