Code Duplication    Length = 35-36 lines in 2 locations

src/hyperactive/search_config/_search_config.py 1 location

@@ 15-50 (lines=36) @@
12
from ._properties import calculate_properties
13
14
15
class SearchSpaceDictLike(MutableMapping):
16
    _search_space: dict = None
17
18
    def __init__(self, constraints: List[callable] = None, **param_space):
19
        self._search_space = dict(**param_space)
20
        self.constraints = constraints
21
22
    def __getitem__(self, key):
23
        return self._search_space[key]
24
25
    def __setitem__(self, key, value):
26
        self._search_space[key] = value
27
28
    def __delitem__(self, key):
29
        del self._search_space[key]
30
31
    def __iter__(self):
32
        return iter(self._search_space)
33
34
    def __len__(self):
35
        return len(self._search_space)
36
37
    def __repr__(self):
38
        return f"{self.__class__.__name__}({self._search_space})"
39
40
    def __call__(self):
41
        return self._search_space
42
43
    def keys(self):
44
        return self._search_space.keys()
45
46
    def values(self):
47
        return self._search_space.values()
48
49
    def items(self):
50
        return self._search_space.items()
51
52
53
class SearchConfig(SearchSpaceDictLike):

src_old/hyperactive/base/search_space/_search_space.py 1 location

@@ 14-48 (lines=35) @@
11
from ._properties import calculate_properties
12
13
14
class SearchSpaceDictLike(MutableMapping):
15
    _search_space: dict = None
16
17
    def __init__(self, **param_space):
18
        self._search_space = dict(**param_space)
19
20
    def __getitem__(self, key):
21
        return self._search_space[key]
22
23
    def __setitem__(self, key, value):
24
        self._search_space[key] = value
25
26
    def __delitem__(self, key):
27
        del self._search_space[key]
28
29
    def __iter__(self):
30
        return iter(self._search_space)
31
32
    def __len__(self):
33
        return len(self._search_space)
34
35
    def __repr__(self):
36
        return f"{self.__class__.__name__}({self._search_space})"
37
38
    def __call__(self):
39
        return self._search_space
40
41
    def keys(self):
42
        return self._search_space.keys()
43
44
    def values(self):
45
        return self._search_space.values()
46
47
    def items(self):
48
        return self._search_space.items()
49
50
51
class SearchSpace(SearchSpaceDictLike):