import abc from typing import Iterable from PIL.Image import Image class Encoder(abc.ABC): @abc.abstractmethod def encode(self, images: Iterable[Image]): raise NotImplementedError def __call__(self, images: Iterable[Image], batch_size=16): yield from self.encode(images)