From 8c1c7e1e4c9d300685ac87811fba8a6ea7311641 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 17 Apr 2023 16:33:53 +0200 Subject: [PATCH] Remove PipelineEvent.as_dict (#91546) --- homeassistant/components/assist_pipeline/pipeline.py | 10 +--------- .../components/assist_pipeline/websocket_api.py | 2 +- .../assist_pipeline/snapshots/test_init.ambr | 3 +-- tests/components/assist_pipeline/test_init.py | 3 ++- tests/components/assist_pipeline/test_websocket.py | 4 ++-- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/assist_pipeline/pipeline.py b/homeassistant/components/assist_pipeline/pipeline.py index 5f47e55965c..07581d10b87 100644 --- a/homeassistant/components/assist_pipeline/pipeline.py +++ b/homeassistant/components/assist_pipeline/pipeline.py @@ -85,7 +85,7 @@ class PipelineEventType(StrEnum): ERROR = "error" -@dataclass +@dataclass(frozen=True) class PipelineEvent: """Events emitted during a pipeline run.""" @@ -93,14 +93,6 @@ class PipelineEvent: data: dict[str, Any] | None = None timestamp: str = field(default_factory=lambda: dt_util.utcnow().isoformat()) - def as_dict(self) -> dict[str, Any]: - """Return a dict representation of the event.""" - return { - "type": self.type, - "timestamp": self.timestamp, - "data": self.data or {}, - } - PipelineEventCallback = Callable[[PipelineEvent], None] diff --git a/homeassistant/components/assist_pipeline/websocket_api.py b/homeassistant/components/assist_pipeline/websocket_api.py index ebc48f09bc6..93b7c47681f 100644 --- a/homeassistant/components/assist_pipeline/websocket_api.py +++ b/homeassistant/components/assist_pipeline/websocket_api.py @@ -164,7 +164,7 @@ async def websocket_run( pipeline=pipeline, start_stage=start_stage, end_stage=end_stage, - event_callback=lambda event: connection.send_event(msg["id"], event.as_dict()), + event_callback=lambda event: connection.send_event(msg["id"], event), runner_data={ "stt_binary_handler_id": handler_id, "timeout": timeout, diff --git a/tests/components/assist_pipeline/snapshots/test_init.ambr b/tests/components/assist_pipeline/snapshots/test_init.ambr index 6782c86dcc9..2ae79cbdf97 100644 --- a/tests/components/assist_pipeline/snapshots/test_init.ambr +++ b/tests/components/assist_pipeline/snapshots/test_init.ambr @@ -78,8 +78,7 @@ 'type': , }), dict({ - 'data': dict({ - }), + 'data': None, 'type': , }), ]) diff --git a/tests/components/assist_pipeline/test_init.py b/tests/components/assist_pipeline/test_init.py index b165781a86f..562b11d9a82 100644 --- a/tests/components/assist_pipeline/test_init.py +++ b/tests/components/assist_pipeline/test_init.py @@ -1,4 +1,5 @@ """Test Voice Assistant init.""" +from dataclasses import asdict from syrupy.assertion import SnapshotAssertion @@ -34,7 +35,7 @@ async def test_pipeline_from_audio_stream( processed = [] for event in events: - as_dict = event.as_dict() + as_dict = asdict(event) as_dict.pop("timestamp") processed.append(as_dict) diff --git a/tests/components/assist_pipeline/test_websocket.py b/tests/components/assist_pipeline/test_websocket.py index fad2221fe99..2b3f66c4159 100644 --- a/tests/components/assist_pipeline/test_websocket.py +++ b/tests/components/assist_pipeline/test_websocket.py @@ -53,7 +53,7 @@ async def test_text_only_pipeline( # run end msg = await client.receive_json() assert msg["event"]["type"] == "run-end" - assert msg["event"]["data"] == {} + assert msg["event"]["data"] is None async def test_audio_pipeline( @@ -118,7 +118,7 @@ async def test_audio_pipeline( # run end msg = await client.receive_json() assert msg["event"]["type"] == "run-end" - assert msg["event"]["data"] == {} + assert msg["event"]["data"] is None async def test_intent_timeout(