diff --git a/src/pipecat/transports/base_transport.py b/src/pipecat/transports/base_transport.py index bcc13c4fd..00e269359 100644 --- a/src/pipecat/transports/base_transport.py +++ b/src/pipecat/transports/base_transport.py @@ -16,6 +16,7 @@ from pipecat.audio.filters.base_audio_filter import BaseAudioFilter from pipecat.audio.mixers.base_audio_mixer import BaseAudioMixer from pipecat.audio.vad.vad_analyzer import VADAnalyzer from pipecat.processors.frame_processor import FrameProcessor +from pipecat.utils.utils import obj_count, obj_id class TransportParams(BaseModel): @@ -46,10 +47,14 @@ class TransportParams(BaseModel): class BaseTransport(ABC): def __init__( self, - input_name: str | None = None, - output_name: str | None = None, - loop: asyncio.AbstractEventLoop | None = None, + *, + name: Optional[str] = None, + input_name: Optional[str] = None, + output_name: Optional[str] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, ): + self.id: int = obj_id() + self.name = name or f"{self.__class__.__name__}#{obj_count(self)}" self._input_name = input_name self._output_name = output_name self._loop = loop or asyncio.get_running_loop() @@ -89,3 +94,6 @@ class BaseTransport(ABC): handler(self, *args, **kwargs) except Exception as e: logger.exception(f"Exception in event handler {event_name}: {e}") + + def __str__(self): + return self.name