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,19 +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- input_file = input_file ,
190- additional_files = additional_files ,
191- )
192- 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 ]]:
193183 with ThreadPoolExecutor () as executor :
194184 native_future = executor .submit (
195185 geode_functions .save ,
@@ -230,22 +220,27 @@ def save_all_viewables_and_return_info(
230220
231221
232222def generate_native_viewable_and_light_viewable_from_object (
233- geode_object : str , data : Any
234- ) -> dict [str , Any ]:
235- 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 )
236232
237233
238234def generate_native_viewable_and_light_viewable_from_file (
239235 geode_object : str , input_filename : str
240- ) -> dict [str , Any ]:
241-
242- temp_data_entry = Data .create (
236+ ) -> dict [str , str | list [str ]]:
237+ data_entry = Data .create (
243238 geode_object = geode_object ,
244239 input_file = input_filename ,
245240 additional_files = [],
246241 )
247242
248- data_path = create_data_folder_from_id (temp_data_entry .id )
243+ data_path = create_data_folder_from_id (data_entry .id )
249244
250245 full_input_filename = geode_functions .upload_file_path (input_filename )
251246 copied_full_path = os .path .join (
@@ -270,9 +265,10 @@ def generate_native_viewable_and_light_viewable_from_file(
270265
271266 data = geode_functions .load (geode_object , copied_full_path )
272267
268+ data_entry .additional_files = additional_files_copied
273269 return save_all_viewables_and_return_info (
274270 geode_object ,
275271 data ,
276- input_file = input_filename ,
277- additional_files = additional_files_copied ,
272+ data_entry ,
273+ data_path ,
278274 )
0 commit comments