From d264631d9206ade5452e6c102359175c5ba092c4 Mon Sep 17 00:00:00 2001 From: Alex Wiens <alex.wiens@uni-paderborn.de> Date: Wed, 12 Mar 2025 18:38:33 +0100 Subject: [PATCH] Prule: Fix scalar output value check --- prule/__init__.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/prule/__init__.py b/prule/__init__.py index af345ad..32f6fd7 100644 --- a/prule/__init__.py +++ b/prule/__init__.py @@ -1157,7 +1157,17 @@ def rule_evaluate(rule: dict, rinput: dict, job_meta: dict, check_requirements: log.print(log.debug, locals[rule["output_scalar"]]) if isinstance(locals[rule["output_scalar"]], prule.builtin.Data): log.print(log.debug, locals[rule["output_scalar"]].array) - output["scalar"] = float(locals[rule["output_scalar"]].array) + scalar_tmp = locals[rule["output_scalar"]].array + if hasattr(scalar_tmp, 'magnitude') == True: + scalar_tmp = scalar_tmp.magnitude + if len(scalar_tmp) == 1: + scalar_tmp = float(scalar_tmp) + else: + error = True + error_msg = "Error on converting scalar output value {} for rule {}: multiple values: {} in variable of type {}".format(rule["output_scalar"], rule["name"], len(scalar_tmp), type(scalar_tmp)) + output["errors"].append(error_msg) + log.print(log.error, error_msg) + output["scalar"] = None else: try: scalar_value = float(locals[rule["output_scalar"]]) -- GitLab