from typing import Optional, AsyncIterator from .base import ImageInputPipelineBase from models.images import ImageData, ImageBatch, ProcessingStatus from models.core import ValidationResult class ImageInputPipeline(ImageInputPipelineBase): async def receive_batch( self, flight_id: str, batch: ImageBatch ) -> ValidationResult: raise NotImplementedError async def get_next_image(self, flight_id: str) -> Optional[ImageData]: raise NotImplementedError async def stream_images(self, flight_id: str) -> AsyncIterator[ImageData]: raise NotImplementedError yield async def get_status(self, flight_id: str) -> ProcessingStatus: raise NotImplementedError async def clear_queue(self, flight_id: str) -> bool: raise NotImplementedError async def get_queue_size(self, flight_id: str) -> int: raise NotImplementedError