[hg] galaxy 1562: Fix for implicit conversion checking on multip...

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[hg] galaxy 1562: Fix for implicit conversion checking on multip...

Nate Coraor (nate@bx.psu.edu)
details:   http://www.bx.psu.edu/hg/galaxy/rev/26ae03082033
changeset: 1562:26ae03082033
user:      Dan Blankenberg <[hidden email]>
date:      Mon Oct 20 12:44:33 2008 -0400
description:
Fix for implicit conversion checking on multiple paged tools. Conversion is never allowed on multi-paged tools.

1 file(s) affected in this change:

lib/galaxy/tools/parameters/basic.py

diffs (34 lines):

diff -r d3a267ac124b -r 26ae03082033 lib/galaxy/tools/parameters/basic.py
--- a/lib/galaxy/tools/parameters/basic.py Mon Oct 20 09:25:38 2008 -0400
+++ b/lib/galaxy/tools/parameters/basic.py Mon Oct 20 12:44:33 2008 -0400
@@ -1006,7 +1006,8 @@
     def __init__( self, tool, elem ):
         ToolParameter.__init__( self, tool, elem )
         # Add metadata validator
-        self.validators.append( validation.MetadataValidator() )
+        if not str_bool( elem.get( 'no_validation', False ) ):
+            self.validators.append( validation.MetadataValidator() )
         # Build tuple of classes for supported data formats
         formats = []
         self.extensions = elem.get( 'format', 'data' ).split( "," )
@@ -1107,7 +1108,7 @@
                 pass #no valid options
         def dataset_collector( datasets ):
             def is_convertable( dataset ):
-                target_ext, converted_dataset = dataset.find_conversion_destination( self.formats, converter_safe = True ) #need to assume converter_safe = True, since we don't know about other parameter values here
+                target_ext, converted_dataset = dataset.find_conversion_destination( self.formats, converter_safe = self.converter_safe( None, trans ) )
                 if target_ext is not None:
                     return True
                 return False
@@ -1180,8 +1181,10 @@
             return []
 
     def converter_safe( self, other_values, trans ):
-        if not hasattr( trans, 'workflow_building_mode' ) or trans.workflow_building_mode:
+        if self.tool.has_multiple_pages or not hasattr( trans, 'workflow_building_mode' ) or trans.workflow_building_mode:
             return False
+        if other_values is None:
+            return True # we don't know other values, so we can't check, assume ok
         converter_safe = [True]
         def visitor( prefix, input, value, parent = None ):
             if isinstance( input, SelectToolParameter ) and self.name in input.get_dependencies():