Fix implicitly converted datasets unused when mapping over

This commit is contained in:
mvdbeek
2019-11-05 10:20:15 +01:00
parent fb1c0f8de2
commit dc0f68ba68
4 changed files with 12 additions and 5 deletions
+2 -1
View File
@@ -188,7 +188,8 @@ class ToolEvaluator(object):
dataset_paths=input_dataset_paths,
datatypes_registry=self.app.datatypes_registry,
tool=self.tool,
name=input.name)
name=input.name,
formats=input.formats)
elif isinstance(input, DataToolParameter):
# FIXME: We're populating param_dict with conversions when
@@ -109,7 +109,7 @@ class DatasetMatcher(object):
self.filter_values = filter_values
def valid_hda_match(self, hda, check_implicit_conversions=True):
""" Return False of this parameter can not be matched to the supplied
""" Return False if this parameter can not be matched to the supplied
HDA, otherwise return a description of the match (either a
HdaDirectMatch describing a direct match or a HdaImplicitMatch
describing an implicit conversion.)
+4 -2
View File
@@ -76,12 +76,14 @@ class WrappedParameters(object):
dataset_instances,
datatypes_registry=trans.app.datatypes_registry,
tool=tool,
name=input.name)
name=input.name,
formats=input.formats)
elif isinstance(input, DataToolParameter):
wrapper_kwds = dict(
datatypes_registry=trans.app.datatypes_registry,
tool=tool,
name=input.name
name=input.name,
formats=input.formats
)
element_identifier = element_identifier_mapper.identifier(value, input_values)
if element_identifier:
+5 -1
View File
@@ -234,7 +234,7 @@ class DatasetFilenameWrapper(ToolParameterValueWrapper):
def items(self):
return iter((k, self.get(k)) for k, v in self.metadata.items())
def __init__(self, dataset, datatypes_registry=None, tool=None, name=None, dataset_path=None, identifier=None):
def __init__(self, dataset, datatypes_registry=None, tool=None, name=None, dataset_path=None, identifier=None, formats=None):
if not dataset:
try:
# TODO: allow this to work when working with grouping
@@ -246,6 +246,10 @@ class DatasetFilenameWrapper(ToolParameterValueWrapper):
# Tool wrappers should not normally be accessing .dataset directly,
# so we will wrap it and keep the original around for file paths
# Should we name this .value to maintain consistency with most other ToolParameterValueWrapper?
if formats:
target_ext, converted_dataset = dataset.find_conversion_destination(formats)
if target_ext and converted_dataset:
dataset = converted_dataset
self.unsanitized = dataset
self.dataset = wrap_with_safe_string(dataset, no_wrap_classes=ToolParameterValueWrapper)
self.metadata = self.MetadataWrapper(dataset.metadata)