44import time
55import zipfile
66from collections .abc import Callable
7- from typing import Any
87from concurrent .futures import ThreadPoolExecutor
98
109# Third party imports
@@ -112,7 +111,7 @@ def validate_request(request: flask.Request, schema: dict[str, str]) -> None:
112111
113112
114113def set_interval (
115- function : Callable [[Any ], None ], seconds : float , args : Any
114+ function : Callable [[flask . Flask ], None ], seconds : float , args : flask . Flask
116115) -> threading .Timer :
117116 def function_wrapper () -> None :
118117 set_interval (function , seconds , args )
@@ -129,7 +128,7 @@ def extension_from_filename(filename: str) -> str:
129128
130129
131130def send_file (
132- upload_folder : str , saved_files : str , new_file_name : str
131+ upload_folder : str , saved_files : list [ str ] , new_file_name : str
133132) -> flask .Response :
134133 if len (saved_files ) == 1 :
135134 mimetype = "application/octet-binary"
@@ -177,20 +176,10 @@ def create_data_folder_from_id(data_id: str) -> str:
177176
178177def save_all_viewables_and_return_info (
179178 geode_object : str ,
180- data : Any ,
181- input_file : str | None = None ,
182- additional_files : list [str ] | None = None ,
183- ) -> dict [str , Any ]:
184- if additional_files is None :
185- additional_files = []
186-
187- data_entry = Data .create (
188- geode_object = geode_object ,
189- viewer_object = geode_functions .get_object_type (geode_object ),
190- input_file = input_file ,
191- additional_files = additional_files ,
192- )
193- data_path = create_data_folder_from_id (data_entry .id )
179+ data : object ,
180+ data_entry : Data ,
181+ data_path : str ,
182+ ) -> dict [str , str | list [str ]]:
194183 with ThreadPoolExecutor () as executor :
195184 native_future = executor .submit (
196185 geode_functions .save ,
@@ -231,23 +220,28 @@ def save_all_viewables_and_return_info(
231220
232221
233222def generate_native_viewable_and_light_viewable_from_object (
234- geode_object : str , data : Any
235- ) -> dict [str , Any ]:
236- return save_all_viewables_and_return_info (geode_object , data , input_file = "" )
223+ geode_object : str , data : object
224+ ) -> dict [str , str | list [str ]]:
225+ data_entry = Data .create (
226+ geode_object = geode_object ,
227+ input_file = "" ,
228+ additional_files = [],
229+ )
230+ data_path = create_data_folder_from_id (data_entry .id )
231+ return save_all_viewables_and_return_info (geode_object , data , data_entry , data_path )
237232
238233
239234def generate_native_viewable_and_light_viewable_from_file (
240235 geode_object : str , input_filename : str
241- ) -> dict [str , Any ]:
242-
243- temp_data_entry = Data .create (
236+ ) -> dict [str , str | list [str ]]:
237+ data_entry = Data .create (
244238 geode_object = geode_object ,
245239 viewer_object = geode_functions .get_object_type (geode_object ),
246240 input_file = input_filename ,
247241 additional_files = [],
248242 )
249243
250- data_path = create_data_folder_from_id (temp_data_entry .id )
244+ data_path = create_data_folder_from_id (data_entry .id )
251245
252246 full_input_filename = geode_functions .upload_file_path (input_filename )
253247 copied_full_path = os .path .join (
@@ -272,9 +266,10 @@ def generate_native_viewable_and_light_viewable_from_file(
272266
273267 data = geode_functions .load (geode_object , copied_full_path )
274268
269+ data_entry .additional_files = additional_files_copied
275270 return save_all_viewables_and_return_info (
276271 geode_object ,
277272 data ,
278- input_file = input_filename ,
279- additional_files = additional_files_copied ,
273+ data_entry ,
274+ data_path ,
280275 )
0 commit comments