Files
HighwayEventDet/pipeline/base_processor.py
T
zimoyin 963e858341 feat(pipeline): 添加Pipeline与Handle设计框架
- doc: 各处理器独立实现特定功能,支持解耦合和复用。同步处理保证依赖性,异步处理提升性能,异步处理作为管道终端操作后续将引入BUS机制,作为事件的发布者。统一的数据存取接口,内置类型转换和验证机制
- 创建BaseProcessor抽象基类定义统一处理接口
- 实现video_yolo_iterator和video_yolo_detect_iterator数据源
- 构建Pipeline核心类管理同步和异步处理器
- 设计PipelineData数据包承载检测结果和缓存信息
- 支持同步和异步处理器的混合执行模式
- 提供数据缓存管理和内部数据存储功能
2026-01-10 09:40:02 +08:00

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}]"