123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from . import Observable
- class ObservableList(list, Observable):
- def __init__(self, lst: list, parent: Observable = None, key: int = None):
- list.__init__(self)
- Observable.__init__(self, parent, key)
- for element in lst:
- list.append(self, Observable.create(element, self, key))
- def __getitem__(self, value):
- return super().__getitem__(int(value))
- def __setitem__(self, key, value):
- super().__setitem__(key, Observable.create(value, self, key))
- Observable.notify(self, [key])
- def __delitem__(self, key):
- super().__delitem__(key)
- Observable.notify(self, [key])
- def append(self, value):
- key = len(self)
- obs = Observable.create(value, self, key)
- super().append(obs)
- Observable.notify(self, [key])
- return obs
- def __copy__(self):
- def c(e):
- if isinstance(e, (ObservableDict, ObservableList)):
- return e.copy()
- else:
- return e
- return list(map(c, self))
- from . import ObservableDict
|