def arg_checks(**checks):
def catch_wrapped(f):
if inspect.ismethoddescriptor(f):
f.__func__.arg_checks = checks
else:
f.arg_checks = checks
@wrapt.decorator
def check_call(wrapped, instance, args, kwargs):
if six.PY2:
if isinstance(wrapped, functools.partial) and not wrapped.func.__self__ and instance:
args = (instance,)+args
return ArgumentCheckedCallable(wrapped)(*args, **kwargs)
return check_call(f)
return catch_wrapped
评论列表
文章目录