Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# -*- coding: utf-8 -*-
2"""
3@file
4@brief Helpers to identify an interpreter.
5"""
6from ..tools import change_style
7from .g_sklearn_linear_model import sklearn_logistic_regression, sklearn_linear_regression
8from .g_sklearn_preprocessing import sklearn_standard_scaler
9from .g_sklearn_tree import sklearn_decision_tree_regressor
12def __pep8(): # pragma: no cover
13 assert sklearn_decision_tree_regressor
14 assert sklearn_linear_regression
15 assert sklearn_logistic_regression
16 assert sklearn_standard_scaler
19def identify_interpreter(model):
20 """
21 Identifies the interpreter for a *scikit-learn* model.
23 @param model model to identify
24 @return interpreter
25 """
26 class_name = model.__class__.__name__
27 pyname = change_style(class_name)
28 skconv = "sklearn_" + pyname
29 loc = globals().copy()
30 convs = {k: v for k, v in loc.items() if k.startswith("sklearn")}
31 if len(convs) == 0:
32 raise ValueError( # pragma: no cover
33 "No found interpreters, possibilities=\n{0}".format(
34 "\n".join(sorted(loc.keys()))))
35 if skconv in convs:
36 return convs[skconv]
37 raise NotImplementedError( # pragma: no cover
38 "Model class '{0}' is not yet implemented. Available interpreters:\n{1}".format(
39 class_name, "\n".join(
40 sorted(
41 convs.keys()))))