MCPcopy Create free account
hub / github.com/Open-Bee/DataStudio / Operator

Class Operator

datastudio/operators/core/operator.py:14–66  ·  view source on GitHub ↗

Base class for all operators. Subclasses implement :meth:`process` for single-item logic, or override :meth:`process_batch` for batch-level optimization (e.g., MLLM operators).

Source from the content-addressed store, hash-verified

12
13
14class Operator(ABC):
15 """Base class for all operators.
16
17 Subclasses implement :meth:`process` for single-item logic, or
18 override :meth:`process_batch` for batch-level optimization
19 (e.g., MLLM operators).
20 """
21
22 def __init__(
23 self, name: Optional[str] = None, logger: Optional[Any] = None, **kwargs
24 ):
25 """
26 Initialize the operator.
27
28 Args:
29 name: Operator name (defaults to class name).
30 logger: Logger instance.
31 """
32 self._name = name
33 self.logger = logger
34
35 @property
36 def name(self) -> str:
37 """Operator name for records."""
38 return self._name or self.__class__.__name__
39
40 @abstractmethod
41 def process(self, item: DataItem) -> Result:
42 """
43 Process a single data item.
44
45 Args:
46 item: DataItem to process.
47
48 Returns:
49 Result with filter and/or rewrite decisions.
50 """
51 pass
52
53 def process_batch(self, items: List[DataItem]) -> List[Result]:
54 """
55 Process a batch of items.
56
57 Default implementation calls process() for each item.
58 Override for batch optimization (e.g., MLLM operators).
59
60 Args:
61 items: List of DataItems.
62
63 Returns:
64 List of Results (same order as input).
65 """
66 return [self.process(item) for item in items]
67
68
69class Filter(Operator):

Callers 2

test_process_abstractMethod · 0.90

Calls

no outgoing calls

Tested by 2

test_process_abstractMethod · 0.72