from __future__ import annotations import logging from typing import Protocol from PIL import Image log = logging.getLogger(__name__) class DisplayInterface(Protocol): def show(self, image: Image.Image) -> None: ... class NullDisplay: def show(self, image: Image.Image) -> None: log.debug("NullDisplay.show: %dx%d", image.width, image.height) class WaveshareDisplay: def show(self, image: Image.Image) -> None: raise NotImplementedError