|
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 |
|
|