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

green_magic.so_master.SoMaster.datapoints()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nop 1
1
import attr
2
3
4
@attr.s
5
class SoMaster:
6
    _data_manager = attr.ib(init=True)
7
    _dataset_constructor = attr.ib(init=True)
8
    _magic_map_manager_constructor = attr.ib(init=True)
9
10
    _map_manager = attr.ib(init=False, default=attr.Factory(lambda self: self._magic_map_manager_constructor(self), takes_self=True))
11
    _last_path = attr.ib(init=False, default='')
12
13
    def load_data(self, file_path, id=''):
14
        cmd = self._data_manager.command.observations
15
        cmd.args = [file_path]
16
        cmd.execute()
17
        self._last_path = file_path
18
        return self._data_manager.backend.datapoints_manager.datapoints
19
20
    @property
21
    def map(self):
22
        return self._map_manager
23
24
    @property
25
    def datapoints(self):
26
        return self._data_manager.backend.datapoints_manager.datapoints
27
28
    @property
29
    def dataset(self):
30
        return self._dataset_constructor(
31
            self._data_manager.backend.datapoints_manager.datapoints,
32
            self._last_path,
33
        )
34
35
    @classmethod
36
    def create(cls, data_manager):
37
        from .som import MagicMapManager
38
        from .data.dataset import Dataset
39
        return SoMaster(data_manager, Dataset, MagicMapManager)