@@ -151,27 +151,20 @@ def list_geode_objects(extension: str, key: str = None):
151151
152152
153153def geode_objects_output_extensions (geode_object : str , data ):
154- return_list = []
155- geode_object_dict = {}
156- geode_object_dict ["geode_object" ] = geode_object
157-
158- output = geode_object_output_extensions (geode_object )
159-
160- extension_saveable_array = []
161- for output_extension in output :
154+ geode_objects_output_extensions_dict = {}
155+ output_extensions = geode_object_output_extensions (geode_object )
156+ extensions_dict = {}
157+ for output_extension in output_extensions :
162158 bool_is_saveable = is_saveable (geode_object , data , f"test.{ output_extension } " )
163- extension_saveable_array .append (
164- {"extension" : output_extension , "is_saveable" : bool_is_saveable }
165- )
166-
167- geode_object_dict ["outputs" ] = extension_saveable_array
168-
169- return_list .append (geode_object_dict )
159+ extensions_dict [output_extension ] = {"is_saveable" : bool_is_saveable }
160+ geode_objects_output_extensions_dict [geode_object ] = extensions_dict
170161
171162 if "parent" in geode_object_value (geode_object ).keys ():
172- parent_key = geode_object_value (geode_object )["parent" ]
173- return_list += geode_objects_output_extensions (parent_key , data )
174- return return_list
163+ parent_geode_object = geode_object_value (geode_object )["parent" ]
164+ geode_objects_output_extensions_dict .update (
165+ geode_objects_output_extensions (parent_geode_object , data )
166+ )
167+ return geode_objects_output_extensions_dict
175168
176169
177170def versions (list_packages : list ):
@@ -303,3 +296,28 @@ def create_coordinate_system(
303296 create_crs (
304297 geode_object , data , name , input_coordiante_system , output_coordiante_system
305298 )
299+
300+
301+ def send_file (upload_folder , saved_files , new_file_name ):
302+ if len (saved_files ) == 1 :
303+ mimetype = "application/octet-binary"
304+ else :
305+ mimetype = "application/zip"
306+ new_file_name = strict_file_name + ".zip"
307+ with zipfile .ZipFile (os .path .join (upload_folder , new_file_name ), "w" ) as zipObj :
308+ for saved_file_path in saved_files :
309+ zipObj .write (
310+ saved_file_path ,
311+ os .path .basename (saved_file_path ),
312+ )
313+
314+ response = flask .send_from_directory (
315+ directory = upload_folder ,
316+ path = new_file_name ,
317+ as_attachment = True ,
318+ mimetype = mimetype ,
319+ )
320+ response .headers ["new-file-name" ] = new_file_name
321+ response .headers ["Access-Control-Expose-Headers" ] = "new-file-name"
322+
323+ return response
0 commit comments