Fixed memory() and RET usage
This commit is contained in:
@@ -3,9 +3,10 @@ import time
|
||||
from core.builtin_concepts import BuiltinConcepts
|
||||
from core.sheerka.services.sheerka_service import BaseService
|
||||
|
||||
CONCEPTS_FILE = "_concepts_lite.txt"
|
||||
CONCEPTS_FILE_LITE = "_concepts_lite.txt"
|
||||
CONCEPTS_FILE_ALL_CONCEPTS = "_concepts.txt"
|
||||
CONCEPTS_FILE_TO_USE = CONCEPTS_FILE
|
||||
CONCEPTS_FILE_TO_USE = CONCEPTS_FILE_ALL_CONCEPTS
|
||||
|
||||
|
||||
class SheerkaAdmin(BaseService):
|
||||
NAME = "Admin"
|
||||
@@ -19,6 +20,7 @@ class SheerkaAdmin(BaseService):
|
||||
self.sheerka.bind_service_method(self.restore, True)
|
||||
self.sheerka.bind_service_method(self.concepts, False)
|
||||
self.sheerka.bind_service_method(self.last_created_concept, False)
|
||||
self.sheerka.bind_service_method(self.last_ret, False)
|
||||
|
||||
def caches_names(self):
|
||||
"""
|
||||
@@ -27,16 +29,20 @@ class SheerkaAdmin(BaseService):
|
||||
"""
|
||||
return list(self.sheerka.cache_manager.caches.keys())
|
||||
|
||||
def cache(self, name):
|
||||
def cache(self, name, *keys):
|
||||
"""
|
||||
Returns the content of a cache
|
||||
:param name:
|
||||
: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:
|
||||
return self.sheerka.new(BuiltinConcepts.NOT_FOUND, body={"cache": name})
|
||||
|
||||
return self.sheerka.cache_manager.caches[name].cache.copy()
|
||||
if not keys:
|
||||
return self.sheerka.cache_manager.caches[name].cache.copy()
|
||||
|
||||
return {key: self.sheerka.cache_manager.get(name, key) for key in keys}
|
||||
|
||||
def restore(self, concept_file=CONCEPTS_FILE_TO_USE):
|
||||
"""
|
||||
@@ -53,6 +59,7 @@ class SheerkaAdmin(BaseService):
|
||||
try:
|
||||
start = time.time_ns()
|
||||
nb_lines = 0
|
||||
nb_lines_in_error = 0
|
||||
self.sheerka.during_restore = True
|
||||
with open(concept_file, "r") as f:
|
||||
for line in f.readlines():
|
||||
@@ -63,14 +70,19 @@ class SheerkaAdmin(BaseService):
|
||||
self.sheerka.log.info(line)
|
||||
res = self.sheerka.evaluate_user_input(line)
|
||||
if len(res) > 1 or not res[0].status:
|
||||
self.sheerka.log.error("Error detected !")
|
||||
nb_lines_in_error += 1
|
||||
self.sheerka.log.error("\u001b[31mError detected !\u001b[0m")
|
||||
self.sheerka.during_restore = False
|
||||
stop = time.time_ns()
|
||||
|
||||
nano_sec = stop - start
|
||||
dt = nano_sec / 1e6
|
||||
elapsed = f"{dt} ms" if dt < 1000 else f"{dt / 1000} s"
|
||||
print(f"Imported {nb_lines} line(s) in {elapsed}.")
|
||||
self.sheerka.log.info(f"Imported {nb_lines} line(s) in {elapsed}.")
|
||||
if nb_lines_in_error > 0:
|
||||
self.sheerka.log.info(f"\u001b[31m{nb_lines_in_error} errors(s) found.\u001b[0m")
|
||||
else:
|
||||
self.sheerka.log.info(f"No error.")
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
@@ -89,3 +101,5 @@ class SheerkaAdmin(BaseService):
|
||||
|
||||
return self.sheerka.new(BuiltinConcepts.NOT_FOUND)
|
||||
|
||||
def last_ret(self, context, index=-1):
|
||||
return self.sheerka.last_return_values[index]
|
||||
|
||||
Reference in New Issue
Block a user