Implemented SheerkaOntology
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import sys
|
||||
import time
|
||||
from operator import attrgetter
|
||||
from os import path
|
||||
|
||||
from core.builtin_concepts_ids import BuiltinConcepts, BuiltinContainers
|
||||
@@ -27,13 +28,16 @@ class SheerkaAdmin(BaseService):
|
||||
self.sheerka.bind_service_method(self.extended_isinstance, False)
|
||||
self.sheerka.bind_service_method(self.is_container, False)
|
||||
self.sheerka.bind_service_method(self.format_rules, False)
|
||||
self.sheerka.bind_service_method(self.admin_push_ontology, True, as_name="push_ontology")
|
||||
self.sheerka.bind_service_method(self.admin_pop_ontology, True, as_name="pop_ontology")
|
||||
self.sheerka.bind_service_method(self.ontologies, False)
|
||||
|
||||
def caches_names(self):
|
||||
"""
|
||||
Returns the name of all the caches
|
||||
:return:
|
||||
"""
|
||||
return list(self.sheerka.cache_manager.caches.keys())
|
||||
return list(self.sheerka.om.current_cache_manager().caches.keys())
|
||||
|
||||
def cache(self, name, *keys):
|
||||
"""
|
||||
@@ -42,13 +46,13 @@ class SheerkaAdmin(BaseService):
|
||||
:param keys: look for a specific key. May ask to sdp if the key is not in cache
|
||||
:return:
|
||||
"""
|
||||
if name not in self.sheerka.cache_manager.caches:
|
||||
if name not in self.sheerka.om.current_cache_manager().caches:
|
||||
return self.sheerka.new(BuiltinConcepts.NOT_FOUND, body={"cache": name})
|
||||
|
||||
if not keys:
|
||||
return self.sheerka.cache_manager.caches[name].cache.copy()
|
||||
return self.sheerka.om.current_cache_manager().caches[name].cache.copy()
|
||||
|
||||
return {key: self.sheerka.cache_manager.get(name, key) for key in keys}
|
||||
return {key: self.sheerka.om.get(name, key) for key in keys}
|
||||
|
||||
def restore(self, concept_file=CONCEPTS_FILE_TO_USE):
|
||||
"""
|
||||
@@ -119,7 +123,8 @@ class SheerkaAdmin(BaseService):
|
||||
raise e
|
||||
|
||||
def concepts(self):
|
||||
return self.sheerka.new(BuiltinConcepts.TO_LIST, body=self.sheerka.sdp.list(self.sheerka.CONCEPTS_BY_ID_ENTRY))
|
||||
concepts = sorted(self.sheerka.om.list(self.sheerka.CONCEPTS_BY_ID_ENTRY), key=lambda item: int(item.id))
|
||||
return self.sheerka.new(BuiltinConcepts.TO_LIST, body=concepts)
|
||||
|
||||
def desc(self, *concepts):
|
||||
ensure_concept(*concepts)
|
||||
@@ -146,7 +151,6 @@ class SheerkaAdmin(BaseService):
|
||||
def format_rules(self):
|
||||
return self.sheerka.new(BuiltinConcepts.TO_LIST, items=self.sheerka.get_format_rules())
|
||||
|
||||
|
||||
def extended_isinstance(self, a, b):
|
||||
"""
|
||||
switch between sheerka.isinstance and builtin.isinstance
|
||||
@@ -171,3 +175,13 @@ class SheerkaAdmin(BaseService):
|
||||
return False
|
||||
|
||||
return obj.key in BuiltinContainers
|
||||
|
||||
def admin_push_ontology(self, context, name):
|
||||
return self.sheerka.push_ontology(context, name, False)
|
||||
|
||||
def admin_pop_ontology(self):
|
||||
return self.sheerka.pop_ontology()
|
||||
|
||||
def ontologies(self):
|
||||
ontologies = self.sheerka.om.ontologies_names
|
||||
return self.sheerka.new(BuiltinConcepts.TO_LIST, body=ontologies)
|
||||
|
||||
Reference in New Issue
Block a user