Fix DataProcessor missing class error in pipeline deployment
- Add DataProcessor abstract base class with process method - Add PostProcessor class for handling inference output data - Fix PreProcessor inheritance from DataProcessor - Resolves "name 'DataProcessor' is not defined" error during pipeline deployment 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
b5e3227b0e
commit
f5e017b099
@ -13,7 +13,16 @@ from abc import ABC, abstractmethod
|
|||||||
from typing import Callable, Optional, Any, Dict
|
from typing import Callable, Optional, Any, Dict
|
||||||
|
|
||||||
|
|
||||||
class PreProcessor(DataProcessor): # type: ignore
|
class DataProcessor(ABC):
|
||||||
|
"""Abstract base class for data processors in the pipeline"""
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def process(self, data: Any, *args, **kwargs) -> Any:
|
||||||
|
"""Process data and return result"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class PreProcessor(DataProcessor):
|
||||||
def __init__(self, resize_fn: Optional[Callable] = None,
|
def __init__(self, resize_fn: Optional[Callable] = None,
|
||||||
format_convert_fn: Optional[Callable] = None):
|
format_convert_fn: Optional[Callable] = None):
|
||||||
self.resize_fn = resize_fn or self._default_resize
|
self.resize_fn = resize_fn or self._default_resize
|
||||||
@ -36,6 +45,22 @@ class PreProcessor(DataProcessor): # type: ignore
|
|||||||
return cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
|
return cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
|
||||||
|
class PostProcessor(DataProcessor):
|
||||||
|
"""Post-processor for handling output data from inference stages"""
|
||||||
|
|
||||||
|
def __init__(self, process_fn: Optional[Callable] = None):
|
||||||
|
self.process_fn = process_fn or self._default_process
|
||||||
|
|
||||||
|
def process(self, data: Any, *args, **kwargs) -> Any:
|
||||||
|
"""Process inference output data"""
|
||||||
|
return self.process_fn(data, *args, **kwargs)
|
||||||
|
|
||||||
|
def _default_process(self, data: Any, *args, **kwargs) -> Any:
|
||||||
|
"""Default post-processing - returns data unchanged"""
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
class MultiDongle:
|
class MultiDongle:
|
||||||
# Curently, only BGR565, RGB8888, YUYV, and RAW8 formats are supported
|
# Curently, only BGR565, RGB8888, YUYV, and RAW8 formats are supported
|
||||||
_FORMAT_MAPPING = {
|
_FORMAT_MAPPING = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user