Implemented SheerkaOntology
This commit is contained in:
+23
-3
@@ -5,7 +5,7 @@ import core.utils
|
||||
|
||||
ACTION_TYPE_PRINT = "print"
|
||||
ACTION_TYPE_EXEC = "exec"
|
||||
ACTION_TYPE_DEFERRED = "deferred"
|
||||
ACTION_TYPE_DEFERRED = "deferred" # KSI 2021-04-01 What is it for ? I definitely need some proper documentation
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -27,8 +27,9 @@ class Rule:
|
||||
predicate=None,
|
||||
action=None,
|
||||
priority=None,
|
||||
rule_id=None,
|
||||
is_enabled=None):
|
||||
self.metadata = RuleMetadata(action_type, name, predicate, action, is_enabled=is_enabled)
|
||||
self.metadata = RuleMetadata(action_type, name, predicate, action, id=rule_id, is_enabled=is_enabled)
|
||||
self.compiled_predicate = None
|
||||
self.compiled_action = None
|
||||
from core.sheerka.services.SheerkaComparisonManager import SheerkaComparisonManager
|
||||
@@ -36,7 +37,10 @@ class Rule:
|
||||
self.error_sink = None
|
||||
|
||||
def __repr__(self):
|
||||
return f"Rule(#{self.metadata.id}, when '{self.metadata.predicate}' {self.metadata.action_type} '{self.metadata.action}', priority={self.priority})"
|
||||
rule_id = f"#{self.metadata.id}"
|
||||
if self.name:
|
||||
rule_id += f" ({self.metadata.name})"
|
||||
return f"Rule({rule_id}, when '{self.metadata.predicate}' {self.metadata.action_type} '{self.metadata.action}', priority={self.priority})"
|
||||
|
||||
def __eq__(self, other):
|
||||
if id(other) == id(self):
|
||||
@@ -57,6 +61,22 @@ class Rule:
|
||||
self.metadata.action_type,
|
||||
self.metadata.action))
|
||||
|
||||
def __deepcopy__(self, memodict={}):
|
||||
copy = Rule(self.metadata.action_type,
|
||||
self.name,
|
||||
self.metadata.predicate,
|
||||
self.metadata.action,
|
||||
self.priority,
|
||||
self.id,
|
||||
self.metadata.is_enabled)
|
||||
copy.compiled_predicate = self.compiled_predicate
|
||||
copy.compiled_action = self.compiled_action
|
||||
|
||||
return copy
|
||||
|
||||
def __copy__(self):
|
||||
return self.__deepcopy__()
|
||||
|
||||
def set_id(self, rule_id):
|
||||
self.metadata.id = rule_id
|
||||
return self
|
||||
|
||||
Reference in New Issue
Block a user