Added mandatory evaluator steps

This commit is contained in:
2019-12-22 19:51:17 +01:00
parent a683d4cd42
commit 5c90b07e1a
13 changed files with 210 additions and 63 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
from core.ast.nodes import python_to_concept
from core.builtin_concepts import ParserResultConcept, ReturnValueConcept
from core.builtin_concepts import ParserResultConcept, ReturnValueConcept, BuiltinConcepts
from core.builtin_helpers import get_names
from core.concept import Concept
from evaluators.BaseEvaluator import OneReturnValueEvaluator
@@ -39,7 +39,7 @@ class AddConceptEvaluator(OneReturnValueEvaluator):
NAME = "AddNewConcept"
def __init__(self):
super().__init__(self.NAME, 50)
super().__init__(self.NAME, [BuiltinConcepts.EVALUATION], 50)
def matches(self, context, return_value):
return return_value.status and \
+1 -1
View File
@@ -18,7 +18,7 @@ class AddConceptInSetEvaluator(OneReturnValueEvaluator):
NAME = "AddConceptInSet"
def __init__(self):
super().__init__(self.NAME, 50)
super().__init__(self.NAME, [BuiltinConcepts.EVALUATION], 50)
def matches(self, context, return_value):
return return_value.status and \
+3 -2
View File
@@ -8,15 +8,16 @@ class BaseEvaluator:
"""
PREFIX = "evaluators."
enabled = True
def __init__(self, name, priority: int):
def __init__(self, name, steps, priority: int, enabled=True):
self.log = get_logger(self.PREFIX + self.__class__.__name__)
self.init_log = get_logger("init." + self.PREFIX + self.__class__.__name__)
self.verbose_log = get_logger("verbose." + self.PREFIX + self.__class__.__name__)
self.name = self.PREFIX + name
self.steps = steps
self.priority = priority
self.enabled = enabled
class OneReturnValueEvaluator(BaseEvaluator):
+1 -1
View File
@@ -18,7 +18,7 @@ class ConceptEvaluator(OneReturnValueEvaluator):
]
def __init__(self):
super().__init__(self.NAME, 50)
super().__init__(self.NAME, [BuiltinConcepts.EVALUATION], 50)
def matches(self, context, return_value):
return return_value.status and \
+1 -1
View File
@@ -12,7 +12,7 @@ class ConceptNodeEvaluator(OneReturnValueEvaluator):
NAME = "ConceptNode"
def __init__(self):
super().__init__(self.NAME, 60) # more than the ConceptNodeEvaluator
super().__init__(self.NAME, [BuiltinConcepts.EVALUATION], 60) # more than the ConceptNodeEvaluator
def matches(self, context, return_value):
if not return_value.status:
+1 -1
View File
@@ -13,7 +13,7 @@ class DuplicateConceptEvaluator(AllReturnValuesEvaluator):
NAME = "DuplicateConcept"
def __init__(self):
super().__init__(self.NAME, 10)
super().__init__(self.NAME, [BuiltinConcepts.AFTER_EVALUATION], 10)
self.already_defined = None
def matches(self, context, return_values):
+1 -1
View File
@@ -15,7 +15,7 @@ class MultipleSameSuccessEvaluator(AllReturnValuesEvaluator):
NAME = "MultipleSameSuccess"
def __init__(self):
super().__init__(self.NAME, 10)
super().__init__(self.NAME, [BuiltinConcepts.AFTER_EVALUATION], 10)
self.success = []
def matches(self, context, return_values):
+1 -1
View File
@@ -14,7 +14,7 @@ class OneSuccessEvaluator(AllReturnValuesEvaluator):
NAME = "OneSuccess"
def __init__(self):
super().__init__(self.NAME, 10)
super().__init__(self.NAME, [BuiltinConcepts.AFTER_EVALUATION], 10)
self.successful_return_value = None
def matches(self, context, return_values):
+1 -1
View File
@@ -16,7 +16,7 @@ class PythonEvaluator(OneReturnValueEvaluator):
"""
def __init__(self):
super().__init__(self.NAME, 50)
super().__init__(self.NAME, [BuiltinConcepts.EVALUATION], 50)
def matches(self, context, return_value):
return return_value.status and \
+1 -1
View File
@@ -17,7 +17,7 @@ class TooManySuccessEvaluator(AllReturnValuesEvaluator):
NAME = "TooManySuccess"
def __init__(self):
super().__init__(self.NAME, 10)
super().__init__(self.NAME, [BuiltinConcepts.AFTER_EVALUATION], 10)
self.success = []
def matches(self, context, return_values):