Files
planeMapper/src/planemapper/display.py
T
Matt Edholm 25076dc1f3 feat(2-6): stateful Renderer, DisplayInterface, and pipeline smoke test
Implements story 2-6: Renderer class with per-aircraft trail history
(deque capped at TRAIL_MAX_DOTS=5), NullDisplay with DEBUG logging,
WaveshareDisplay stub, and end-to-end pipeline smoke test. All 96
tests pass; ruff check and format clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 23:33:36 -04:00

23 lines
474 B
Python

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