20 from .argumentvalidator
import ArgumentValidator
25 def __init__(self, argspec, resolve_named=True,
26 resolve_variables_until=None, dict_to_kwargs=False):
33 def resolve(self, arguments, variables=None):
35 positional, named = self.
_variable_replacer_variable_replacer.replace(positional, named,
37 positional, named = self.
_dict_to_kwargs_dict_to_kwargs.handle(positional, named)
39 dryrun=variables
is None)
40 return positional, named
48 def resolve(self, arguments, variables=None):
54 elif self.
_is_named_is_named(arg, named, variables):
59 positional.append(arg)
60 return positional, named
63 return (
is_string(arg)
and arg[:2] ==
'&{' and arg[-1] ==
'}' and
66 def _is_named(self, arg, previous_named, variables=None):
71 name = variables.replace_scalar(name)
73 if previous_named
or name
in argspec.kwonlyargs
or argspec.kwargs:
75 return argspec.supports_named
and name
in argspec.positional
78 raise DataError(
"%s '%s' got positional argument after named arguments."
84 def resolve(self, arguments, variables=None):
92 self.
_enabled_enabled = enabled
and bool(argspec.kwargs)
96 named = positional.pop().items()
97 return positional, named
100 if named
or len(positional) != self.
_maxargs_maxargs + 1:
110 def replace(self, positional, named, variables=None):
113 positional = variables.replace_list(positional, self.
_resolve_until_resolve_until)
114 named = list(self.
_replace_named_replace_named(named, variables.replace_scalar))
116 positional = list(positional)
117 named = [item
for item
in named
if isinstance(item, tuple)]
118 return positional, named
124 raise DataError(
'Argument names must be strings.')
128 if not isinstance(item, tuple):
129 return replace_scalar(item).items()
131 return [(replace_scalar(name), replace_scalar(value))]
Used when variable does not exist.
def __init__(self, argspec, resolve_named=True, resolve_variables_until=None, dict_to_kwargs=False)
def resolve(self, arguments, variables=None)
def __init__(self, argspec, enabled=False)
def handle(self, positional, named)
def _extra_arg_has_kwargs(self, positional, named)
def __init__(self, argspec)
def _is_dict_var(self, arg)
def resolve(self, arguments, variables=None)
def _is_named(self, arg, previous_named, variables=None)
def _raise_positional_after_named(self)
def resolve(self, arguments, variables=None)
def _replace_named(self, named, replace_scalar)
def replace(self, positional, named, variables=None)
def _get_replaced_named(self, item, replace_scalar)
def __init__(self, resolve_until=None)
def split_from_equals(string)
def is_dict_variable(value)