12345678910111213141516171819202122232425262728293031 |
- from . import Observable
- class ObservableDict(dict, Observable):
- def __init__(self, obj: dict, parent: Observable = None):
- dict.__init__(self)
- Observable.__init__(self, parent)
- for key in obj.keys():
- dict.__setitem__(self, key, Observable.create(obj[key], self))
- def __setitem__(self, key, value):
- dict.__setitem__(self, key, Observable.create(value, self))
- Observable.notify(self)
- def __delitem__(self, key):
- super().__delitem__(key)
- Observable.notify(self)
- def copy(self):
- result = {}
- for key in self.keys():
- if type(self[key]) == ObservableDict or type(self[key]) == ObservableList:
- result[key] = self[key].copy()
- else:
- result[key] = self[key]
- return result
- from . import ObservableList
|