fixed #18 : I can evaluate concept
This commit is contained in:
@@ -10,7 +10,7 @@ from common.utils import get_logger_name, unstr_concept
|
||||
from core.BuiltinConcepts import BuiltinConcepts
|
||||
from core.ExecutionContext import ExecutionContext
|
||||
from core.ReturnValue import ReturnValue
|
||||
from core.concept import Concept, ConceptMetadata, ConceptDefaultPropsAttrs, DefinitionType
|
||||
from core.concept import Concept, ConceptDefaultPropsAttrs, ConceptMetadata, DefinitionType
|
||||
from core.error import ErrorContext, SheerkaException
|
||||
from parsers.tokenizer import TokenKind, Tokenizer, strip_tokens
|
||||
from services.BaseService import BaseService
|
||||
@@ -105,6 +105,9 @@ class ConceptManager(BaseService):
|
||||
_(4, BuiltinConcepts.USER_INPUT, desc="Any external input", variables=("command",))
|
||||
_(5, BuiltinConcepts.PARSER_INPUT, desc="tokenized input", variables=("pi",))
|
||||
_(6, BuiltinConcepts.PYTHON_CODE, desc="python code", variables=("pf",)) # pf for PythonFragment
|
||||
_(7, BuiltinConcepts.INVALID_CONCEPT, desc="invalid concept", variables=("concept_id", "reason"))
|
||||
_(8, BuiltinConcepts.EVALUATION_ERROR, desc="evaluation error", variables=("concept", "reason"))
|
||||
|
||||
|
||||
self.init_log.debug('%s builtin concepts created',
|
||||
len(self.sheerka.om.current_cache_manager().concept_caches))
|
||||
@@ -237,8 +240,11 @@ class ConceptManager(BaseService):
|
||||
:return:
|
||||
:rtype:
|
||||
"""
|
||||
if isinstance(identifier, ConceptMetadata):
|
||||
return self._inner_new(identifier, **kwargs)
|
||||
if isinstance(identifier, (ConceptMetadata, Concept)):
|
||||
return self._inner_new(identifier.get_metadata(), **kwargs)
|
||||
|
||||
if isinstance(identifier, list):
|
||||
return [self.new(item, **kwargs) for item in identifier]
|
||||
|
||||
if (tmp := unstr_concept(identifier)) != (None, None):
|
||||
# manage c:name#id:
|
||||
@@ -380,4 +386,9 @@ class ConceptManager(BaseService):
|
||||
concept = Concept(_metadata_def)
|
||||
for k, v in kwargs.items():
|
||||
concept.set_value(k, v)
|
||||
|
||||
if kwargs:
|
||||
# if an attribute is set, the concept is considered as evaluated
|
||||
concept.get_runtime_info().is_evaluated = True
|
||||
|
||||
return concept
|
||||
|
||||
Reference in New Issue
Block a user