fixed #18 : I can evaluate concept

This commit is contained in:
2023-06-01 22:08:34 +02:00
parent 09a0246420
commit 62391f786e
25 changed files with 1503 additions and 314 deletions
+29 -2
View File
@@ -1,9 +1,17 @@
from common.global_symbols import NotInit
from core.ExecutionContext import ExecutionContext
from core.ReturnValue import ReturnValue
from core.concept import Concept, ConceptMetadata, DefinitionType
from core.concept import Concept, ConceptDefaultProps, ConceptMetadata, DefinitionType
from services.SheerkaConceptManager import ConceptManager
ATTR_MAP = {
"where": ConceptDefaultProps.WHERE,
"pre": ConceptDefaultProps.PRE,
"body": ConceptDefaultProps.BODY,
"post": ConceptDefaultProps.POST,
"ret": ConceptDefaultProps.RET,
}
class GetNextId:
def __init__(self):
@@ -104,6 +112,25 @@ def get_concept(name=None, body=None,
return Concept(metadata)
def get_evaluated_concept(blueprint: Concept | ConceptMetadata, **kwargs):
"""
Returns a concept where value are already initialized
:param blueprint:
:type blueprint:
:param kwargs:
:type kwargs:
:return:
:rtype:
"""
res = Concept(blueprint.get_metadata())
for k, v in kwargs.items():
res.set_value(ATTR_MAP.get(k, k), v)
res.get_runtime_info().is_evaluated = True
return res
def get_metadata(name=None, body=None,
id=None,
key=None,
@@ -345,7 +372,7 @@ def define_new_concept(context: ExecutionContext, c: str | Concept | ConceptMeta
metadata.parameters)
assert retval.status
concept = sheerka.newn(retval.value.metadata.name)
concept = sheerka.newi(retval.value.metadata.id)
return concept