""" Data source types for Sideline. This module defines the data structures used by data sources. """ from dataclasses import dataclass from typing import Any, Optional @dataclass class SourceItem: """A single item from a data source.""" content: str source: str timestamp: str metadata: Optional[dict[str, Any]] = None @dataclass class ImageItem: """An image item from a data source - wraps a PIL Image.""" image: Any # PIL Image source: str timestamp: str path: Optional[str] = None # File path or URL if applicable metadata: Optional[dict[str, Any]] = None __all__ = ["SourceItem", "ImageItem"]