diff --git a/learnware/client/learnware_client.py b/learnware/client/learnware_client.py index 2895e5c..7a5eaed 100644 --- a/learnware/client/learnware_client.py +++ b/learnware/client/learnware_client.py @@ -216,7 +216,18 @@ class LearnwareClient: else: 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: if stat_spec is not None: stat_spec.save(ftemp.name) @@ -245,26 +256,16 @@ class LearnwareClient: raise Exception("search failed: " + json.dumps(result)) 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: - 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 @require_login @@ -416,7 +417,7 @@ class LearnwareClient: @staticmethod def _check_semantic_specification(semantic_spec): from ..market import EasySemanticChecker - + check_status, message = EasySemanticChecker.check_semantic_spec(semantic_spec) return check_status != BaseChecker.INVALID_LEARNWARE, message