Skip to content

Commit

Permalink
Delay job scheduling when tools consume expression tool output datase…
Browse files Browse the repository at this point in the history
…ts to determine extension
  • Loading branch information
mvdbeek committed Dec 20, 2024
1 parent de79aa6 commit f7ce1a5
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions lib/galaxy/tools/actions/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
AuthenticationRequired,
ItemAccessibilityException,
RequestParameterInvalidException,
ToolInputsNotReadyException,
)
from galaxy.job_execution.actions.post import ActionBox
from galaxy.managers.context import ProvidesHistoryContext
Expand Down Expand Up @@ -1156,8 +1157,14 @@ def get_ext_or_implicit_ext(hda):
# objects, and their type is the target_ext, so this should be correct even if there
# are multiple ImplicitlyConvertedDatasetAssociation objects (meaning 2 datasets had been converted
# to produce a dataset with the required datatype)
return hda.implicitly_converted_parent_datasets[0].type
return hda.ext
ext = hda.implicitly_converted_parent_datasets[0].type
else:
ext = hda.ext
if ext == "expression.json" and hda.dataset.state not in model.Dataset.terminal_states:
raise ToolInputsNotReadyException(
"Tool uses expression tool output to determine extension, can only succeed once input is terminal."
)
return ext


def determine_output_format(
Expand Down Expand Up @@ -1192,6 +1199,8 @@ def determine_output_format(
try:
input_dataset = input_datasets[output.format_source]
ext = get_ext_or_implicit_ext(input_dataset)
except ToolInputsNotReadyException:
raise
except Exception:
pass
elif format_source is not None:
Expand Down

0 comments on commit f7ce1a5

Please sign in to comment.