From b346c8234401e51cc601ccb610de7b9fcb8a4eac Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 22 May 2023 17:32:06 +0200 Subject: [PATCH] Inject None in optional parameters when buidling implicit converter params Fixes: ``` KeyError: 'chrom' File "galaxy/tools/__init__.py", line 1909, in handle_single_execution rval = self.execute( File "galaxy/tools/__init__.py", line 2005, in execute return self.tool_action.execute( File "galaxy/tools/actions/__init__.py", line 392, in execute ) = self._collect_inputs(tool, trans, incoming, history, current_user_roles, collection_info) File "galaxy/tools/actions/__init__.py", line 327, in _collect_inputs inp_data, all_permissions = self._collect_input_datasets( File "galaxy/tools/actions/__init__.py", line 268, in _collect_input_datasets tool.visit_inputs(param_values, visitor) File "galaxy/tools/__init__.py", line 1748, in visit_inputs visit_input_values(self.inputs, values, callback) File "galaxy/tools/parameters/__init__.py", line 224, in visit_input_values callback_helper( File "galaxy/tools/parameters/__init__.py", line 159, in callback_helper new_value = callback(**args) File "galaxy/tools/actions/__init__.py", line 191, in visitor input_datasets[prefix + input.name] = process_dataset(value) File "galaxy/tools/actions/__init__.py", line 126, in process_dataset data = data.get_converted_dataset(trans, target_ext, target_context=parent, history=history) File "galaxy/model/__init__.py", line 4211, in get_converted_dataset self.datatype.convert_dataset( File "galaxy/datatypes/data.py", line 795, in convert_dataset job, converted_datasets, *_ = converter.execute(trans, incoming=params, set_output_hid=visible, history=history) File "galaxy/tools/__init__.py", line 2005, in execute return self.tool_action.execute( File "galaxy/tools/actions/__init__.py", line 453, in execute params=wrapped_params.params, File "galaxy/tools/parameters/wrapped.py", line 43, in params self.wrap_values(self.tool.inputs, params, skip_missing_values=not self.tool.check_values) File "galaxy/tools/parameters/wrapped.py", line 58, in wrap_values value = input_values[input.name] ``` in https://sentry.galaxyproject.org/share/issue/4f2171798f214f7ba8b947eaaebe2776/ --- lib/galaxy/datatypes/data.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/galaxy/datatypes/data.py b/lib/galaxy/datatypes/data.py index f0ae6338602..0e93f8d76f7 100644 --- a/lib/galaxy/datatypes/data.py +++ b/lib/galaxy/datatypes/data.py @@ -133,6 +133,8 @@ def get_params_and_input_name( params[value.name] = deps[value.name] elif value.type == "data": input_name = key + elif value.optional: + params[value.name] = None # add potentially required/common internal tool parameters e.g. '__job_resource' if target_context: