from .Observable 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(): 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)