mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 13:50:20 +08:00
Fix for sniffing datatypes, sniff order is now retrieved from app.datatypes_registry rather than the default sniff_order list in the Registry class.
This commit is contained in:
@@ -155,7 +155,7 @@ def is_column_based(fname, sep='\t', skip=0):
|
||||
return False
|
||||
return True
|
||||
|
||||
def guess_ext( fname ):
|
||||
def guess_ext( fname, sniff_order=None ):
|
||||
"""
|
||||
Returns an extension that can be used in the datatype factory to
|
||||
generate a data for the 'fname' file
|
||||
@@ -198,9 +198,11 @@ def guess_ext( fname ):
|
||||
>>> fname = get_test_fname('alignment.lav')
|
||||
>>> guess_ext(fname)
|
||||
'lav'
|
||||
"""
|
||||
datatypes_registry = registry.Registry()
|
||||
for datatype in datatypes_registry.sniff_order:
|
||||
"""
|
||||
if sniff_order is None:
|
||||
datatypes_registry = registry.Registry()
|
||||
sniff_order = datatypes_registry.sniff_order
|
||||
for datatype in sniff_order:
|
||||
"""
|
||||
Some classes may not have a sniff function, which is ok. In fact, the
|
||||
Tabular and Text classes are 2 examples of classes that should never have
|
||||
|
||||
@@ -150,7 +150,7 @@ class UploadToolAction( object ):
|
||||
else:
|
||||
self.line_count = sniff.convert_newlines( temp_name )
|
||||
if file_type == 'auto':
|
||||
ext = sniff.guess_ext( temp_name )
|
||||
ext = sniff.guess_ext( temp_name, sniff_order=trans.app.datatypes_registry.sniff_order )
|
||||
else:
|
||||
ext = file_type
|
||||
data_type = ext
|
||||
|
||||
@@ -11,7 +11,7 @@ def exec_before_job( app, inp_data, out_data, param_dict, tool=None):
|
||||
data_type = param_dict.get( 'type', 'txt' )
|
||||
name, data = out_data.items()[0]
|
||||
if data_type == 'txt':
|
||||
data_type = sniff.guess_ext(data.file_name)
|
||||
data_type = sniff.guess_ext( data.file_name, sniff_order=app.datatypes_registry.sniff_order )
|
||||
data = app.datatypes_registry.change_datatype(data, data_type)
|
||||
data.name = data_name
|
||||
out_data[name] = data
|
||||
|
||||
@@ -27,7 +27,7 @@ def exec_after_process( app, inp_data, out_data, param_dict, tool=None, stdout=N
|
||||
if data.state == data.states.OK:
|
||||
data.info = data.name
|
||||
if data.extension == 'txt':
|
||||
data_type = sniff.guess_ext( data.file_name )
|
||||
data_type = sniff.guess_ext( data.file_name, sniff_order=app.datatypes_registry.sniff_order )
|
||||
data = app.datatypes_registry.change_datatype( data, data_type )
|
||||
data.set_peek()
|
||||
data.set_size()
|
||||
|
||||
Reference in New Issue
Block a user