Coverage for mlprodict/grammar/grammar_sklearn/grammar/gmlactions.py: 100%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2@file
3@brief Actions definition.
4"""
5from .api_extension import AutoAction
6from .gactions import MLAction, MLActionFunction
9class MLModel(MLActionFunction):
10 """
11 Base class for every machine learned model
12 """
14 def __init__(self, input, output_names=None, name=None):
15 """
16 @param name a name which identifies the action
17 @param input an action which produces the output result
18 @param output_names names for the outputs
19 """
20 MLActionFunction.__init__(self, input, name=name)
21 self.output_names = output_names
23 @property
24 def InputNames(self):
25 """
26 Returns the input names
27 """
28 vars = self.enumerate_variables()
29 res = list(sorted(set(v.name_var for v in vars)))
30 if len(res) == 0:
31 raise ValueError( # pragma: no cover
32 "At least one variable must be defined.")
33 return res
35 @property
36 def OutputNames(self):
37 """
38 Returns the output names
39 """
40 return self.output_names
42 @AutoAction.cache
43 def _export_json(self, hook=None, result_name=None):
44 js = MLAction._export_json(self, hook=hook)
45 js.update({"input_names": self.InputNames,
46 "output_names": self.OutputNames})
47 return js
49 @AutoAction.cache
50 def _export_c(self, hook=None, result_name=None):
51 if result_name is None:
52 result_name = "pred"
53 return MLActionFunction._export_c(self, hook=hook, result_name=result_name)