diff --git a/learnware/market/database_ops.py b/learnware/market/database_ops.py index 0dc5b7f..e0c52ee 100644 --- a/learnware/market/database_ops.py +++ b/learnware/market/database_ops.py @@ -18,13 +18,14 @@ def init_empty_db(func): """SELECT name FROM sqlite_master WHERE type='table' AND name='LEARNWARE'; """ ).fetchall() if len(listOfTables) == 0: - logger.info("Initializing Database in %s..." % (os.path.join(C.database_path, "market.db"))) + logger.info("Initializing Database in %s..." % (os.path.join(C.database_path, f"market_{market_id}.db"))) cur.execute( """CREATE TABLE LEARNWARE (ID CHAR(10) PRIMARY KEY NOT NULL, SEMANTIC_SPEC TEXT NOT NULL, ZIP_PATH TEXT NOT NULL, - FOLDER_PATH TEXT NOT NULL);""" + FOLDER_PATH TEXT NOT NULL, + USE_FLAG TEXT NOT NULL);""" ) logger.info("Database Built!") kwargs["cur"] = cur @@ -49,12 +50,12 @@ def clear_learnware_table(cur): @init_empty_db -def add_learnware_to_db(id: str, semantic_spec: dict, zip_path: str, folder_path: str, cur): +def add_learnware_to_db(id: str, semantic_spec: dict, zip_path: str, folder_path: str, use_flag: str, cur): semantic_spec_str = json.dumps(semantic_spec) cur.execute( - "INSERT INTO LEARNWARE (ID,SEMANTIC_SPEC,ZIP_PATH,FOLDER_PATH) \ - VALUES ('%s', '%s', '%s', '%s' )" - % (id, semantic_spec_str, zip_path, folder_path) + "INSERT INTO LEARNWARE (ID,SEMANTIC_SPEC,ZIP_PATH,FOLDER_PATH,USE_FLAG) \ + VALUES ('%s', '%s', '%s', '%s', '%s')" + % (id, semantic_spec_str, zip_path, folder_path, use_flag) ) diff --git a/learnware/market/easy.py b/learnware/market/easy.py index b5b772c..f8fd307 100644 --- a/learnware/market/easy.py +++ b/learnware/market/easy.py @@ -19,9 +19,9 @@ logger = get_module_logger("market", "INFO") class EasyMarket(BaseMarket): - INVALID_LEARNWARE = -1 - NOPREDICTION_LEARNWARE = 0 - PREDICTION_LEARWARE = 1 + INVALID_LEARNWARE = "INVALID" + NONUSABLE_LEARNWARE = "NONUSABLE" + USABLE_LEARWARE = "USABLE" def __init__(self, market_id: str = "default", rebuild: bool = False): """Initialize Learnware Market. @@ -79,8 +79,7 @@ class EasyMarket(BaseMarket): learnware.instantiate_model() except Exception as e: logger.warning(f"The learnware [{learnware.id}] is instantiated failed! Due to {repr(e)}") - raise - return cls.INVALID_LEARNWARE + return cls.NONUSABLE_LEARNWARE try: spec_data = learnware.specification.stat_spec["RKMEStatSpecification"].get_z() @@ -92,9 +91,9 @@ class EasyMarket(BaseMarket): pred_spec = learnware.predict(spec_data) except Exception: logger.warning(f"The learnware [{learnware.id}] prediction is not avaliable") - return cls.NOPREDICTION_LEARNWARE + return cls.NONUSABLE_LEARNWARE - return cls.PREDICTION_LEARWARE + return cls.USABLE_LEARWARE def add_learnware(self, zip_path: str, semantic_spec: dict) -> Tuple[str, bool]: """Add a learnware into the market. @@ -188,6 +187,7 @@ class EasyMarket(BaseMarket): semantic_spec=semantic_spec, zip_path=target_zip_dir, folder_path=target_folder_dir, + use_flag=check_flag, ) return id, True else: