19 from robot.utils import is_union, safe_str, setter, type_repr
21 from .argumentconverter
import ArgumentConverter
22 from .argumentmapper
import ArgumentMapper
23 from .argumentresolver
import ArgumentResolver
24 from .typevalidator
import TypeValidator
29 def __init__(self, name=None, type='Keyword', positional_only=None,
30 positional_or_named=None, var_positional=None, named_only=None,
31 var_named=None, defaults=None, types=None):
65 argument_names = property
74 def resolve(self, arguments, variables=None, converters=None,
75 resolve_named=True, resolve_variables_until=None,
76 dict_to_kwargs=False, languages=None):
78 resolve_variables_until, dict_to_kwargs)
79 positional, named = resolver.resolve(arguments, variables)
80 return self.
convertconvert(positional, named, converters, dry_run=
not variables,
83 def convert(self, positional, named, converters=None, dry_run=False, languages=None):
86 positional, named = converter.convert(positional, named)
87 return positional, named
89 def map(self, positional, named, replace_defaults=True):
91 return mapper.map(positional, named, replace_defaults)
94 notset = ArgInfo.NOTSET
96 get_default = self.
defaultsdefaults.get
98 yield ArgInfo(ArgInfo.POSITIONAL_ONLY, arg,
99 get_type(arg, notset), get_default(arg, notset))
101 yield ArgInfo(ArgInfo.POSITIONAL_ONLY_MARKER)
103 yield ArgInfo(ArgInfo.POSITIONAL_OR_NAMED, arg,
104 get_type(arg, notset), get_default(arg, notset))
109 yield ArgInfo(ArgInfo.NAMED_ONLY_MARKER)
111 yield ArgInfo(ArgInfo.NAMED_ONLY, arg,
112 get_type(arg, notset), get_default(arg, notset))
115 get_type(self.
var_namedvar_named, notset))
122 return ', '.join(str(arg)
for arg
in self)
127 POSITIONAL_ONLY =
'POSITIONAL_ONLY'
128 POSITIONAL_ONLY_MARKER =
'POSITIONAL_ONLY_MARKER'
129 POSITIONAL_OR_NAMED =
'POSITIONAL_OR_NAMED'
130 VAR_POSITIONAL =
'VAR_POSITIONAL'
131 NAMED_ONLY_MARKER =
'NAMED_ONLY_MARKER'
132 NAMED_ONLY =
'NAMED_ONLY'
133 VAR_NAMED =
'VAR_NAMED'
135 def __init__(self, kind, name='', types=NOTSET, default=NOTSET):
143 if not typ
or typ
is self.
NOTSETNOTSET:
145 if isinstance(typ, tuple):
162 types_reprs = property
168 default_repr = property
173 if isinstance(self.
defaultdefault, Enum):
174 return self.
defaultdefault.name
string POSITIONAL_ONLY_MARKER
def __init__(self, kind, name='', types=NOTSET, default=NOTSET)
string POSITIONAL_OR_NAMED
def __init__(self, name=None, type='Keyword', positional_only=None, positional_or_named=None, var_positional=None, named_only=None, var_named=None, defaults=None, types=None)
def map(self, positional, named, replace_defaults=True)
def resolve(self, arguments, variables=None, converters=None, resolve_named=True, resolve_variables_until=None, dict_to_kwargs=False, languages=None)
def convert(self, positional, named, converters=None, dry_run=False, languages=None)
def type_repr(typ)
Return string representation for types.
def is_union(item, allow_tuple=False)