Rename BaseTask → BaseWorker and reserve "task" for asyncio
Replaces every "task" identifier that referred to the BaseTask abstraction with "worker". Asyncio task plumbing (asyncio.Task, BaseTaskManager, TaskManager, create_task, cancel_task, etc.) stays untouched. Highlights: - Classes: BaseTask → BaseWorker, PipelineTask → PipelineWorker, LLMTask → LLMWorker, LLMContextTask → LLMContextWorker, TaskBus → WorkerBus, TaskRegistry → WorkerRegistry, TaskActivationArgs → WorkerActivationArgs, TaskReadyData → WorkerReadyData, TaskRegistryEntry → WorkerRegistryEntry, TaskObserver → WorkerObserver, all Bus*TaskMessage → Bus*WorkerMessage, BusAddTaskMessage.task field → worker, BusWorkerRegistryMessage.tasks field → workers. - Methods/decorators: activate_task → activate_worker, deactivate_task → deactivate_worker, add_task → add_worker, watch_task → watch_worker, @task_ready → @worker_ready, setup_pipeline_task hook → setup_pipeline_worker. - Params/fields: FrameProcessorSetup.pipeline_task and FunctionCallParams.pipeline_task → pipeline_worker. Parameter names like task_name → worker_name; spawn/run accept worker:. - Files: pipeline/base_task.py → base_worker.py, pipeline/task.py → worker.py (plus a re-export shim at pipeline/task.py), task_observer.py → worker_observer.py, task_ready_decorator.py → worker_ready_decorator.py, pipecat.tasks → pipecat.workers, llm_task.py → llm_worker.py, llm_context_task.py → llm_context_worker.py, examples/multi-task → examples/multi-worker. Back-compat: - PipelineTask kept as a deprecated subclass of PipelineWorker that warns on construction. - pipecat.pipeline.task re-exports PipelineWorker/PipelineTask/etc. so existing user imports keep working. - FrameProcessor.pipeline_task kept as a deprecated property that forwards to pipeline_worker. Local variables in examples that hold a worker (task = PipelineTask(...)) are renamed to worker = PipelineWorker(...). Asyncio-task locals (runner_task, etc.) are preserved.
This commit is contained in:
@@ -13,7 +13,7 @@ from pipecat.bus import (
|
||||
BusJobRequestMessage,
|
||||
BusJobResponseMessage,
|
||||
)
|
||||
from pipecat.pipeline.base_task import BaseTask
|
||||
from pipecat.pipeline.base_worker import BaseWorker
|
||||
from pipecat.pipeline.job_context import (
|
||||
JobError,
|
||||
JobEvent,
|
||||
@@ -21,16 +21,16 @@ from pipecat.pipeline.job_context import (
|
||||
JobGroupEvent,
|
||||
JobStatus,
|
||||
)
|
||||
from pipecat.registry import TaskRegistry
|
||||
from pipecat.registry.types import TaskReadyData
|
||||
from pipecat.registry import WorkerRegistry
|
||||
from pipecat.registry.types import WorkerReadyData
|
||||
from pipecat.utils.asyncio.task_manager import TaskManager, TaskManagerParams
|
||||
|
||||
|
||||
class StubTask(BaseTask):
|
||||
class StubTask(BaseWorker):
|
||||
pass
|
||||
|
||||
|
||||
class JobWorkerTask(BaseTask):
|
||||
class JobWorkerTask(BaseWorker):
|
||||
"""Worker that automatically responds to job requests via the bus."""
|
||||
|
||||
def __init__(self, name, *, response=None, status=JobStatus.COMPLETED):
|
||||
@@ -43,7 +43,7 @@ class JobWorkerTask(BaseTask):
|
||||
await self.send_job_response(message.job_id, self._auto_response, status=self._auto_status)
|
||||
|
||||
|
||||
class UrgentJobWorkerTask(BaseTask):
|
||||
class UrgentJobWorkerTask(BaseWorker):
|
||||
"""Worker that responds urgently to job requests."""
|
||||
|
||||
def __init__(self, name, *, response=None, status=JobStatus.COMPLETED):
|
||||
@@ -58,7 +58,7 @@ class UrgentJobWorkerTask(BaseTask):
|
||||
)
|
||||
|
||||
|
||||
class UpdatingWorkerTask(BaseTask):
|
||||
class UpdatingWorkerTask(BaseWorker):
|
||||
"""Worker that sends updates before responding."""
|
||||
|
||||
def __init__(self, name, *, updates, response=None):
|
||||
@@ -73,7 +73,7 @@ class UpdatingWorkerTask(BaseTask):
|
||||
await self.send_job_response(message.job_id, self._auto_response)
|
||||
|
||||
|
||||
class StreamingWorkerTask(BaseTask):
|
||||
class StreamingWorkerTask(BaseWorker):
|
||||
"""Worker that streams data before responding."""
|
||||
|
||||
def __init__(self, name, *, chunks, response=None):
|
||||
@@ -89,7 +89,7 @@ class StreamingWorkerTask(BaseTask):
|
||||
await self.send_job_stream_end(message.job_id, self._auto_response)
|
||||
|
||||
|
||||
class SlowWorkerTask(BaseTask):
|
||||
class SlowWorkerTask(BaseWorker):
|
||||
"""Worker that blocks during job execution until cancelled."""
|
||||
|
||||
def __init__(self, name):
|
||||
@@ -113,7 +113,7 @@ async def create_test_env():
|
||||
tm.setup(TaskManagerParams(loop=asyncio.get_running_loop()))
|
||||
await bus.setup(tm)
|
||||
await bus.start()
|
||||
registry = TaskRegistry(runner_name="test-runner")
|
||||
registry = WorkerRegistry(runner_name="test-runner")
|
||||
return bus, tm, registry
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ async def setup_task(bus, registry, task):
|
||||
task.attach(registry=registry, bus=bus)
|
||||
await task.setup(bus.task_manager)
|
||||
await bus.subscribe(task)
|
||||
await registry.register(TaskReadyData(task_name=task.name, runner="test-runner"))
|
||||
await registry.register(WorkerReadyData(worker_name=task.name, runner="test-runner"))
|
||||
|
||||
|
||||
def capture_bus(bus):
|
||||
@@ -351,7 +351,7 @@ class TestJobGroupContext(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
self.assertEqual(len(events), 2)
|
||||
self.assertEqual(events[0].type, JobGroupEvent.UPDATE)
|
||||
self.assertEqual(events[0].task_name, "worker")
|
||||
self.assertEqual(events[0].worker_name, "worker")
|
||||
self.assertEqual(events[0].data, {"progress": 25})
|
||||
self.assertEqual(events[1].data, {"progress": 75})
|
||||
self.assertEqual(tg.responses, {"worker": {"result": "done"}})
|
||||
@@ -405,7 +405,7 @@ class TestJobGroupContext(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
self.assertEqual(len(events), 1)
|
||||
self.assertEqual(events[0].type, JobGroupEvent.UPDATE)
|
||||
self.assertEqual(events[0].task_name, "w1")
|
||||
self.assertEqual(events[0].worker_name, "w1")
|
||||
self.assertEqual(tg.responses, {"w1": {"a": 1}, "w2": {"b": 2}})
|
||||
|
||||
async def test_job_group_no_iteration_still_works(self):
|
||||
|
||||
Reference in New Issue
Block a user