diff --git a/executor/mediator.py b/executor/mediator.py new file mode 100644 index 0000000..1d357d5 --- /dev/null +++ b/executor/mediator.py @@ -0,0 +1,50 @@ +__author__ = 'RemiZOffAlex' +__email__ = 'remizoffalex@mail.ru' + + +class Mediator: + def __init__(self): + self.__values = {} + + def get(self, name): + assert name in self.__values, f'Ключ {name} в настройках не найден' + return self.__values[name] + + def set(self, name, value): + self.__values[name] = value + + def emit(self, name, *args, **kwargs): + assert name in self.__values, f'Ключ {name} в настройках не найден' + method = self.__values[name] + response = method(*args, **kwargs) + return response + + def register(self, name, function): + self.__values[name] = function + + def __contains__(self, key): + if key in self.__values: + return True + else: + return False + + def __delitem__(self, key): + del self.__values[key] + + def __getitem__(self, key): + value = self.__values[key] + return value + + def __setitem__(self, key, value): + self.__values[key] = value + + def __iter__(self): + for name in self.__values.keys(): + yield name + + def __repr__(self): + result = [] + for key in self.__values: + value = self.__values[key] + result.append(f'{key}: {value}') + return '/n'.join(result)