robot.variables package

Implements storing and resolving variables.

This package is mainly for internal usage, but utilities for finding variables can be used externally as well.

Submodules

robot.variables.assigner module

class robot.variables.assigner.VariableAssignment(assignment)[source]

Bases: object

validate_assignment()[source]
assigner(context)[source]
class robot.variables.assigner.AssignmentValidator[source]

Bases: object

validate(variable)[source]
class robot.variables.assigner.VariableAssigner(assignment, context)[source]

Bases: object

assign(return_value)[source]
robot.variables.assigner.ReturnValueResolver(assignment)[source]
class robot.variables.assigner.NoReturnValueResolver[source]

Bases: object

resolve(return_value)[source]
class robot.variables.assigner.OneReturnValueResolver(assignment)[source]

Bases: object

resolve(return_value)[source]
class robot.variables.assigner.ScalarsOnlyReturnValueResolver(assignments)[source]

Bases: robot.variables.assigner._MultiReturnValueResolver

resolve(return_value)
class robot.variables.assigner.ScalarsAndListReturnValueResolver(assignments)[source]

Bases: robot.variables.assigner._MultiReturnValueResolver

resolve(return_value)

robot.variables.evaluation module

robot.variables.evaluation.evaluate_expression(expression, variables, modules=None, namespace=None, resolve_variables=False)[source]
class robot.variables.evaluation.EvaluationNamespace(variable_store, namespace)[source]

Bases: collections.abc.MutableMapping

clear() → None. Remove all items from D.
get(k[, d]) → D[k] if k in D, else d. d defaults to None.
items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() → (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[, d]) → D.get(k,d), also set D[k]=d if k not in D
update([E, ]**F) → None. Update D from mapping/iterable E and F.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() → an object providing a view on D's values

robot.variables.filesetter module

class robot.variables.filesetter.VariableFileSetter(store)[source]

Bases: object

set(path_or_variables, args=None, overwrite=False)[source]
class robot.variables.filesetter.YamlImporter[source]

Bases: object

import_variables(path, args=None)[source]
class robot.variables.filesetter.PythonImporter[source]

Bases: object

import_variables(path, args=None)[source]
class robot.variables.filesetter.JsonImporter[source]

Bases: object

import_variables(path, args=None)[source]

robot.variables.finders module

class robot.variables.finders.VariableFinder(variables)[source]

Bases: object

find(variable)[source]
class robot.variables.finders.StoredFinder(store)[source]

Bases: object

identifiers = '$@&'
find(name)[source]
class robot.variables.finders.NumberFinder[source]

Bases: object

identifiers = '$'
find(name)[source]
class robot.variables.finders.EmptyFinder[source]

Bases: object

identifiers = '$@&'
empty = NormalizedDict({'${EMPTY}': '', '&{EMPTY}': {}, '@{EMPTY}': ()})
find(name)[source]
class robot.variables.finders.InlinePythonFinder(variables)[source]

Bases: object

identifiers = '$@&'
find(name)[source]
class robot.variables.finders.ExtendedFinder(finder)[source]

Bases: object

identifiers = '$@&'
find(name)[source]
class robot.variables.finders.EnvironmentFinder[source]

Bases: object

identifiers = '%'
find(name)[source]

robot.variables.notfound module

robot.variables.notfound.variable_not_found(name, candidates, message=None, deco_braces=True)[source]

Raise DataError for missing variable name.

Return recommendations for similar variable names if any are found.

robot.variables.replacer module

class robot.variables.replacer.VariableReplacer(variables)[source]

Bases: object

replace_list(items, replace_until=None, ignore_errors=False)[source]

Replaces variables from a list of items.

If an item in a list is a @{list} variable its value is returned. Possible variables from other items are replaced using ‘replace_scalar’. Result is always a list.

‘replace_until’ can be used to limit replacing arguments to certain index from the beginning. Used with Run Keyword variants that only want to resolve some arguments in the beginning and pass others to called keywords unmodified.

replace_scalar(item, ignore_errors=False)[source]

Replaces variables from a scalar item.

If the item is not a string it is returned as is. If it is a variable, its value is returned. Otherwise, possible variables are replaced with ‘replace_string’. Result may be any object.

replace_string(item, custom_unescaper=None, ignore_errors=False)[source]

Replaces variables from a string. Result is always a string.

Input can also be an already found VariableMatch.

robot.variables.resolvable module

class robot.variables.resolvable.Resolvable[source]

Bases: object

resolve(variables)[source]
report_error(error)[source]
class robot.variables.resolvable.GlobalVariableValue(value)[source]

Bases: robot.variables.resolvable.Resolvable

resolve(variables)[source]
report_error(error)

robot.variables.scopes module

class robot.variables.scopes.VariableScopes(settings)[source]

Bases: object

current
start_suite()[source]
end_suite()[source]
start_test()[source]
end_test()[source]
start_keyword()[source]
end_keyword()[source]
replace_list(items, replace_until=None, ignore_errors=False)[source]
replace_scalar(items, ignore_errors=False)[source]
replace_string(string, custom_unescaper=None, ignore_errors=False)[source]
set_from_file(path, args, overwrite=False)[source]
set_from_variable_table(variables, overwrite=False)[source]
resolve_delayed()[source]
set_global(name, value)[source]
set_suite(name, value, top=False, children=False)[source]
set_test(name, value)[source]
set_keyword(name, value)[source]
set_local_variable(name, value)[source]
as_dict(decoration=True)[source]
class robot.variables.scopes.GlobalVariables(settings)[source]

Bases: robot.variables.variables.Variables

as_dict(decoration=True)
clear()
copy()
replace_list(items, replace_until=None, ignore_errors=False)
replace_scalar(item, ignore_errors=False)
replace_string(item, custom_unescaper=None, ignore_errors=False)
resolve_delayed()
set_from_file(path_or_variables, args=None, overwrite=False)
set_from_variable_table(variables, overwrite=False)
update(variables)
class robot.variables.scopes.SetVariables[source]

Bases: object

start_suite()[source]
end_suite()[source]
start_test()[source]
end_test()[source]
start_keyword()[source]
end_keyword()[source]
set_global(name, value)[source]
set_suite(name, value)[source]
set_test(name, value)[source]
set_keyword(name, value)[source]
update(variables)[source]

robot.variables.search module

robot.variables.search.search_variable(string, identifiers='$@&%*', ignore_errors=False)[source]
robot.variables.search.contains_variable(string, identifiers='$@&')[source]
robot.variables.search.is_variable(string, identifiers='$@&')[source]
robot.variables.search.is_scalar_variable(string)[source]
robot.variables.search.is_list_variable(string)[source]
robot.variables.search.is_dict_variable(string)[source]
robot.variables.search.is_assign(string, identifiers='$@&', allow_assign_mark=False, allow_items=False)[source]
robot.variables.search.is_scalar_assign(string, allow_assign_mark=False, allow_items=False)[source]
robot.variables.search.is_list_assign(string, allow_assign_mark=False, allow_items=False)[source]
robot.variables.search.is_dict_assign(string, allow_assign_mark=False, allow_items=False)[source]
class robot.variables.search.VariableMatch(string, identifier=None, base=None, items=(), start=-1, end=-1)[source]

Bases: object

resolve_base(variables, ignore_errors=False)[source]
name
before
match
after
is_variable()[source]
is_scalar_variable()[source]
is_list_variable()[source]
is_dict_variable()[source]
is_assign(allow_assign_mark=False, allow_nested=False, allow_items=False)[source]
is_scalar_assign(allow_assign_mark=False, allow_nested=False)[source]
is_list_assign(allow_assign_mark=False, allow_nested=False)[source]
is_dict_assign(allow_assign_mark=False, allow_nested=False)[source]
robot.variables.search.unescape_variable_syntax(item)[source]
class robot.variables.search.VariableIterator(string, identifiers='$@&%', ignore_errors=False)[source]

Bases: object

robot.variables.store module

class robot.variables.store.VariableStore(variables)[source]

Bases: object

resolve_delayed(item=None)[source]
get(name, default=<object object>, decorated=True)[source]
update(store)[source]
clear()[source]
add(name, value, overwrite=True, decorated=True)[source]
as_dict(decoration=True)[source]

robot.variables.tablesetter module

class robot.variables.tablesetter.VariableTableSetter(store)[source]

Bases: object

set(variables, overwrite=False)[source]
robot.variables.tablesetter.VariableTableValue(value, name, error_reporter=None)[source]
class robot.variables.tablesetter.VariableTableValueBase(values, error_reporter=None)[source]

Bases: robot.variables.resolvable.Resolvable

resolve(variables)[source]
report_error(error)[source]
class robot.variables.tablesetter.ScalarVariableTableValue(values, error_reporter=None)[source]

Bases: robot.variables.tablesetter.VariableTableValueBase

report_error(error)
resolve(variables)
class robot.variables.tablesetter.ListVariableTableValue(values, error_reporter=None)[source]

Bases: robot.variables.tablesetter.VariableTableValueBase

report_error(error)
resolve(variables)
class robot.variables.tablesetter.DictVariableTableValue(values, error_reporter=None)[source]

Bases: robot.variables.tablesetter.VariableTableValueBase

report_error(error)
resolve(variables)

robot.variables.variables module

class robot.variables.variables.Variables[source]

Bases: object

Represents a set of variables.

Contains methods for replacing variables from list, scalars, and strings. On top of ${scalar}, @{list} and &{dict} variables, these methods handle also %{environment} variables.

resolve_delayed()[source]
replace_list(items, replace_until=None, ignore_errors=False)[source]
replace_scalar(item, ignore_errors=False)[source]
replace_string(item, custom_unescaper=None, ignore_errors=False)[source]
set_from_file(path_or_variables, args=None, overwrite=False)[source]
set_from_variable_table(variables, overwrite=False)[source]
clear()[source]
copy()[source]
update(variables)[source]
as_dict(decoration=True)[source]