from abc import ABC, abstractmethod class _StreamBase(ABC): r"""Base stream class abstraction for multi backends Stream to herit from""" @abstractmethod def wait_event(self, event): raise NotImplementedError() @abstractmethod def wait_stream(self, stream): raise NotImplementedError() @abstractmethod def record_event(self, event=None): raise NotImplementedError() @abstractmethod def query(self): raise NotImplementedError() @abstractmethod def synchronize(self): raise NotImplementedError() @abstractmethod def __eq__(self, stream): raise NotImplementedError() class _EventBase(ABC): r"""Base Event class abstraction for multi backends Event to herit from""" @abstractmethod def wait(self, stream=None): raise NotImplementedError() @abstractmethod def query(self): raise NotImplementedError() @abstractmethod def synchronize(self): raise NotImplementedError()