From 521d6346ab78f3369a35a0b304647acf91a78bfa Mon Sep 17 00:00:00 2001 From: Francis Charette Migneault Date: Thu, 3 Oct 2024 14:55:37 -0400 Subject: [PATCH] fix lookup strategy of value/ref without using hardcoded key names --- weaver/wps_restapi/jobs/utils.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/weaver/wps_restapi/jobs/utils.py b/weaver/wps_restapi/jobs/utils.py index cbaa4f8ba..af1129753 100644 --- a/weaver/wps_restapi/jobs/utils.py +++ b/weaver/wps_restapi/jobs/utils.py @@ -725,15 +725,17 @@ def generate_or_resolve_result( If only returned by reference, ``None`` data is returned. An empty-data contents would be an empty string. Therefore, the explicit check of ``None`` is important to identify a by-reference result. """ - key = get_any_value(result, key=True) + key_val = get_any_value(result, key=True, file=False, data=True) + key_ref = get_any_value(result, key=True, file=True, data=False) + key = key_val or key_ref + is_val = bool(key_val) + is_ref = bool(key_ref) val = get_any_value(result) cid = f"{result_id}@{job.id}" url = None loc = None res_data = None c_length = None - is_val = key in ["value", "data"] - is_ref = key in ["href", "reference"] # NOTE: # work with local files (since we have them), to avoid unnecessary loopback request