def _check_arguments(self, fac, check):
def arguments(args=None, vararg=None, varargannotation=None,
kwonlyargs=None, kwarg=None, kwargannotation=None,
defaults=None, kw_defaults=None):
if args is None:
args = []
if kwonlyargs is None:
kwonlyargs = []
if defaults is None:
defaults = []
if kw_defaults is None:
kw_defaults = []
args = ast.arguments(args, vararg, varargannotation, kwonlyargs,
kwarg, kwargannotation, defaults, kw_defaults)
return fac(args)
args = [ast.arg("x", ast.Name("x", ast.Store()))]
check(arguments(args=args), "must have Load context")
check(arguments(varargannotation=ast.Num(3)),
"varargannotation but no vararg")
check(arguments(varargannotation=ast.Name("x", ast.Store()), vararg="x"),
"must have Load context")
check(arguments(kwonlyargs=args), "must have Load context")
check(arguments(kwargannotation=ast.Num(42)),
"kwargannotation but no kwarg")
check(arguments(kwargannotation=ast.Name("x", ast.Store()),
kwarg="x"), "must have Load context")
check(arguments(defaults=[ast.Num(3)]),
"more positional defaults than args")
check(arguments(kw_defaults=[ast.Num(4)]),
"length of kwonlyargs is not the same as kw_defaults")
args = [ast.arg("x", ast.Name("x", ast.Load()))]
check(arguments(args=args, defaults=[ast.Name("x", ast.Store())]),
"must have Load context")
args = [ast.arg("a", ast.Name("x", ast.Load())),
ast.arg("b", ast.Name("y", ast.Load()))]
check(arguments(kwonlyargs=args,
kw_defaults=[None, ast.Name("x", ast.Store())]),
"must have Load context")
评论列表
文章目录