17 from robot.utils import DotDict, is_dict_like, is_list_like, NormalizedDict, type_name
19 from .notfound
import variable_not_found
20 from .resolvable
import GlobalVariableValue, Resolvable
21 from .search
import is_assign
36 for name, value
in list(self.
datadata.items()):
47 except DataError
as err:
49 if name
in self.
datadata:
50 self.
datadata.pop(name)
51 value.report_error(err)
53 return self.
datadata[name]
57 return isinstance(value, Resolvable)
62 if name
not in self.
datadata:
66 def get(self, name, default=NOT_SET, decorated=True):
72 if default
is NOT_SET:
82 def add(self, name, value, overwrite=True, decorated=True):
86 or name
not in self.
datadata
87 or isinstance(self.
datadata[name], GlobalVariableValue)):
88 self.
datadata[name] = value
105 return undecorated, value
108 raise VariableError(
"Cannot set variable '%s': Expected %s-like value, got %s."
112 return len(self.
datadata)
115 return iter(self.
datadata)
118 return name
in self.
datadata
122 variables = (self.
_decorate_decorate(name, self[name])
for name
in self)
124 variables = self.
datadata
129 name =
'&{%s}' % name
131 name =
'@{%s}' % name
133 name =
'${%s}' % name
Used when variable does not exist.
Custom dictionary implementation automatically normalizing keys.
def __contains__(self, name)
def add(self, name, value, overwrite=True, decorated=True)
def _decorate(self, name, value)
def resolve_delayed(self, item=None)
def _is_resolvable(self, value)
def as_dict(self, decoration=True)
def _raise_cannot_set_type(self, name, value, expected)
def _undecorate_and_validate(self, name, value)
def __init__(self, variables)
def __getitem__(self, name)
def _undecorate(self, name)
def get(self, name, default=NOT_SET, decorated=True)
def _resolve_delayed(self, name, value)
def type_name(item, capitalize=False)
Return "non-technical" type name for objects and types.
def variable_not_found(name, candidates, message=None, deco_braces=True)
Raise DataError for missing variable name.
def is_assign(string, identifiers='$@&', allow_assign_mark=False)