mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Raise exception if collection element has unknown extension
These might be typo's or the result of bugs as in https://github.com/galaxyproject/galaxy/issues/17938. Fixes: ``` Exception caught while attempting to execute tool with id 'toolshed.g2.bx.psu.edu/repos/iuc/mothur_make_contigs/mothur_make_contigs/1.39.5.1': AttributeError: 'NoneType' object has no attribute 'matches_any' File "galaxy/tools/__init__.py", line 1968, in handle_single_execution rval = self.execute( File "galaxy/tools/__init__.py", line 2065, in execute return self.tool_action.execute( File "galaxy/tools/actions/__init__.py", line 418, in execute ) = self._collect_inputs(tool, trans, incoming, history, current_user_roles, collection_info) File "galaxy/tools/actions/__init__.py", line 352, in _collect_inputs inp_data, all_permissions = self._collect_input_datasets( File "galaxy/tools/actions/__init__.py", line 292, in _collect_input_datasets tool.visit_inputs(param_values, visitor) File "galaxy/tools/__init__.py", line 1792, in visit_inputs visit_input_values(self.inputs, values, callback) File "galaxy/tools/parameters/__init__.py", line 211, in visit_input_values visit_input_values( File "galaxy/tools/parameters/__init__.py", line 227, in visit_input_values callback_helper( File "galaxy/tools/parameters/__init__.py", line 162, in callback_helper new_value = callback(**args) File "galaxy/tools/actions/__init__.py", line 259, in visitor if not datatype.matches_any(input.formats): ``` into something more useful for users.
This commit is contained in:
@@ -17,8 +17,12 @@ from typing import (
|
||||
from packaging.version import Version
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.exceptions import ItemAccessibilityException
|
||||
from galaxy.exceptions import (
|
||||
ItemAccessibilityException,
|
||||
RequestParameterInvalidException,
|
||||
)
|
||||
from galaxy.job_execution.actions.post import ActionBox
|
||||
from galaxy.managers.context import ProvidesHistoryContext
|
||||
from galaxy.model import (
|
||||
HistoryDatasetAssociation,
|
||||
Job,
|
||||
@@ -98,7 +102,7 @@ class DefaultToolAction(ToolAction):
|
||||
self,
|
||||
tool,
|
||||
param_values,
|
||||
trans,
|
||||
trans: ProvidesHistoryContext,
|
||||
history,
|
||||
current_user_roles=None,
|
||||
dataset_collection_elements=None,
|
||||
@@ -256,6 +260,10 @@ class DefaultToolAction(ToolAction):
|
||||
for ext in extensions:
|
||||
if ext:
|
||||
datatype = trans.app.datatypes_registry.get_datatype_by_extension(ext)
|
||||
if not datatype:
|
||||
raise RequestParameterInvalidException(
|
||||
f"Extension '{ext}' unknown, cannot use dataset collection as input"
|
||||
)
|
||||
if not datatype.matches_any(input.formats):
|
||||
conversion_required = True
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user