cengal.data_containers.compound_dict_management.manager.versions.v_0.manager

 1#!/usr/bin/env python
 2# coding=utf-8
 3
 4# Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>
 5# 
 6# Licensed under the Apache License, Version 2.0 (the "License");
 7# you may not use this file except in compliance with the License.
 8# You may obtain a copy of the License at
 9# 
10#     http://www.apache.org/licenses/LICENSE-2.0
11# 
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18from cengal.code_flow_control.smart_values.versions.v_0 import ResultExistence
19
20"""
21Module Docstring
22Docstrings: http://www.python.org/dev/peps/pep-0257/
23"""
24
25__author__ = "ButenkoMS <gtalk@butenkoms.space>"
26__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>"
27__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ]
28__license__ = "Apache License, Version 2.0"
29__version__ = "4.4.1"
30__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>"
31__email__ = "gtalk@butenkoms.space"
32# __status__ = "Prototype"
33__status__ = "Development"
34# __status__ = "Production"
35
36
37class AddToCompoundDict:
38    def __init__(self, original_dict, default_value, mediator):
39        """
40
41        :param original_dict:
42        :param default_value: functor. list(); {1:set(), 2:[set(), set(), list()]}; etc.
43        :param mediator: functor. original_dict[index].add(y), original_dict[index] += y, etc. Should return
44            ResultExistence(True, ...) or None/nothing
45        :return:
46        """
47        self.original_dict = original_dict
48        self._mediator = mediator
49        self._default_value = default_value
50
51    def add(self, key, value=None):
52        # if key not in self.original_dict:
53        #     self.original_dict[key] = self._default_value()
54        self.original_dict.setdefault(key, self._default_value())
55        result = self._mediator(self.original_dict, key, value)
56        # if result is not None:
57        if isinstance(result, ResultExistence):
58            self.original_dict[key] = result.result
class AddToCompoundDict:
38class AddToCompoundDict:
39    def __init__(self, original_dict, default_value, mediator):
40        """
41
42        :param original_dict:
43        :param default_value: functor. list(); {1:set(), 2:[set(), set(), list()]}; etc.
44        :param mediator: functor. original_dict[index].add(y), original_dict[index] += y, etc. Should return
45            ResultExistence(True, ...) or None/nothing
46        :return:
47        """
48        self.original_dict = original_dict
49        self._mediator = mediator
50        self._default_value = default_value
51
52    def add(self, key, value=None):
53        # if key not in self.original_dict:
54        #     self.original_dict[key] = self._default_value()
55        self.original_dict.setdefault(key, self._default_value())
56        result = self._mediator(self.original_dict, key, value)
57        # if result is not None:
58        if isinstance(result, ResultExistence):
59            self.original_dict[key] = result.result
AddToCompoundDict(original_dict, default_value, mediator)
39    def __init__(self, original_dict, default_value, mediator):
40        """
41
42        :param original_dict:
43        :param default_value: functor. list(); {1:set(), 2:[set(), set(), list()]}; etc.
44        :param mediator: functor. original_dict[index].add(y), original_dict[index] += y, etc. Should return
45            ResultExistence(True, ...) or None/nothing
46        :return:
47        """
48        self.original_dict = original_dict
49        self._mediator = mediator
50        self._default_value = default_value

:param original_dict: :param default_value: functor. list(); {1:set(), 2:[set(), set(), list()]}; etc. :param mediator: functor. original_dict[index].add(y), original_dict[index] += y, etc. Should return ResultExistence(True, ...) or None/nothing :return:

original_dict
def add(self, key, value=None):
52    def add(self, key, value=None):
53        # if key not in self.original_dict:
54        #     self.original_dict[key] = self._default_value()
55        self.original_dict.setdefault(key, self._default_value())
56        result = self._mediator(self.original_dict, key, value)
57        # if result is not None:
58        if isinstance(result, ResultExistence):
59            self.original_dict[key] = result.result