ObservableDict.py 539 B

123456789101112131415161718
  1. from .Observable import Observable
  2. class ObservableDict(dict, Observable):
  3. def __init__(self, obj: dict, parent: Observable = None):
  4. dict.__init__(self)
  5. Observable.__init__(self, parent)
  6. for key in obj.keys():
  7. self[key] = Observable.create(obj[key], self)
  8. def __setitem__(self, key, value):
  9. dict.__setitem__(self, key, Observable.create(value, self))
  10. Observable._notify(self)
  11. def __delitem__(self, key):
  12. super().__delitem__(key)
  13. Observable._notify(self)