Skip to content

Commit 6211f28

Browse files
committed
use getattr to get functions
1 parent 500eabe commit 6211f28

File tree

1 file changed

+7
-23
lines changed

1 file changed

+7
-23
lines changed

ddf_utils/chef/dag.py

+7-23
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,7 @@
33
"""the DAG module of chef"""
44

55
import pandas as pd
6-
from . procedure import *
7-
8-
# supported procedures
9-
supported_procs = {
10-
'translate_column': translate_column,
11-
'translate_header': translate_header,
12-
'identity': identity,
13-
'merge': merge,
14-
'run_op': run_op,
15-
'filter_row': filter_row,
16-
'align': align,
17-
'filter_item': filter_item,
18-
'groupby': groupby,
19-
'accumulate': accumulate,
20-
'copy': copy,
21-
'extract_concepts': extract_concepts
22-
}
6+
from . import procedure as pc
237

248

259
class BaseNode():
@@ -94,12 +78,12 @@ def __init__(self, node_id, procedure, dag):
9478
def evaluate(self):
9579
if self.result_ingredient:
9680
return self.result_ingredient
97-
funcs = supported_procs
98-
func = self.procedure['procedure']
9981

100-
# raise error if procedure not supported
101-
if func not in funcs.keys() and func != 'serve':
102-
raise NotImplementedError("Not supported: " + func)
82+
# get the procedure function, raise error if procedure not supported
83+
try:
84+
func = getattr(pc, self.procedure['procedure'])
85+
except AttributeError:
86+
raise NotImplementedError("Not supported: " + self.procedure['procedure'])
10387

10488
# check the base ingredients and convert the string id to actual ingredient
10589
ingredients = []
@@ -121,7 +105,7 @@ def evaluate(self):
121105
else:
122106
options = dict()
123107

124-
self.result_ingredient = funcs[func](*ingredients, result=self.procedure['result'], **options)
108+
self.result_ingredient = func(*ingredients, result=self.procedure['result'], **options)
125109
return self.result_ingredient
126110

127111

0 commit comments

Comments
 (0)