feat(pipeline): 添加Pipeline与Handle设计框架
- doc: 各处理器独立实现特定功能,支持解耦合和复用。同步处理保证依赖性,异步处理提升性能,异步处理作为管道终端操作后续将引入BUS机制,作为事件的发布者。统一的数据存取接口,内置类型转换和验证机制 - 创建BaseProcessor抽象基类定义统一处理接口 - 实现video_yolo_iterator和video_yolo_detect_iterator数据源 - 构建Pipeline核心类管理同步和异步处理器 - 设计PipelineData数据包承载检测结果和缓存信息 - 支持同步和异步处理器的混合执行模式 - 提供数据缓存管理和内部数据存储功能
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
from abc import ABC, abstractmethod
|
||||
import asyncio
|
||||
from .pipeline_data import PipelineData
|
||||
|
||||
|
||||
class BaseProcessor(ABC):
|
||||
"""所有处理器的抽象基类,定义统一的处理接口"""
|
||||
def __init__(self, name: str):
|
||||
self.name = name # 处理器名称(便于日志/调试)
|
||||
|
||||
@abstractmethod
|
||||
def process(self, data: PipelineData) -> PipelineData:
|
||||
"""
|
||||
核心处理方法(必须由子类实现)
|
||||
:param data: 管道数据包
|
||||
:return: 处理后的数据包(可修改原数据或返回新数据)
|
||||
"""
|
||||
pass
|
||||
|
||||
async def process_async(self, data: PipelineData):
|
||||
"""
|
||||
异步处理方法(可由子类实现)
|
||||
:param data: 管道数据包
|
||||
"""
|
||||
# 默认实现:调用同步处理方法
|
||||
self.process(data)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"Processor[{self.name}]"
|
||||
Reference in New Issue
Block a user