diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index 9364bd69da0..7b66c7989b1 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -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 diff --git a/lib/galaxy/tools/actions/upload.py b/lib/galaxy/tools/actions/upload.py index 6e2e16ba285..32628b13682 100644 --- a/lib/galaxy/tools/actions/upload.py +++ b/lib/galaxy/tools/actions/upload.py @@ -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 diff --git a/tools/data_source/biomart_filter.py b/tools/data_source/biomart_filter.py index aa71e594ef4..53aa4a10478 100644 --- a/tools/data_source/biomart_filter.py +++ b/tools/data_source/biomart_filter.py @@ -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 diff --git a/tools/data_source/gbrowse_filter_code.py b/tools/data_source/gbrowse_filter_code.py index 9f6b95506bd..b427aafe5ca 100644 --- a/tools/data_source/gbrowse_filter_code.py +++ b/tools/data_source/gbrowse_filter_code.py @@ -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()