fix: add min_integer and max_integer for intOption
This commit is contained in:
parent
7173a93749
commit
9c97f92775
1 changed files with 13 additions and 9 deletions
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Reference in a new issue