cengal.data_manipulation.front_triggerable_variable.versions.v_0.front_triggerable_variable
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 18 19__all__ = ['FrontTriggerableVariableType', 'FrontTriggerableVariable'] 20 21 22from enum import Enum 23from typing import Union 24 25""" 26Module Docstring 27Docstrings: http://www.python.org/dev/peps/pep-0257/ 28""" 29 30__author__ = "ButenkoMS <gtalk@butenkoms.space>" 31__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>" 32__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ] 33__license__ = "Apache License, Version 2.0" 34__version__ = "4.4.1" 35__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>" 36__email__ = "gtalk@butenkoms.space" 37# __status__ = "Prototype" 38__status__ = "Development" 39# __status__ = "Production" 40 41 42class FrontTriggerableVariableType(Enum): 43 equal = 0 44 lesser = 1 45 lesser_or_equal = 2 46 bigger = 3 47 bigger_or_equal = 4 48 not_equal = 5 49 50 51class FrontTriggerableVariable: 52 def __init__(self, triggerable_variable_type, value_limit): 53 self.triggerable_variable_type = triggerable_variable_type 54 self.value_limit = value_limit 55 self._last_result = None 56 self.test_worker = None 57 self.set_triggerable_variable_type(triggerable_variable_type) 58 59 def set_triggerable_variable_type(self, triggerable_variable_type): 60 self._last_result = None 61 self.triggerable_variable_type = triggerable_variable_type 62 if FrontTriggerableVariableType.equal == triggerable_variable_type: 63 self.test_worker = FrontTriggerableVariable._equal 64 elif FrontTriggerableVariableType.lesser == triggerable_variable_type: 65 self.test_worker = FrontTriggerableVariable._lesser 66 elif FrontTriggerableVariableType.lesser_or_equal == triggerable_variable_type: 67 self.test_worker = FrontTriggerableVariable._lesser_or_equal 68 elif FrontTriggerableVariableType.bigger == triggerable_variable_type: 69 self.test_worker = FrontTriggerableVariable._bigger 70 elif FrontTriggerableVariableType.bigger_or_equal == triggerable_variable_type: 71 self.test_worker = FrontTriggerableVariable._bigger_or_equal 72 elif FrontTriggerableVariableType.not_equal == triggerable_variable_type: 73 self.test_worker = FrontTriggerableVariable._not_equal 74 75 def test_trigger(self, value) -> Union[None, bool]: 76 result = None 77 new_test_result = self.test_worker(value, self.value_limit) 78 if new_test_result != self._last_result: 79 self._last_result = new_test_result 80 result = new_test_result 81 82 return result 83 84 def __call__(self, value) -> Union[None, bool]: 85 return self.test_trigger(value) 86 87 @staticmethod 88 def _equal(value, value_limit) -> bool: 89 return value == value_limit 90 91 @staticmethod 92 def _lesser(value, value_limit) -> bool: 93 return value < value_limit 94 95 @staticmethod 96 def _lesser_or_equal(value, value_limit) -> bool: 97 return value <= value_limit 98 99 @staticmethod 100 def _bigger(value, value_limit) -> bool: 101 return value > value_limit 102 103 @staticmethod 104 def _bigger_or_equal(value, value_limit) -> bool: 105 return value >= value_limit 106 107 @staticmethod 108 def _not_equal(value, value_limit) -> bool: 109 return value != value_limit
class
FrontTriggerableVariableType(enum.Enum):
43class FrontTriggerableVariableType(Enum): 44 equal = 0 45 lesser = 1 46 lesser_or_equal = 2 47 bigger = 3 48 bigger_or_equal = 4 49 not_equal = 5
An enumeration.
equal =
<FrontTriggerableVariableType.equal: 0>
lesser =
<FrontTriggerableVariableType.lesser: 1>
lesser_or_equal =
<FrontTriggerableVariableType.lesser_or_equal: 2>
bigger =
<FrontTriggerableVariableType.bigger: 3>
bigger_or_equal =
<FrontTriggerableVariableType.bigger_or_equal: 4>
not_equal =
<FrontTriggerableVariableType.not_equal: 5>
Inherited Members
- enum.Enum
- name
- value
class
FrontTriggerableVariable:
52class FrontTriggerableVariable: 53 def __init__(self, triggerable_variable_type, value_limit): 54 self.triggerable_variable_type = triggerable_variable_type 55 self.value_limit = value_limit 56 self._last_result = None 57 self.test_worker = None 58 self.set_triggerable_variable_type(triggerable_variable_type) 59 60 def set_triggerable_variable_type(self, triggerable_variable_type): 61 self._last_result = None 62 self.triggerable_variable_type = triggerable_variable_type 63 if FrontTriggerableVariableType.equal == triggerable_variable_type: 64 self.test_worker = FrontTriggerableVariable._equal 65 elif FrontTriggerableVariableType.lesser == triggerable_variable_type: 66 self.test_worker = FrontTriggerableVariable._lesser 67 elif FrontTriggerableVariableType.lesser_or_equal == triggerable_variable_type: 68 self.test_worker = FrontTriggerableVariable._lesser_or_equal 69 elif FrontTriggerableVariableType.bigger == triggerable_variable_type: 70 self.test_worker = FrontTriggerableVariable._bigger 71 elif FrontTriggerableVariableType.bigger_or_equal == triggerable_variable_type: 72 self.test_worker = FrontTriggerableVariable._bigger_or_equal 73 elif FrontTriggerableVariableType.not_equal == triggerable_variable_type: 74 self.test_worker = FrontTriggerableVariable._not_equal 75 76 def test_trigger(self, value) -> Union[None, bool]: 77 result = None 78 new_test_result = self.test_worker(value, self.value_limit) 79 if new_test_result != self._last_result: 80 self._last_result = new_test_result 81 result = new_test_result 82 83 return result 84 85 def __call__(self, value) -> Union[None, bool]: 86 return self.test_trigger(value) 87 88 @staticmethod 89 def _equal(value, value_limit) -> bool: 90 return value == value_limit 91 92 @staticmethod 93 def _lesser(value, value_limit) -> bool: 94 return value < value_limit 95 96 @staticmethod 97 def _lesser_or_equal(value, value_limit) -> bool: 98 return value <= value_limit 99 100 @staticmethod 101 def _bigger(value, value_limit) -> bool: 102 return value > value_limit 103 104 @staticmethod 105 def _bigger_or_equal(value, value_limit) -> bool: 106 return value >= value_limit 107 108 @staticmethod 109 def _not_equal(value, value_limit) -> bool: 110 return value != value_limit
def
set_triggerable_variable_type(self, triggerable_variable_type):
60 def set_triggerable_variable_type(self, triggerable_variable_type): 61 self._last_result = None 62 self.triggerable_variable_type = triggerable_variable_type 63 if FrontTriggerableVariableType.equal == triggerable_variable_type: 64 self.test_worker = FrontTriggerableVariable._equal 65 elif FrontTriggerableVariableType.lesser == triggerable_variable_type: 66 self.test_worker = FrontTriggerableVariable._lesser 67 elif FrontTriggerableVariableType.lesser_or_equal == triggerable_variable_type: 68 self.test_worker = FrontTriggerableVariable._lesser_or_equal 69 elif FrontTriggerableVariableType.bigger == triggerable_variable_type: 70 self.test_worker = FrontTriggerableVariable._bigger 71 elif FrontTriggerableVariableType.bigger_or_equal == triggerable_variable_type: 72 self.test_worker = FrontTriggerableVariable._bigger_or_equal 73 elif FrontTriggerableVariableType.not_equal == triggerable_variable_type: 74 self.test_worker = FrontTriggerableVariable._not_equal