mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 05:45:37 +08:00
Several Fixes for Uploading Composite datatypes. Revert changeset 3769:69e70e588a8e.
This commit is contained in:
@@ -102,8 +102,7 @@ def cleanup_unused_precreated_datasets( precreated_datasets ):
|
||||
for data in precreated_datasets:
|
||||
log.info( 'Cleaned up unclaimed precreated dataset (%s).' % ( data.id ) )
|
||||
data.state = data.states.ERROR
|
||||
data.info = 'Unused precreated dataset to be deleted.'
|
||||
data.deleted = True
|
||||
data.info = 'No file contents were available.'
|
||||
|
||||
def new_history_upload( trans, uploaded_dataset, state=None ):
|
||||
hda = trans.app.model.HistoryDatasetAssociation( name = uploaded_dataset.name,
|
||||
|
||||
@@ -99,6 +99,17 @@ class UploadDataset( Group ):
|
||||
self.default_file_type = 'txt'
|
||||
self.file_type_to_ext = { 'auto':self.default_file_type }
|
||||
self.metadata_ref = 'files_metadata'
|
||||
def get_composite_dataset_name( self, context ):
|
||||
#FIXME: HACK
|
||||
#Special case of using 'base_name' metadata for use as Dataset name needs to be done in a General Fashion, as defined within a particular Datatype.
|
||||
|
||||
#We get two different types of contexts here, one straight from submitted parameters, the other after being parsed into tool inputs
|
||||
dataset_name = context.get('files_metadata|base_name', None )
|
||||
if dataset_name is None:
|
||||
dataset_name = context.get('files_metadata', {} ).get( 'base_name', None )
|
||||
if dataset_name is None:
|
||||
dataset_name = 'Uploaded Composite Dataset (%s)' % self.get_file_type( context )
|
||||
return dataset_name
|
||||
def get_file_base_name( self, context ):
|
||||
fd = context.get('files_metadata|base_name','Galaxy_Composite_file')
|
||||
return fd
|
||||
@@ -241,6 +252,7 @@ class UploadDataset( Group ):
|
||||
for file_bunch in get_url_paste_urls_or_filename( context, override_name = name, override_info = info ):
|
||||
if file_bunch.path:
|
||||
break
|
||||
file_bunch.space_to_tab = space_to_tab
|
||||
return file_bunch, warnings
|
||||
def get_filenames( context ):
|
||||
rval = []
|
||||
@@ -287,24 +299,18 @@ class UploadDataset( Group ):
|
||||
if meta_spec.set_in_upload:
|
||||
if meta_name in files_metadata:
|
||||
dataset.metadata[ meta_name ] = files_metadata[ meta_name ]
|
||||
dataset_name = None
|
||||
dataset_info = None
|
||||
dataset.precreated_name = dataset.name = self.get_composite_dataset_name( context )
|
||||
if dataset.datatype.composite_type == 'auto_primary_file':
|
||||
#replace sniff here with just creating an empty file
|
||||
temp_name, is_multi_byte = sniff.stream_to_file( StringIO.StringIO( d_type.generate_primary_file( dataset ) ), prefix='upload_auto_primary_file' )
|
||||
dataset.primary_file = temp_name
|
||||
dataset.space_to_tab = False
|
||||
dsn = dataset.metadata.get('base_name','Uploaded Composite Dataset (%s)' % file_type)
|
||||
dataset.precreated_name = dataset.name = dsn
|
||||
else:
|
||||
file_bunch, warnings = get_one_filename( groups_incoming[ 0 ] )
|
||||
writable_files_offset = 1
|
||||
dataset.primary_file = file_bunch.path
|
||||
dataset.space_to_tab = file_bunch.space_to_tab
|
||||
dsn = dataset.metadata.get('base_name',file_bunch.precreated_name)
|
||||
dataset.precreated_name = dsn
|
||||
dataset.name = dsn
|
||||
dataset.warnings.extend( file_bunch.warnings )
|
||||
dataset.warnings.extend( warnings )
|
||||
if dataset.primary_file is None:#remove this before finish, this should create an empty dataset
|
||||
raise Exception( 'No primary dataset file was available for composite upload' )
|
||||
keys = [ value.name for value in writable_files.values() ]
|
||||
@@ -315,6 +321,7 @@ class UploadDataset( Group ):
|
||||
dataset.composite_files[ key ] = None
|
||||
else:
|
||||
file_bunch, warnings = get_one_filename( group_incoming )
|
||||
dataset.warnings.extend( warnings )
|
||||
if file_bunch.path:
|
||||
dataset.composite_files[ key ] = file_bunch.__dict__
|
||||
else:
|
||||
|
||||
@@ -203,7 +203,7 @@ class ToolRunner( BaseController ):
|
||||
d_type = dataset_upload_input.get_datatype( trans, kwd )
|
||||
|
||||
if d_type.composite_type is not None:
|
||||
datasets.append( create_dataset( 'Uploaded Composite Dataset (%s)' % dataset_upload_input.get_datatype_ext( trans, kwd ) ) )
|
||||
datasets.append( create_dataset( dataset_upload_input.get_composite_dataset_name( kwd ) ) )
|
||||
else:
|
||||
params = Bunch( ** tool_state.inputs[dataset_upload_input.name][0] )
|
||||
if params.file_data not in [ None, "" ]:
|
||||
|
||||
@@ -299,7 +299,7 @@ def add_composite_file( dataset, json_file, output_path, files_path ):
|
||||
break
|
||||
elif dataset.composite_file_paths[value.name] is not None:
|
||||
if not value.is_binary:
|
||||
if uploaded_dataset.composite_files[ value.name ].space_to_tab:
|
||||
if value.space_to_tab:
|
||||
sniff.convert_newlines_sep2tabs( dataset.composite_file_paths[ value.name ][ 'path' ] )
|
||||
else:
|
||||
sniff.convert_newlines( dataset.composite_file_paths[ value.name ][ 'path' ] )
|
||||
|
||||
Reference in New Issue
Block a user