Source code for httk.core.datastream.bytestream_api

from abc import ABC, abstractmethod


[docs] class BytestreamAPI(ABC): """ Abstract base class for a bare minimum API for streamable byte data. Supports: * read, close, name, and closed with the meanings defined by io.IOBase Since it is a *minimal* streaming data API it deliberately omits: seek, tell, etc.; there should be no assumption that the underlying data source is seekable. However, many backend implementations may choose to support them. """ @abstractmethod
[docs] def read(self, size: int = -1) -> bytes: raise NotImplementedError
@abstractmethod
[docs] def close(self) -> None: raise NotImplementedError
@property @abstractmethod
[docs] def name(self) -> str | None: raise NotImplementedError
@property @abstractmethod
[docs] def closed(self) -> bool: raise NotImplementedError