25 def map(self, positional, named, replace_defaults=True):
27 template.fill_positional(positional)
28 template.fill_named(named)
30 template.replace_defaults()
31 return template.args, template.kwargs
39 self.
argsargs = [
None if arg
not in argspec.defaults
41 for arg
in argspec.positional]
45 self.
argsargs[:len(positional)] = positional
49 for name, value
in named:
50 if name
in spec.positional_or_named:
51 index = spec.positional_or_named.index(name)
52 self.
argsargs[index] = value
53 elif spec.var_named
or name
in spec.named_only:
54 self.
kwargskwargs.append((name, value))
56 raise DataError(
"Non-existing named argument '%s'." % name)
57 named_names = {name
for name, _
in named}
58 for name
in spec.named_only:
59 if name
not in named_names:
61 self.
kwargskwargs.append((name, value))
64 is_default =
lambda arg: isinstance(arg, DefaultValue)
65 while self.
argsargs
and is_default(self.
argsargs[-1]):
67 self.
argsargs = [a
if not is_default(a)
else a.value
for a
in self.
argsargs]
68 self.
kwargskwargs = [(n, v)
for n, v
in self.
kwargskwargs
if not is_default(v)]
78 return variables.replace_scalar(self.
valuevalue)
79 except DataError
as err:
80 raise DataError(
'Resolving argument default values failed: %s'
def __init__(self, argspec)
:type argspec: :py:class:robot.running.arguments.ArgumentSpec
def map(self, positional, named, replace_defaults=True)
def resolve(self, variables)
def __init__(self, value)
def fill_named(self, named)
def replace_defaults(self)
def fill_positional(self, positional)
def __init__(self, argspec)
:type argspec: :py:class:robot.running.arguments.ArgumentSpec