Skip to content

Commit c37b7a2

Browse files
committed
update: ExecProto and Executor
1 parent 59d36f5 commit c37b7a2

File tree

3 files changed

+12
-28
lines changed

3 files changed

+12
-28
lines changed

dingo/exec/base.py

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import inspect
12
from abc import ABC, abstractmethod
23
from functools import wraps
3-
from typing import Any, Dict, List, Protocol, Union
4+
from typing import Any, Dict, List, Protocol, Type, Union
45

56
from dingo.io import MetaData, SummaryModel
67

@@ -19,35 +20,18 @@ def summarize(self, inputs: MetaData) -> SummaryModel:
1920
...
2021

2122

22-
class Executor(ABC):
23-
exec_map: Dict[str, Any] = {}
24-
25-
@abstractmethod
26-
def load_data(self) -> List[MetaData]:
27-
raise NotImplementedError()
28-
29-
@abstractmethod
30-
def execute(self, *args, **kwargs) -> List[SummaryModel]:
31-
raise NotImplementedError()
32-
33-
@abstractmethod
34-
def evaluate(self, *args, **kwargs) -> Union[SummaryModel, List[SummaryModel], Any]:
35-
raise NotImplementedError()
36-
37-
@abstractmethod
38-
def summarize(self) -> SummaryModel:
39-
raise NotImplementedError()
23+
class Executor:
24+
exec_map: Dict[str, Type[ExecProto]] = {}
4025

4126
@classmethod
4227
def register(cls, exec_name: str):
4328

4429
def decorator(root_exec):
4530
cls.exec_map[exec_name] = root_exec
4631

47-
@wraps(root_exec)
48-
def wrapped_function(*args, **kwargs):
49-
return root_exec(*args, **kwargs)
50-
51-
return wrapped_function
32+
if inspect.isclass(root_exec):
33+
return root_exec
34+
else:
35+
raise ValueError("root_exec must be a class")
5236

5337
return decorator

dingo/exec/local.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from dingo.config import GlobalConfig
1111
from dingo.data import Dataset, DataSource, dataset_map, datasource_map
12-
from dingo.exec.base import Executor
12+
from dingo.exec.base import ExecProto, Executor
1313
from dingo.io import InputArgs, MetaData, ResultInfo, SummaryModel
1414
from dingo.model import Model
1515
from dingo.model.llm.base import BaseLLM
@@ -21,7 +21,7 @@
2121

2222

2323
@Executor.register('local')
24-
class LocalExecutor(Executor):
24+
class LocalExecutor(ExecProto):
2525

2626
def __init__(self, input_args: InputArgs):
2727
self.input_args: InputArgs = input_args

dingo/exec/spark.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from dingo.config import GlobalConfig
77
from dingo.data import Dataset, DataSource, dataset_map, datasource_map
8-
from dingo.exec.base import Executor
8+
from dingo.exec.base import ExecProto, Executor
99
from dingo.io import InputArgs, MetaData, ResultInfo, SummaryModel
1010
from dingo.model import Model
1111
from dingo.model.llm.base import BaseLLM
@@ -19,7 +19,7 @@
1919

2020

2121
@Executor.register('spark')
22-
class SparkExecutor(Executor):
22+
class SparkExecutor(ExecProto):
2323
"""
2424
Spark executor
2525
"""

0 commit comments

Comments
 (0)