Browse Source

[ENH] Implement delete item from db

tags/v0.3.2
chenzx 2 years ago
parent
commit
ef6758d75c
1 changed files with 21 additions and 18 deletions
  1. +21
    -18
      learnware/market/database_ops.py

+ 21
- 18
learnware/market/database_ops.py View File

@@ -11,12 +11,13 @@ LOGGER = get_module_logger("market")

def init_empty_db(func):

def wrapper():
if not os.path.exists(DB_PATH):
conn = sqlite3.connect(DB_PATH)
def wrapper(*args, **kwargs):
conn = sqlite3.connect(DB_PATH)
cur = conn.cursor()
listOfTables = cur.execute( """SELECT name FROM sqlite_master WHERE type='table' AND name='LEARNWARE'; """).fetchall()
if listOfTables == []:
LOGGER.info("Initializing Database in %s..." % (DB_PATH))
c = conn.cursor()
c.execute(
cur.execute(
"""CREATE TABLE LEARNWARE
(ID CHAR(10) PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
@@ -25,26 +26,30 @@ def init_empty_db(func):
STAT_SPEC_PATH TEXT NOT NULL);"""
)
LOGGER.info("Database Built!")
conn.commit()
conn.close()
func()
kwargs['cur'] = cur
kwargs['conn'] = conn
func(*args, **kwargs)
conn.commit()
conn.close()

return wrapper

@init_empty_db
def add_learnware_to_db():
def add_learnware_to_db(id:str, name:str, model_path:str, semantic_spec:dict):
pass

@init_empty_db
def delete_learnware_from_db(id:str):
pass
def delete_learnware_from_db(id:str, cur, conn):
cur.execute("DELETE from LEARNWARE where ID=%;")
conn.commit()
LOGGER.info("%d item has been deleted from table 'LEARNWARE'"%(conn.total_changes))

@init_empty_db
def load_market_from_db():
conn = sqlite3.connect(DB_PATH)
def load_market_from_db(cur, conn):
# conn = sqlite3.connect(DB_PATH)
LOGGER.info("Reload from Database")
c = conn.cursor()
cursor = c.execute("SELECT id, name, semantic_spec, model_path, stat_spec_path from LEARNWARE")
# c = conn.cursor()
cursor = cur.execute("SELECT id, name, semantic_spec, model_path, stat_spec_path from LEARNWARE")

learnware_list = {}
max_count = 0
@@ -62,7 +67,5 @@ def load_market_from_db():
new_learnware = Learnware(id=id, name=name, model=model_dict, specification=specification)
learnware_list[id] = new_learnware
max_count = max(max_count, int(id))
conn.commit()
conn.close()
LOGGER.info("Market Reloaded from DB.")
return learnware_list, max_count
return learnware_list, max_count+1

Loading…
Cancel
Save