From 2fd5885dc371f9789e6d595a527375ab380ad540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Fri, 15 Aug 2025 11:03:08 -0700 Subject: [PATCH] pipeline: implement processors property --- src/pipecat/pipeline/parallel_pipeline.py | 12 ++++++++++++ src/pipecat/pipeline/pipeline.py | 4 ++++ src/pipecat/pipeline/sync_parallel_pipeline.py | 12 ++++++++++++ 3 files changed, 28 insertions(+) diff --git a/src/pipecat/pipeline/parallel_pipeline.py b/src/pipecat/pipeline/parallel_pipeline.py index 0e9ad0e4e..926b25204 100644 --- a/src/pipecat/pipeline/parallel_pipeline.py +++ b/src/pipecat/pipeline/parallel_pipeline.py @@ -152,6 +152,18 @@ class ParallelPipeline(BasePipeline): # Frame processor # + @property + def processors(self): + """Return the list of sub-processors contained within this processor. + + Only compound processors (e.g. pipelines and parallel pipelines) have + sub-processors. Non-compound processors will return an empty list. + + Returns: + The list of sub-processors if this is a compound processor. + """ + return self._pipelines + def processors_with_metrics(self) -> List[FrameProcessor]: """Collect processors that can generate metrics from all parallel branches. diff --git a/src/pipecat/pipeline/pipeline.py b/src/pipecat/pipeline/pipeline.py index d9068767b..98d6d089e 100644 --- a/src/pipecat/pipeline/pipeline.py +++ b/src/pipecat/pipeline/pipeline.py @@ -114,6 +114,10 @@ class Pipeline(BasePipeline): # Frame processor # + @property + def processors(self): + return self._processors + def processors_with_metrics(self): """Return processors that can generate metrics. diff --git a/src/pipecat/pipeline/sync_parallel_pipeline.py b/src/pipecat/pipeline/sync_parallel_pipeline.py index 332e5d35c..9175a1ef0 100644 --- a/src/pipecat/pipeline/sync_parallel_pipeline.py +++ b/src/pipecat/pipeline/sync_parallel_pipeline.py @@ -137,6 +137,18 @@ class SyncParallelPipeline(BasePipeline): # Frame processor # + @property + def processors(self): + """Return the list of sub-processors contained within this processor. + + Only compound processors (e.g. pipelines and parallel pipelines) have + sub-processors. Non-compound processors will return an empty list. + + Returns: + The list of sub-processors if this is a compound processor. + """ + return self._pipelines + def processors_with_metrics(self) -> List[FrameProcessor]: """Collect processors that can generate metrics from all parallel pipelines.