1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from . import Observable
- class ObservableList(list, Observable):
- def __init__(self, lst: list, parent: Observable = None):
- list.__init__(self)
- Observable.__init__(self, parent)
- for element in lst:
- list.append(self, Observable.create(element, self))
- def __getitem__(self, value):
- return super().__getitem__(int(value))
- def __setitem__(self, key, value):
- super().__setitem__(key, Observable.create(value, self))
- Observable.notify(self)
- def __delitem__(self, key):
- super().__delitem__(key)
- Observable.notify(self)
- def append(self, value):
- obs = Observable.create(value, self)
- super().append(obs)
- Observable.notify(self)
- 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
|