def register_arg_validator(cls, extras=[]):
"""?????????????
.. note::
- ???????????????????????
- ?????????????????????????
????????????
:param BaesArgValidator cls: ?????????
"""
assert issubclass(cls, BaseArgValidator)
def _inner(func):
@wraps(func)
def wrapper(*args, **kwargs):
callargs = getcallargs(func, *args, **kwargs)
validator = cls(callargs, extras)
if not validator.is_valid():
validator.handle_errors()
return
# XXX ???????????????????????????
return func(**validator.cleaned_data)
return wrapper
return _inner
评论列表
文章目录