comparison TrustStoreGalaxyBrowse.py @ 45:31838e0ecf45 default tip

Fixes.
author Wise, Catherine (Digital, Acton) <Catherine.Wise@csiro.au>
date Fri, 26 Jun 2015 10:24:40 +1000
parents 174df9815ecd
children
comparison
equal deleted inserted replaced
44:5589d367885e 45:31838e0ecf45
70 break 70 break
71 os.write(file_handle, chunk) 71 os.write(file_handle, chunk)
72 os.close(file_handle) 72 os.close(file_handle)
73 gzipped_file.close() 73 gzipped_file.close()
74 74
75 shutil.copy(uncompressed, outputFile) 75 try:
76 shutil.copy(uncompressed, outputFile)
77 except shutil.Error:
78 pass # If the file is already in the right location, move along.
76 try: 79 try:
77 os.remove(uncompressed) 80 os.remove(uncompressed)
78 os.remove(download) 81 os.remove(download)
79 except OSError: 82 except OSError:
80 pass 83 pass
81 else: 84 else:
82 shutil.copy(download, outputFile) 85 try:
86 shutil.copy(download, outputFile)
87 except shutil.Error:
88 pass # If the file is already in the right location, move along.
83 89
84 def construct_multi_filename(id, name, file_type): 90 def construct_multi_filename(id, name, file_type):
85 """ Implementation of *Number of Output datasets cannot be determined until 91 """ Implementation of *Number of Output datasets cannot be determined until
86 tool run* from documentation_. 92 tool run* from documentation_.
87 .. _documentation: http://wiki.galaxyproject.org/Admin/Tools/Multiple%20Output%20Files 93 .. _documentation: http://wiki.galaxyproject.org/Admin/Tools/Multiple%20Output%20Files
88 From https://github.com/mdshw5/galaxy-json-data-source/blob/master/json_data_source.py 94 From https://github.com/mdshw5/galaxy-json-data-source/blob/master/json_data_source.py
89 """ 95 """
90 filename = "%s_%s_%s_%s_%s" % ('primary', id, name, 'visible', file_type) 96 filename = "%s_%s_%s_%s_%s" % ('primary', id, name, 'visible', file_type)
91 return filename 97 return filename
92 98
93 def metadata_to_json(dataset_id, filename, name, extesion, ds_type='dataset', primary=False): 99 def metadata_to_json(dataset_id, filename, name, extension, ds_type='dataset', primary=False):
94 """ Return line separated JSON 100 """ Return line separated JSON
95 From https://github.com/mdshw5/galaxy-json-data-source/blob/master/json_data_source.py 101 From https://github.com/mdshw5/galaxy-json-data-source/blob/master/json_data_source.py
96 """ 102 """
103 ext = extension
104 if ext == 'fa':
105 ext = 'fasta'
97 meta_dict = dict(type=ds_type, 106 meta_dict = dict(type=ds_type,
98 ext=extesion, 107 ext=ext,
99 filename=filename, 108 filename=filename,
100 name=name, 109 name=name,
101 metadata={}) 110 metadata={})
102 if primary: 111 if primary:
103 meta_dict['base_dataset_id'] = dataset_id 112 meta_dict['base_dataset_id'] = dataset_id
188 filename = "".join(c in SAFE_CHARS and c or '-' for c in location.name) 197 filename = "".join(c in SAFE_CHARS and c or '-' for c in location.name)
189 extension = os.path.splitext(filename)[1].strip(".") 198 extension = os.path.splitext(filename)[1].strip(".")
190 name = construct_multi_filename(hda_id, filename, extension) 199 name = construct_multi_filename(hda_id, filename, extension)
191 target_output_filename = None 200 target_output_filename = None
192 data_type = "new_primary_dataset" 201 data_type = "new_primary_dataset"
193 # if first:
194 # target_output_filename = file_name
195 # dataset = "new_primary_dataset"
196 # first = False
197 # else:
198 target_output_filename = os.path.normpath(os.path.join(extra_files_path, name)) 202 target_output_filename = os.path.normpath(os.path.join(extra_files_path, name))
199 download = truststore.getFile(store, location) 203 download = truststore.getFile(store, location)
204 primary = not first
200 if download is None: 205 if download is None:
201 print("File %s not found." % location.name) 206 print("File %s not found." % location.name)
202 sys.exit(4) 207 sys.exit(4)
208 if first:
209 first = False
210 target_output_filename = file_name
211 data_type = "dataset"
203 ungzip(download, target_output_filename) 212 ungzip(download, target_output_filename)
213 metadata_file.write(
214 metadata_to_json(dataset_id, target_output_filename, name, extension, data_type, primary=primary))
204 # ext = sniff.handle_uploaded_dataset_file(target_output_filename, datatypes_registry, ext=ext) 215 # ext = sniff.handle_uploaded_dataset_file(target_output_filename, datatypes_registry, ext=ext)
205 # print("Guessed file type: " + ext) 216 # print("Guessed file type: " + ext)
206 print("in file: " + properties_file)
207 metadata_file.write(
208 metadata_to_json(dataset_id, target_output_filename, name, extension, data_type))
209 else: 217 else:
210 print("Store is damaged or we don't have sufficient access.") 218 print("Store is damaged or we don't have sufficient access.")
211 sys.exit(4) 219 sys.exit(4)
212 220
213 221