Passed
Push — dev ( 3ac626...71cb7d )
by Konstantinos
01:24
created

green_magic.data.encode_nominal_subsets()   A

Complexity

Conditions 1

Size

Total Lines 6
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nop 3
1
from .data_manager import DataManager
2
from .features.phi import PhiFunctionRegistrator
3
from .features import FeatureManager
4
from .command_factories import MegaCommandFactory
5
6
7
def init_data_manager(a_backend):
8
    data_manager = DataManager(a_backend, type('PhiFunction', (PhiFunctionRegistrator,), {}), FeatureManager([]))
9
    mega_cmd_factory = MegaCommandFactory(data_manager)
10
    mega_cmd_factory.attach(data_manager.commands_manager.command.accumulator)
11
12
    mega_cmd_factory('select_variables')
13
14
    @data_manager.backend.engine.dec()
15
    def encode_nominal_subsets(datapoints, attribute, new_attribute):
16
        from green_magic.data.features.phis import ListOfCategoricalPhi, DatapointsAttributePhi
17
        phi = ListOfCategoricalPhi(DatapointsAttributePhi(datapoints))
18
        new_values = phi(attribute)
19
        datapoints.mutator.add_column(datapoints, new_values, new_attribute)
20
21
    import pandas as pd
22
    @data_manager.backend.engine.dec()
23
    def observations(file_path):
24
        return pd.read_json(file_path, lines=True)
25
26
27
    return data_manager
28