Skip to content

Commit dc00199

Browse files
committed
Make ModelAttribute subscriptable
1 parent 774c172 commit dc00199

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

ltk/widgets.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,22 @@ def __ge__(self, value): return self.value >= value # pylint: di
726726

727727
def __iter__(self):
728728
return iter(self.value)
729+
730+
def __getitem__(self, key):
731+
if isinstance(self.value, (list, dict)):
732+
return self.value[key]
733+
else:
734+
raise TypeError(f"'{type(self.value).__name__}' object does not support item access")
735+
736+
def __setitem__(self, key, value):
737+
if isinstance(self.value, (list, dict)):
738+
self.value[key] = value
739+
self.model.changed(self.name, self.value)
740+
for listener in self.listeners:
741+
listener(self)
742+
else:
743+
raise TypeError(f"'{type(self.value).__name__}' object does not support item assignment")
744+
729745

730746
def __repr__(self):
731747
return f'"{self.value}"' if isinstance(self.value, str) else repr(self.value)

0 commit comments

Comments
 (0)