From 2dadd2682da413fe48cdc276eeb72b28b94938e6 Mon Sep 17 00:00:00 2001 From: Henry Date: Tue, 20 Jun 2023 14:19:05 -0400 Subject: [PATCH] add better error message and type checks for pipeline parameters in mapping (#83) --- src/scripts/create-parameters.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/scripts/create-parameters.py b/src/scripts/create-parameters.py index 808cfe5..7f404a1 100644 --- a/src/scripts/create-parameters.py +++ b/src/scripts/create-parameters.py @@ -76,10 +76,22 @@ def write_parameters_from_mappings(mappings, changes, output_path, config_path): else: path, param, param_value, config_file = m + try: + decoded_param_value = json.loads(param_value) + except ValueError: + raise Exception("Cannot parse pipeline value {} from mapping".format(param_value)) + + # type check pipeline parameters - should be one of integer, string, or boolean + if not isinstance(decoded_param_value, (int, str, bool)): + raise Exception(""" + Pipeline parameters can only be integer, string or boolean type. + Found {} of type {} + """.format(decoded_param_value, type(decoded_param_value))) + regex = re.compile(r'^' + path + r'$') for change in changes: if regex.match(change): - filtered_mapping.append([param, json.loads(param_value)]) + filtered_mapping.append([param, decoded_param_value]) if config_file: filtered_files.add(config_file + "\n") break