Browse Source

[MNT] Update reload from db

tags/v0.3.2
chenzx 2 years ago
parent
commit
1a3c1a66d5
2 changed files with 13 additions and 3 deletions
  1. +3
    -1
      learnware/market/database_ops.py
  2. +10
    -2
      learnware/market/easy.py

+ 3
- 1
learnware/market/database_ops.py View File

@@ -71,6 +71,7 @@ def load_market_from_db(cur):


learnware_list = {} learnware_list = {}
zip_list = {} zip_list = {}
folder_list = {}
max_count = 0 max_count = 0
for item in cursor: for item in cursor:
id, semantic_spec, zip_path, folder_path = item id, semantic_spec, zip_path, folder_path = item
@@ -80,6 +81,7 @@ def load_market_from_db(cur):
) )
learnware_list[id] = new_learnware learnware_list[id] = new_learnware
zip_list[id] = zip_path zip_list[id] = zip_path
folder_list = folder_path
max_count = max(max_count, int(id)) max_count = max(max_count, int(id))
LOGGER.info("Market Reloaded from DB.") LOGGER.info("Market Reloaded from DB.")
return learnware_list, max_count + 1
return learnware_list, zip_list, folder_list, max_count + 1

+ 10
- 2
learnware/market/easy.py View File

@@ -22,13 +22,14 @@ class EasyMarket(BaseMarket):
"""Initializing an empty market""" """Initializing an empty market"""
self.learnware_list = {} # id: Learnware self.learnware_list = {} # id: Learnware
self.learnware_zip_list = {} self.learnware_zip_list = {}
self.learnware_folder_list = {}
self.count = 0 self.count = 0
self.semantic_spec_list = C.semantic_specs self.semantic_spec_list = C.semantic_specs
self.reload_market() self.reload_market()
logger.info("Market Initialized!") logger.info("Market Initialized!")


def reload_market(self) -> bool: def reload_market(self) -> bool:
self.learnware_list, self.count = load_market_from_db()
self.learnware_list, self.learnware_zip_list, self.learnware_folder_list, self.count = load_market_from_db()


def check_learnware(self, learnware: Learnware) -> bool: def check_learnware(self, learnware: Learnware) -> bool:
"""Check the utility of a learnware """Check the utility of a learnware
@@ -116,6 +117,7 @@ class EasyMarket(BaseMarket):
else: else:
self.learnware_list[id] = new_learnware self.learnware_list[id] = new_learnware
self.learnware_zip_list[id] = target_zip_dir self.learnware_zip_list[id] = target_zip_dir
self.learnware_folder_list[id] = target_folder_dir
self.count += 1 self.count += 1
add_learnware_to_db( add_learnware_to_db(
id, id,
@@ -381,10 +383,16 @@ class EasyMarket(BaseMarket):
def delete_learnware(self, id: str) -> bool: def delete_learnware(self, id: str) -> bool:
if not id in self.learnware_list: if not id in self.learnware_list:
raise Exception("Learnware id:'{}' NOT Found!".format(id)) raise Exception("Learnware id:'{}' NOT Found!".format(id))

zip_dir = self.learnware_zip_list[id]
os.remove(zip_dir)
folder_dir = self.learnware_folder_list[id]
rmtree(folder_dir)
self.learnware_list.pop(id) self.learnware_list.pop(id)
self.learnware_zip_list.pop(id) self.learnware_zip_list.pop(id)
self.learnware_folder_list.pop(id)
delete_learnware_from_db(id) delete_learnware_from_db(id)
return True return True


def get_semantic_spec_list(self) -> dict: def get_semantic_spec_list(self) -> dict:


Loading…
Cancel
Save