Mercurial > repos > fabio > gdcwebapp
comparison json_data_source_mod.py @ 16:3eabece82abb draft
Uploaded 20170601
| author | fabio | 
|---|---|
| date | Thu, 01 Jun 2017 13:07:22 -0400 | 
| parents | babc444d4bd0 | 
| children | 2c58e3cc1b30 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 15:78bd202e8687 | 16:3eabece82abb | 
|---|---|
| 103 else: | 103 else: | 
| 104 meta_dict[ 'dataset_id' ] = dataset_id | 104 meta_dict[ 'dataset_id' ] = dataset_id | 
| 105 return "%s\n" % json.dumps( meta_dict ) | 105 return "%s\n" % json.dumps( meta_dict ) | 
| 106 | 106 | 
| 107 | 107 | 
| 108 def walk_on_archive(target_output_filename, check_ext, archive_name, appdata_path): | 108 def walk_on_archive(target_output_filename, check_ext, archive_name, appdata_path, db_key="?"): | 
| 109 archive_name = archive_name.replace("_", "-").replace(".", "-") | 109 archive_name = archive_name.replace("_", "-").replace(".", "-") | 
| 110 with tarfile.open( target_output_filename, check_ext ) as tf: | 110 with tarfile.open( target_output_filename, check_ext ) as tf: | 
| 111 for entry in tf: | 111 for entry in tf: | 
| 112 if entry.isfile(): | 112 if entry.isfile(): | 
| 113 fileobj = tf.extractfile( entry ) | 113 fileobj = tf.extractfile( entry ) | 
| 114 # reserve the underscore for the collection searator | 114 # reserve the underscore for the collection searator | 
| 115 filename = os.path.basename( entry.name ).replace("_", "-") | 115 filename = os.path.basename( entry.name ).replace("_", "-") | 
| 116 extension = splitext( filename )[1] | 116 extension = splitext( filename )[1] | 
| 117 # pattern: (?P<identifier_0>[^_]+)_(?P<identifier_1>[^_]+) | 117 # pattern: (?P<identifier_0>[^_]+)_(?P<identifier_1>[^_]+)_(?P<ext>[^_]+)_(?P<dbkey>[^_]+) | 
| 118 if (len(extension) > 0): | 118 if (len(extension) > 0): | 
| 119 filename = (filename[0:len(filename)-(len(extension)+1)]).replace(".", "-") + "." + extension | 119 filename = (filename[0:len(filename)-(len(extension)+1)]).replace(".", "-") + "_" + extension | 
| 120 else: | 120 else: | 
| 121 extension = "auto" | 121 extension = "auto" | 
| 122 filename_with_collection_prefix = archive_name + "_" + filename | 122 filename_with_collection_prefix = archive_name + "_" + filename + "_" + db_key | 
| 123 target_entry_output_filename = os.path.join(appdata_path, filename_with_collection_prefix) | 123 target_entry_output_filename = os.path.join(appdata_path, filename_with_collection_prefix) | 
| 124 store_file_from_archive( fileobj, target_entry_output_filename ) | 124 store_file_from_archive( fileobj, target_entry_output_filename ) | 
| 125 return True | 125 return True | 
| 126 | 126 | 
| 127 | 127 | 
| 173 extra_files_path = ''.join( [ target_output_filename, 'files' ] ) | 173 extra_files_path = ''.join( [ target_output_filename, 'files' ] ) | 
| 174 download_extra_data( extra_data, extra_files_path ) | 174 download_extra_data( extra_data, extra_files_path ) | 
| 175 | 175 | 
| 176 """ the following code handles archives and decompress them in a collection """ | 176 """ the following code handles archives and decompress them in a collection """ | 
| 177 if ( isArchive ): | 177 if ( isArchive ): | 
| 178 walk_on_archive(target_output_path, check_ext, filename, appdata_path) | 178 db_key = "?" | 
| 179 archive_metadata = query_item.get( 'metadata', None ) | |
| 180 if archive_metadata is not None: | |
| 181 try: | |
| 182 db_key = archive_metadata.get( 'db_key' ) | |
| 183 except: | |
| 184 pass | |
| 185 walk_on_archive(target_output_path, check_ext, filename, appdata_path, db_key) | |
| 179 | 186 | 
| 180 return True | 187 return True | 
| 181 | 188 | 
| 182 | 189 | 
| 183 def set_up_config_values(json_params): | 190 def set_up_config_values(json_params): | 
