import logging from dataclasses import dataclass from datetime import datetime from enum import Enum import numpy as np FrameTimestamp = datetime FrameID = int class UpdateSeverity(Enum): """Enumeration for defining different levels of update severity. Attributes: DEBUG (int): A debugging severity level. INFO (int): An informational severity level. WARNING (int): A warning severity level. ERROR (int): An error severity level. """ DEBUG = logging.DEBUG INFO = logging.INFO WARNING = logging.WARNING ERROR = logging.ERROR @dataclass(frozen=True) class StatusUpdate: """Represents a status update event in the system. Attributes: timestamp (datetime): The timestamp when the status update was created. severity (UpdateSeverity): The severity level of the update. event_type (str): A string representing the type of the event. payload (dict): A dictionary containing data relevant to the update. context (str): A string providing additional context about the update. """ timestamp: datetime severity: UpdateSeverity event_type: str payload: dict context: str @dataclass(frozen=True) class VideoFrame: """Represents a single frame of video data. Attributes: image (np.ndarray): The image data of the frame as a NumPy array. frame_id (FrameID): A unique identifier for the frame. frame_timestamp (FrameTimestamp): The timestamp when the frame was captured. """ image: np.ndarray frame_id: FrameID frame_timestamp: FrameTimestamp