From 92561ae19d90d4815b7e032fbb5224931ac33389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Fri, 31 May 2024 00:13:43 -0700 Subject: [PATCH] some event loop parameter updates --- src/pipecat/pipeline/runner.py | 2 +- src/pipecat/processors/frame_processor.py | 8 ++++---- src/pipecat/transports/base_transport.py | 4 ++-- src/pipecat/transports/network/websocket_server.py | 2 +- src/pipecat/transports/services/daily.py | 5 +++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/pipecat/pipeline/runner.py b/src/pipecat/pipeline/runner.py index fe8cd8b6e..2d1b8100a 100644 --- a/src/pipecat/pipeline/runner.py +++ b/src/pipecat/pipeline/runner.py @@ -46,7 +46,7 @@ class PipelineRunner: return self._running def _setup_sigint(self): - loop = asyncio.get_event_loop() + loop = asyncio.get_running_loop() loop.add_signal_handler( signal.SIGINT, lambda *args: asyncio.create_task(self._sigint_handler()) diff --git a/src/pipecat/processors/frame_processor.py b/src/pipecat/processors/frame_processor.py index 8b6a66e21..793aa8eb1 100644 --- a/src/pipecat/processors/frame_processor.py +++ b/src/pipecat/processors/frame_processor.py @@ -5,7 +5,7 @@ # import asyncio -from asyncio import AbstractEventLoop + from enum import Enum from pipecat.frames.frames import ErrorFrame, Frame @@ -21,12 +21,12 @@ class FrameDirection(Enum): class FrameProcessor: - def __init__(self): + def __init__(self, loop: asyncio.AbstractEventLoop | None = None): self.id: int = obj_id() self.name = f"{self.__class__.__name__}#{obj_count(self)}" self._prev: "FrameProcessor" | None = None self._next: "FrameProcessor" | None = None - self._loop: AbstractEventLoop = asyncio.get_event_loop() + self._loop: asyncio.AbstractEventLoop = loop or asyncio.get_running_loop() async def cleanup(self): pass @@ -36,7 +36,7 @@ class FrameProcessor: processor._prev = self logger.debug(f"Linking {self} -> {self._next}") - def get_event_loop(self) -> AbstractEventLoop: + def get_event_loop(self) -> asyncio.AbstractEventLoop: return self._loop async def process_frame(self, frame: Frame, direction: FrameDirection): diff --git a/src/pipecat/transports/base_transport.py b/src/pipecat/transports/base_transport.py index 921e08c83..7034b81eb 100644 --- a/src/pipecat/transports/base_transport.py +++ b/src/pipecat/transports/base_transport.py @@ -41,8 +41,8 @@ class TransportParams(BaseModel): class BaseTransport(ABC): - def __init__(self, loop: asyncio.AbstractEventLoop): - self._loop = loop + def __init__(self, loop: asyncio.AbstractEventLoop | None): + self._loop = loop or asyncio.get_running_loop() self._event_handlers: dict = {} @abstractmethod diff --git a/src/pipecat/transports/network/websocket_server.py b/src/pipecat/transports/network/websocket_server.py index f765af615..432b88db3 100644 --- a/src/pipecat/transports/network/websocket_server.py +++ b/src/pipecat/transports/network/websocket_server.py @@ -223,7 +223,7 @@ class WebsocketServerTransport(BaseTransport): host: str = "localhost", port: int = 8765, params: WebsocketServerParams = WebsocketServerParams(), - loop: asyncio.AbstractEventLoop = asyncio.get_event_loop()): + loop: asyncio.AbstractEventLoop | None = None): super().__init__(loop) self._host = host self._port = port diff --git a/src/pipecat/transports/services/daily.py b/src/pipecat/transports/services/daily.py index 87f56688f..b5b6f2b07 100644 --- a/src/pipecat/transports/services/daily.py +++ b/src/pipecat/transports/services/daily.py @@ -643,7 +643,7 @@ class DailyTransport(BaseTransport): token: str | None, bot_name: str, params: DailyParams, - loop: asyncio.AbstractEventLoop = asyncio.get_event_loop()): + loop: asyncio.AbstractEventLoop | None = None): super().__init__(loop) callbacks = DailyCallbacks( @@ -663,7 +663,8 @@ class DailyTransport(BaseTransport): ) self._params = params - self._client = DailyTransportClient(room_url, token, bot_name, params, callbacks, loop) + self._client = DailyTransportClient( + room_url, token, bot_name, params, callbacks, self._loop) self._input: DailyInputTransport | None = None self._output: DailyOutputTransport | None = None