Created
July 7, 2016 16:18
-
-
Save guyskk/cd72940da5188b362decb92fd7ef9214 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def handle_default_optional_desc(some_validater): | |
def wrapped_validater(*args, **kwargs): | |
default = kwargs.pop("default", None) | |
optional = kwargs.pop("optional", False) | |
desc = kwargs.pop("desc", None) | |
origin_validater = some_validater(*args, **kwargs) | |
def validater(value): | |
if value is None: | |
if default is not None: | |
return default | |
elif optional: | |
return None | |
else: | |
raise Invalid("required") | |
return origin_validater(value) | |
return validater | |
return wrapped_validater | |
@handle_default_optional_desc | |
def int_validater(min=0, max=1024): | |
def validater(value): | |
try: | |
v = int(value) | |
except ValueError: | |
raise Invalid("invalid int") | |
if v < min: | |
raise Invalid("value must >= %d" % min) | |
elif v > max: | |
raise Invalid("value must <= %d" % max) | |
return v | |
return validater |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment