from .Observable 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