fixed #18 : I can evaluate concept
This commit is contained in:
@@ -3,6 +3,7 @@ from core.ExecutionContext import ExecutionContext, ContextActions
|
||||
from core.ReturnValue import ReturnValue
|
||||
from core.error import ErrorContext
|
||||
from evaluators.base_evaluator import EvaluatorEvalResult, EvaluatorMatchResult, OneReturnValueEvaluator
|
||||
from services.SheerkaPython import EvaluationContext
|
||||
|
||||
|
||||
class PythonEvaluator(OneReturnValueEvaluator):
|
||||
@@ -22,7 +23,7 @@ class PythonEvaluator(OneReturnValueEvaluator):
|
||||
sheerka = context.sheerka
|
||||
fragment = return_value.value.pf
|
||||
|
||||
evaluated = sheerka.evaluate_python(context, fragment)
|
||||
evaluated = sheerka.evaluate_python(context, EvaluationContext(), fragment)
|
||||
if isinstance(evaluated, ErrorContext):
|
||||
return EvaluatorEvalResult([ReturnValue(self.name, False, evaluated, parents=[return_value])],
|
||||
[])
|
||||
|
||||
@@ -3,7 +3,7 @@ from dataclasses import dataclass
|
||||
|
||||
from common.utils import encode_concept
|
||||
from core.BuiltinConcepts import BuiltinConcepts
|
||||
from core.ExecutionContext import ExecutionContext, ContextActions
|
||||
from core.ExecutionContext import ContextActions, ExecutionContext
|
||||
from core.ReturnValue import ReturnValue
|
||||
from core.error import ErrorContext, ErrorObj
|
||||
from core.python_fragment import PythonFragment
|
||||
@@ -50,10 +50,10 @@ class PythonParser(OneReturnValueEvaluator):
|
||||
source_code = parser_input.as_text(python_switcher, tracker).lstrip() # right side spaces must be kept
|
||||
|
||||
try:
|
||||
ast_tree = ast.parse(source_code, f"<user input>", 'eval')
|
||||
ast_tree = ast.parse(source_code, "<user input>", 'eval')
|
||||
except:
|
||||
try:
|
||||
ast_tree = ast.parse(source_code, f"<user input>", 'exec')
|
||||
ast_tree = ast.parse(source_code, "<user input>", 'exec')
|
||||
except Exception as error:
|
||||
error_context = ErrorContext(self.NAME, context, PythonErrorNode(parser_input.as_text(), error))
|
||||
error_ret_val = ReturnValue(self.NAME, False, error_context, [return_value])
|
||||
|
||||
Reference in New Issue
Block a user