Skip to content

Commit 118a662

Browse files
authored
Merge pull request Bouni#233 from Guzz-T/issue/221/array
Move the array-style access methods from the smart home data vector into the base data vector
2 parents fae0789 + 8659e02 commit 118a662

2 files changed

Lines changed: 30 additions & 20 deletions

File tree

luxtronik/data_vector.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,34 @@ def __iter__(self):
3434

3535
@property
3636
def data(self):
37+
"""
38+
Return the internal `LuxtronikFieldsDictionary`.
39+
Please check its documentation.
40+
"""
3741
return self._data
3842

43+
def __getitem__(self, def_name_or_idx):
44+
"""
45+
Array-style access to method `get`.
46+
Please check its documentation.
47+
"""
48+
return self.get(def_name_or_idx)
49+
50+
def __setitem__(self, def_name_or_idx, value):
51+
"""
52+
Array-style access to method `set`.
53+
Please check its documentation.
54+
"""
55+
return self.set(def_name_or_idx, value)
56+
57+
58+
def __contains__(self, def_field_name_or_idx):
59+
"""
60+
Forward the `LuxtronikFieldsDictionary.__contains__` method.
61+
Please check its documentation.
62+
"""
63+
return def_field_name_or_idx in self._data
64+
3965
def _name_lookup(self, name):
4066
"""
4167
Try to find the index using the given field name.
@@ -93,3 +119,7 @@ def get(self, target):
93119
"""Get entry by id or name."""
94120
entry = self._lookup(target)
95121
return entry
122+
123+
def set(self, target, value):
124+
"TODO: Placeholder for future changes"
125+
pass

luxtronik/shi/vector.py

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -143,32 +143,12 @@ def empty(cls, version=LUXTRONIK_LATEST_SHI_VERSION, safe=True):
143143
obj._init_instance(version, safe)
144144
return obj
145145

146-
def __getitem__(self, def_name_or_idx):
147-
return self.get(def_name_or_idx)
148-
149-
def __setitem__(self, def_name_or_idx, value):
150-
return self.set(def_name_or_idx, value)
151-
152146
def __len__(self):
153147
return len(self._data.pairs())
154148

155149
def __iter__(self):
156150
return iter([definition for definition, _ in self._data.pairs()])
157151

158-
def __contains__(self, def_field_name_or_idx):
159-
"""
160-
Check whether the data vector contains a name, index,
161-
or definition matching an added field, or the field itself.
162-
163-
Args:
164-
def_field_name_or_idx (LuxtronikDefinition | Base | str | int):
165-
Definition object, field object, field name or register index.
166-
167-
Returns:
168-
True if the searched element was found, otherwise False.
169-
"""
170-
return def_field_name_or_idx in self._data
171-
172152

173153
# properties and access methods ###############################################
174154

0 commit comments

Comments
 (0)