| @@ -216,7 +216,18 @@ class LearnwareClient: | |||||
| else: | else: | ||||
| stat_spec = None | stat_spec = None | ||||
| returns = [] | |||||
| returns = { | |||||
| "single": { | |||||
| "learnware_ids": [], | |||||
| "semantic_specifications": [], | |||||
| "matching": [], | |||||
| }, | |||||
| "multiple": { | |||||
| "learnware_ids": [], | |||||
| "semantic_specifications": [], | |||||
| "matching": None, | |||||
| }, | |||||
| } | |||||
| with tempfile.NamedTemporaryFile(prefix="learnware_stat_", suffix=".json") as ftemp: | with tempfile.NamedTemporaryFile(prefix="learnware_stat_", suffix=".json") as ftemp: | ||||
| if stat_spec is not None: | if stat_spec is not None: | ||||
| stat_spec.save(ftemp.name) | stat_spec.save(ftemp.name) | ||||
| @@ -245,26 +256,16 @@ class LearnwareClient: | |||||
| raise Exception("search failed: " + json.dumps(result)) | raise Exception("search failed: " + json.dumps(result)) | ||||
| for learnware in result["data"]["learnware_list_single"]: | for learnware in result["data"]["learnware_list_single"]: | ||||
| returns.append( | |||||
| { | |||||
| "type": "single", | |||||
| "learnware_id": learnware["learnware_id"], | |||||
| "semantic_specification": learnware["semantic_specification"], | |||||
| "matching": learnware["matching"], | |||||
| } | |||||
| ) | |||||
| returns["single"]["learnware_ids"].append(learnware["learnware_id"]) | |||||
| returns["single"]["semantic_specifications"].append(learnware["semantic_specification"]) | |||||
| returns["single"]["matching"].append(learnware["matching"]) | |||||
| if len(result["data"]["learnware_list_multi"]) > 0: | if len(result["data"]["learnware_list_multi"]) > 0: | ||||
| multiple_learnware = { | |||||
| "type": "multiple", | |||||
| "learnware_ids": [], | |||||
| "semantic_specifications": [], | |||||
| "matching": result["data"]["learnware_list_multi"][0]["matching"], | |||||
| } | |||||
| for learnware in result["data"]["learnware_list_multi"]: | |||||
| multiple_learnware["learnware_ids"].append(learnware["learnware_id"]) | |||||
| multiple_learnware["semantic_specifications"].append(learnware["semantic_specification"]) | |||||
| returns.append(multiple_learnware) | |||||
| multi_learnware = result["data"]["learnware_list_multi"][0] | |||||
| returns["multiple"]["learnware_ids"].append(multi_learnware["learnware_id"]) | |||||
| returns["multiple"]["semantic_specifications"].append(multi_learnware["semantic_specification"]) | |||||
| returns["multiple"]["matching"] = learnware["matching"] | |||||
| return returns | return returns | ||||
| @require_login | @require_login | ||||
| @@ -416,7 +417,7 @@ class LearnwareClient: | |||||
| @staticmethod | @staticmethod | ||||
| def _check_semantic_specification(semantic_spec): | def _check_semantic_specification(semantic_spec): | ||||
| from ..market import EasySemanticChecker | from ..market import EasySemanticChecker | ||||
| check_status, message = EasySemanticChecker.check_semantic_spec(semantic_spec) | check_status, message = EasySemanticChecker.check_semantic_spec(semantic_spec) | ||||
| return check_status != BaseChecker.INVALID_LEARNWARE, message | return check_status != BaseChecker.INVALID_LEARNWARE, message | ||||