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:
Greg Von Kuster
2008-05-28 21:20:15 +00:00
parent 57fe2ba4b0
commit 711af7a4f2
4 changed files with 9 additions and 7 deletions
+6 -4
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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()