Source code for ezmsg.dashboard.backend.models.events

from __future__ import annotations

from typing import Any, Literal, TypeAlias

from pydantic import BaseModel


[docs] class TopologyChangedPayload(BaseModel): seq: int event_type: str timestamp: float changed_topics: list[str] source_session_id: str | None = None source_process_id: str | None = None
[docs] class SettingsValuePayload(BaseModel): repr_value: dict[str, Any] | str structured_value: dict[str, Any] | None = None settings_schema: dict[str, Any] | None = None serialized_present: bool = False
[docs] class SettingsChangedPayload(BaseModel): seq: int event_type: str component_address: str timestamp: float source_session_id: str | None = None source_process_id: str | None = None value: SettingsValuePayload
[docs] class ProfilingTracePayload(BaseModel): timestamp: float batches: dict[str, dict[str, Any]]
[docs] class SystemReadyPayload(BaseModel): timestamp: float message: str
[docs] class SystemHeartbeatPayload(BaseModel): timestamp: float
[docs] class SystemErrorPayload(BaseModel): timestamp: float message: str
[docs] class TopologyChangedEnvelope(BaseModel): kind: Literal["topology.changed"] data: TopologyChangedPayload
[docs] class SettingsChangedEnvelope(BaseModel): kind: Literal["settings.changed"] data: SettingsChangedPayload
[docs] class ProfilingTraceEnvelope(BaseModel): kind: Literal["profiling.trace"] data: ProfilingTracePayload
[docs] class SystemReadyEnvelope(BaseModel): kind: Literal["system.ready"] data: SystemReadyPayload
[docs] class SystemHeartbeatEnvelope(BaseModel): kind: Literal["system.heartbeat"] data: SystemHeartbeatPayload
[docs] class SystemErrorEnvelope(BaseModel): kind: Literal["system.error"] data: SystemErrorPayload
EventEnvelopeModel: TypeAlias = ( TopologyChangedEnvelope | SettingsChangedEnvelope | ProfilingTraceEnvelope | SystemReadyEnvelope | SystemHeartbeatEnvelope | SystemErrorEnvelope )