diff --git a/src/spellbind/observables.py b/src/spellbind/observables.py index 217cb7b..f47321b 100644 --- a/src/spellbind/observables.py +++ b/src/spellbind/observables.py @@ -111,7 +111,7 @@ def unobserve(self, observer: Observer) -> None: raise NotImplementedError -class ValueObservable(Generic[_S], ABC): +class ValueObservable(Observable, Generic[_S], ABC): @abstractmethod def observe(self, observer: Observer | ValueObserver[_S], times: int | None = None) -> None: raise NotImplementedError @@ -125,7 +125,7 @@ def unobserve(self, observer: Observer | ValueObserver[_S]) -> None: raise NotImplementedError -class BiObservable(Generic[_S, _T], ABC): +class BiObservable(ValueObservable[_S], Generic[_S, _T], ABC): @abstractmethod def observe(self, observer: Observer | ValueObserver[_S] | BiObserver[_S, _T], times: int | None = None) -> None: @@ -141,7 +141,7 @@ def unobserve(self, observer: Observer | ValueObserver[_S] | BiObserver[_S, _T]) raise NotImplementedError -class TriObservable(Generic[_S, _T, _U], ABC): +class TriObservable(BiObservable[_S, _T], Generic[_S, _T, _U], ABC): @abstractmethod def observe(self, observer: Observer | ValueObserver[_S] | BiObserver[_S, _T] | TriObserver[_S, _T, _U], times: int | None = None) -> None: