library: fix handling missing arguments of ArgValidatorNum type

It was impossible to set default_value = ArgValidator.MISSING, which can
be useful.
This commit is contained in:
Thomas Haller 2018-01-24 11:40:18 +01:00
parent 23325cda41
commit d76e98ec64

View file

@ -465,6 +465,7 @@ class ArgUtil:
class ArgValidator:
MISSING = object()
DEFAULT_SENTINEL = object()
def __init__(self, name = None, required = False, default_value = None):
self.name = name
@ -502,10 +503,10 @@ class ArgValidatorStr(ArgValidator):
class ArgValidatorNum(ArgValidator):
def __init__(self, name, required = False, val_min = None, val_max = None,
default_value = ArgValidator.MISSING,
default_value = ArgValidator.DEFAULT_SENTINEL,
numeric_type = int):
ArgValidator.__init__(self, name, required, \
numeric_type(0) if default_value is ArgValidator.MISSING else default_value)
numeric_type(0) if default_value is ArgValidator.DEFAULT_SENTINEL else default_value)
self.val_min = val_min
self.val_max = val_max
self.numeric_type = numeric_type