12345678910111213141516171819202122232425262728293031 |
- from . import Observable
- class ObservableDict(dict, Observable):
- def __init__(self, obj: dict, parent: Observable = None, key: str = None):
- dict.__init__(self)
- Observable.__init__(self, parent, key)
- for key in obj.keys():
- dict.__setitem__(self, key, Observable.create(obj[key], self, key))
- def __setitem__(self, key, value):
- dict.__setitem__(self, key, Observable.create(value, self, key))
- Observable.notify(self, [key])
- def __delitem__(self, key):
- super().__delitem__(key)
- Observable.notify(self, [key])
- 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
|