963e858341
- doc: 各处理器独立实现特定功能,支持解耦合和复用。同步处理保证依赖性,异步处理提升性能,异步处理作为管道终端操作后续将引入BUS机制,作为事件的发布者。统一的数据存取接口,内置类型转换和验证机制 - 创建BaseProcessor抽象基类定义统一处理接口 - 实现video_yolo_iterator和video_yolo_detect_iterator数据源 - 构建Pipeline核心类管理同步和异步处理器 - 设计PipelineData数据包承载检测结果和缓存信息 - 支持同步和异步处理器的混合执行模式 - 提供数据缓存管理和内部数据存储功能
29 lines
900 B
Python
29 lines
900 B
Python
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}]" |