Refactored sheerka execution flow + Enhanced log management
This commit is contained in:
@@ -2,9 +2,6 @@ from core.builtin_concepts import ParserResultConcept, BuiltinConcepts
|
||||
import core.builtin_helpers
|
||||
from core.concept import Concept, ConceptParts
|
||||
from evaluators.BaseEvaluator import OneReturnValueEvaluator
|
||||
import logging
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ConceptEvaluator(OneReturnValueEvaluator):
|
||||
@@ -15,7 +12,11 @@ class ConceptEvaluator(OneReturnValueEvaluator):
|
||||
Then checks the POST conditions
|
||||
"""
|
||||
NAME = "Concept"
|
||||
evaluation_steps = [BuiltinConcepts.EVALUATION, BuiltinConcepts.AFTER_EVALUATION]
|
||||
evaluation_steps = [
|
||||
BuiltinConcepts.BEFORE_EVALUATION,
|
||||
BuiltinConcepts.EVALUATION,
|
||||
BuiltinConcepts.AFTER_EVALUATION
|
||||
]
|
||||
|
||||
def __init__(self):
|
||||
super().__init__(self.NAME, 50)
|
||||
@@ -40,7 +41,7 @@ class ConceptEvaluator(OneReturnValueEvaluator):
|
||||
|
||||
# Evaluate the properties
|
||||
for prop in concept.props:
|
||||
sub_context = context.push(self.name, f"Evaluating property '{prop}'", concept)
|
||||
sub_context = context.push(self.name, desc=f"Evaluating property '{prop}'", obj=concept)
|
||||
res = self.evaluate_parsing(sheerka, sub_context, concept.cached_asts[prop])
|
||||
if res.status:
|
||||
concept.set_prop(prop, res.value)
|
||||
@@ -60,11 +61,11 @@ class ConceptEvaluator(OneReturnValueEvaluator):
|
||||
if body is None:
|
||||
raise NotImplementedError("Seems weird !")
|
||||
|
||||
sub_context = context.push(self.name, "Evaluating body", concept)
|
||||
sub_context = context.push(self.name, desc="Evaluating body", obj=concept)
|
||||
res = self.evaluate_parsing(sheerka, sub_context, body)
|
||||
return sheerka.ret(self.name, res.status, res.value, parents=[return_value])
|
||||
|
||||
def evaluate_parsing(self, sheerka, context, parsing_result):
|
||||
res = sheerka.chain_process(context, parsing_result, self.evaluation_steps)
|
||||
res = sheerka.execute(context, parsing_result, self.evaluation_steps, self.log)
|
||||
res = core.builtin_helpers.expect_one(context, res)
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user