17 from robot.utils import get_error_message, is_bytes, is_list_like, is_string, type_name
19 from .arguments
import PythonArgumentParser
30 _underscore_name = NotImplemented
37 method = getattr(lib, name,
None)
40 return no_dynamic_method
43 _camelCaseName = property
47 return ''.join([tokens[0]] + [t.capitalize()
for t
in tokens[1:]])
53 return self.
methodmethod.__name__
59 raise DataError(
"Calling dynamic method '%s' failed: %s"
63 raise NotImplementedError
65 def _to_string(self, value, allow_tuple=False, allow_none=False):
69 return value.decode(
'UTF-8')
70 if allow_tuple
and is_list_like(value)
and len(value) > 0:
72 if allow_none
and value
is None:
74 or_tuple =
' or a non-empty tuple' if allow_tuple
else ''
75 raise DataError(
'Return value must be a string%s, got %s.'
87 return [self.
_to_string_to_string(item, allow_tuples)
88 for item
in self.
_to_list_to_list(value)]
90 raise DataError(
'Return value must be a list of strings%s.'
91 % (
' or non-empty tuples' if allow_tuples
else ''))
94 return self.
methodmethod
is not no_dynamic_method
101 _underscore_name =
'get_keyword_names'
119 _underscore_name =
'run_keyword'
122 supports_kwargs = property
126 return len(spec.positional) == 3
133 _underscore_name =
'get_keyword_documentation'
143 _underscore_name =
'get_keyword_arguments'
146 _DynamicMethod.__init__(self, lib)
152 return [
'*varargs',
'**kwargs']
161 _underscore_name =
'get_keyword_types'
164 return value
if self
else {}
171 _underscore_name =
'get_keyword_tags'
181 _underscore_name =
'get_keyword_source'
184 return self.
_to_string_to_string(value, allow_none=
True)
def _handle_return_value(self, value)
def _handle_return_value(self, value)
def _handle_return_value(self, value)
def _remove_duplicates(self, names)
def _handle_return_value(self, value)
def _handle_return_value(self, value)
def _get_method(self, lib)
def _to_list_of_strings(self, value, allow_tuples=False)
def _to_list(self, value)
def _handle_return_value(self, value)
def _to_string(self, value, allow_tuple=False, allow_none=False)
def __call__(self, *args)
def no_dynamic_method(*args)
def get_error_message()
Returns error message of the last occurred exception.
def type_name(item, capitalize=False)
Return "non-technical" type name for objects and types.