Robot Framework Integrated Development Environment (RIDE)
variables.py
Go to the documentation of this file.
1 # Copyright 2008-2015 Nokia Networks
2 # Copyright 2016- Robot Framework Foundation
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 
16 from robotide.lib.robot.utils import is_list_like
17 
18 from .filesetter import VariableFileSetter
19 from .finders import VariableFinder
20 from .replacer import VariableReplacer
21 from .store import VariableStore
22 from .tablesetter import VariableTableSetter
23 
24 
25 
31 class Variables():
32 
33  def __init__(self):
34  self.storestore = VariableStore(self)
35  self._replacer_replacer = VariableReplacer(self)
36  self._finder_finder = VariableFinder(self.storestore)
37 
38  def __setitem__(self, name, value):
39  self.storestore.add(name, value)
40 
41  def __getitem__(self, name):
42  return self._finder_finder.find(name)
43 
44  def __contains__(self, name):
45  return name in self.storestore
46 
47  def resolve_delayed(self):
48  self.storestore.resolve_delayed()
49 
50  def replace_list(self, items, replace_until=None, ignore_errors=False):
51  if not is_list_like(items):
52  raise ValueError("'replace_list' requires list-like input.")
53  return self._replacer_replacer.replace_list(items, replace_until, ignore_errors)
54 
55  def replace_scalar(self, item, ignore_errors=False):
56  return self._replacer_replacer.replace_scalar(item, ignore_errors)
57 
58  def replace_string(self, item, ignore_errors=False):
59  return self._replacer_replacer.replace_string(item, ignore_errors)
60 
61  def set_from_file(self, path_or_variables, args=None, overwrite=False):
62  setter = VariableFileSetter(self.storestore)
63  return setter.set(path_or_variables, args, overwrite)
64 
65  def set_from_variable_table(self, variables, overwrite=False):
66  setter = VariableTableSetter(self.storestore)
67  setter.set(variables, overwrite)
68 
69  def clear(self):
70  self.storestore.clear()
71 
72  def copy(self):
73  variables = Variables()
74  variables.store.data = self.storestore.data.copy()
75  return variables
76 
77  def update(self, variables):
78  self.storestore.update(variables.store)
79 
80  def as_dict(self, decoration=True):
81  return self.storestore.as_dict(decoration=decoration)
Represents a set of variables.
Definition: variables.py:31
def replace_string(self, item, ignore_errors=False)
Definition: variables.py:58
def set_from_variable_table(self, variables, overwrite=False)
Definition: variables.py:65
def replace_list(self, items, replace_until=None, ignore_errors=False)
Definition: variables.py:50
def replace_scalar(self, item, ignore_errors=False)
Definition: variables.py:55
def set_from_file(self, path_or_variables, args=None, overwrite=False)
Definition: variables.py:61