Hide keyboard shortcuts

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 

10 

11 

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 

17 

18 

19def identify_interpreter(model): 

20 """ 

21 Identifies the interpreter for a *scikit-learn* model. 

22 

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()))))