Skip to content

Commit 64248b8

Browse files
authored
Merge pull request #197 from Geode-solutions/fix/data_folder
Fix/data folder
2 parents 991335a + a726d45 commit 64248b8

File tree

3 files changed

+38
-28
lines changed

3 files changed

+38
-28
lines changed

requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,3 @@ werkzeug==3.1.2
6060
# flask
6161
# flask-cors
6262

63-
opengeodeweb-microservice==1.*,>=1.0.4

src/opengeodeweb_back/utils_functions.py

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import time
55
import zipfile
66
from collections.abc import Callable
7-
from typing import Any
87
from 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

114113
def 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

131130
def 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

178177
def 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

232222
def 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

238234
def 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
)

tests/test_utils_functions.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,15 @@ def test_save_all_viewables_and_return_info(client):
103103
input_file = "test.og_brep"
104104
additional_files = ["additional_file.txt"]
105105

106+
data_entry = Data.create(
107+
geode_object=geode_object,
108+
input_file=input_file,
109+
additional_files=additional_files,
110+
)
111+
data_path = utils_functions.create_data_folder_from_id(data_entry.id)
112+
106113
result = utils_functions.save_all_viewables_and_return_info(
107-
geode_object, data, input_file, additional_files
114+
geode_object, data, data_entry, data_path
108115
)
109116

110117
assert isinstance(result, dict)
@@ -136,8 +143,16 @@ def test_save_all_viewables_commits_to_db(client):
136143
geode_object = "BRep"
137144
data = geode_functions.load(geode_object, "./tests/data/test.og_brep")
138145
input_file = "test.og_brep"
146+
147+
data_entry = Data.create(
148+
geode_object=geode_object,
149+
input_file=input_file,
150+
additional_files=[],
151+
)
152+
data_path = utils_functions.create_data_folder_from_id(data_entry.id)
153+
139154
result = utils_functions.save_all_viewables_and_return_info(
140-
geode_object, data, input_file
155+
geode_object, data, data_entry, data_path
141156
)
142157
data_id = result["id"]
143158
db_entry_before = Data.get(data_id)

0 commit comments

Comments
 (0)