Source code for olo.archive.types
"""Local archive value types."""
from dataclasses import dataclass
from datetime import datetime
from typing import Literal
[docs]
@dataclass(frozen=True)
class ImageSummary:
filename: str
file_path: str
file_size: int
mime_type: str
created_at: datetime | None
modified_at: datetime | None
[docs]
@dataclass(frozen=True)
class VideoSummary:
filename: str
file_path: str
file_size: int
created_at: datetime | None
modified_at: datetime | None
recording_id: str
topic: str
status: str
[docs]
@dataclass(frozen=True)
class CaptureImageResult:
filename: str
file_path: str
file_size: int
mime_type: str
[docs]
@dataclass(frozen=True)
class StopVideoCaptureResult:
recording_id: str
filename: str
file_path: str
file_size: int
frame_count: int
duration_seconds: float
reason: str
[docs]
@dataclass(frozen=True)
class BagTopicInfo:
name: str
type: str
message_count: int
[docs]
@dataclass(frozen=True)
class BagSummary:
name: str
total_bytes: int
file_count: int
created_at: datetime | None
updated_at: datetime | None
duration_seconds: float
message_count: int
storage_format: str
[docs]
@dataclass(frozen=True)
class BagInfo:
summary: BagSummary
topics: tuple[BagTopicInfo, ...]
compression: str
[docs]
@dataclass(frozen=True)
class StopBagRecordingResult:
recording_id: str
filename: str
total_bytes: int
[docs]
@dataclass(frozen=True)
class StopBagPlaybackResult:
playback_id: str
[docs]
@dataclass(frozen=True)
class BagSessionTerminalEvent:
type: Literal["completed", "failed"]
exit_code: int
total_bytes: int | None = None
error_message: str | None = None