Passed
Push — master ( 0a901a...1414af )
by Simon
01:23
created

hyperactive.model.is_numeric()   A

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nop 1
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import time
6
import numbers
7
import numpy as np
8
9
def is_numeric(variable):
10
    return isinstance(variable, numbers.Number)
11
12
class Model:
13
    def __init__(self, func_, nth_process, _main_args_):
14
        self.func_ = func_
15
        self.nth_process = nth_process
16
        self.X = _main_args_.X
17
        self.y = _main_args_.y
18
19
    def train_model(self, para_dict):
20
        start_time = time.time()
21
        results = self.func_(para_dict, self.X, self.y)
22
        eval_time = time.time() - start_time
23
24
        if isinstance(results, tuple):
25
            self.n_results = len(results)
26
27
            score = results[0]
28
            self.rest = results[1]
29
        else:
30
            self.n_results = 1
31
            score = results
32
            self.rest = None
33
34
        if is_numeric(score):
35
            return score, eval_time
36
        else:
37
            print("Error: model function must return numeric variable")
38