Passed
Push — dev ( 1b3874...6a1e3c )
by Konstantinos
03:33
created

DataFHandler.missing()   A

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 2
rs 10
c 0
b 0
f 0
cc 1
nop 2
1
from . import df_operations as dfop
2
from green_magic.data.base_handling import BaseDataHandler
3
4
5
@BaseDataHandler.register_as_subclass('df-handler')
6
class DataFHandler(BaseDataHandler):
7
8
    def get_all_variables(self, *args, **kwargs):
9
        return args[0].columns
10
11
    def get_categorical_variables(self, *args, **kwargs):
12
        return dfop.categorical_feats(args[0])
13
14
    def get_numerical_variables(self, *args, **kwargs):
15
        return dfop.numerical_feats(args[0])
16
17
    def missing(self, df):
18
        return dfop.missing_values(df)
19
20
    def add_state(self, dataset, feature, computer, state, cache_prev=True, **kwargs):
21
        values = computer(dataset, feature)
22
        prev_state = feature.state
23
        feature.update(state.key, state.reporter)
24
        dataset.datapoints.observations[state.index] = values
25
        if not cache_prev:
26
            self.del_state(dataset, feature, prev_state)
27
28
    def del_state(self, dataset, feature, state, **kwargs):
29
        # DEBUG CODE
30
        if state.key == feature.current:
31
            raise RuntimeError(f"Requested to delete attribute/column '{state.key}', but it is the current state of feature {str(feature)}")
32
        del dataset.datapoints.observations.df[f'{feature.id}-{state.key}']
33
        del feature.states[state.key]
34
35
36
data_handler = DataFHandler()
37
38