Skip to content

Commit bfc6ba5

Browse files
committed
is_loadable
1 parent fd33bc9 commit bfc6ba5

File tree

1 file changed

+33
-26
lines changed

1 file changed

+33
-26
lines changed

src/opengeodeweb_back/geode_functions.py

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# Standard library imports
2-
import base64
32
import os
43
import time
54
import threading
65
import uuid
6+
import zipfile
77

88
# Third party imports
99
import flask
1010
import opengeode_geosciences as og_gs
1111
import opengeode as og
1212
import pkg_resources
13-
import werkzeug
1413
from jsonschema import validate
1514
from jsonschema.exceptions import ValidationError
1615

@@ -34,6 +33,10 @@ def missing_files(geode_object: str, file_absolute_path: str):
3433
return geode_object_value(geode_object)["missing_files"](file_absolute_path)
3534

3635

36+
def is_loadable(geode_object: str, file_absolute_path: str):
37+
return geode_object_value(geode_object)["is_loadable"](file_absolute_path)
38+
39+
3740
def load(geode_object: str, file_absolute_path: str):
3841
return geode_object_value(geode_object)["load"](file_absolute_path)
3942

@@ -109,18 +112,26 @@ def geode_object_output_extensions(geode_object: str):
109112
return geode_object_output_list_creators
110113

111114

112-
def list_input_extensions(key: str = None):
113-
extensions_list = []
115+
def filter_geode_objects(key: str = None):
116+
geode_objects_filtered_list = []
114117
for geode_object, value in geode_objects_dict().items():
115-
if key != None:
118+
if key != None and key != "":
116119
if key in value:
117120
if type(value[key]) == bool:
118-
if value[key] == True:
119-
extensions_list += geode_object_input_extensions(geode_object)
121+
geode_objects_filtered_list.append(geode_object)
120122
else:
121-
extensions_list += geode_object_input_extensions(geode_object)
123+
geode_objects_filtered_list.append(geode_object)
122124
else:
123-
extensions_list += geode_object_input_extensions(geode_object)
125+
geode_objects_filtered_list.append(geode_object)
126+
geode_objects_filtered_list.sort()
127+
return geode_objects_filtered_list
128+
129+
130+
def list_input_extensions(key: str = None):
131+
extensions_list = []
132+
geode_objects_filtered_list = filter_geode_objects(key)
133+
for geode_object in geode_objects_filtered_list:
134+
extensions_list += geode_object_input_extensions(geode_object)
124135

125136
extensions_list = list(set(extensions_list))
126137
extensions_list.sort()
@@ -131,23 +142,19 @@ def has_creator(geode_object: str, extension: str):
131142
return input_factory(geode_object).has_creator(extension)
132143

133144

134-
def list_geode_objects(extension: str, key: str = None):
135-
geode_objects_list = []
136-
for geode_object, value in geode_objects_dict().items():
137-
if key != None:
138-
if key in value:
139-
if type(value[key]) == bool:
140-
if value[key] == True:
141-
if has_creator(geode_object, extension):
142-
geode_objects_list.append(geode_object)
143-
elif has_creator(geode_object, extension):
144-
geode_objects_list.append(geode_object)
145-
else:
146-
if has_creator(geode_object, extension):
147-
geode_objects_list.append(geode_object)
145+
def list_geode_objects(
146+
file_absolute_path: str,
147+
key: str = None,
148+
):
149+
return_dict = {}
150+
file_extension = extension_from_filename(os.path.basename(file_absolute_path))
151+
geode_objects_filtered_list = filter_geode_objects(key)
148152

149-
geode_objects_list.sort()
150-
return geode_objects_list
153+
for geode_object in geode_objects_filtered_list:
154+
if has_creator(geode_object, file_extension):
155+
file_is_loadable = is_loadable(geode_object, file_absolute_path)
156+
return_dict[geode_object] = {"is_loadable": file_is_loadable}
157+
return return_dict
151158

152159

153160
def geode_objects_output_extensions(geode_object: str, data):
@@ -303,7 +310,7 @@ def send_file(upload_folder, saved_files, new_file_name):
303310
mimetype = "application/octet-binary"
304311
else:
305312
mimetype = "application/zip"
306-
new_file_name = strict_file_name + ".zip"
313+
new_file_name = os.path.splitext(new_file_name)[0] + ".zip"
307314
with zipfile.ZipFile(os.path.join(upload_folder, new_file_name), "w") as zipObj:
308315
for saved_file_path in saved_files:
309316
zipObj.write(

0 commit comments

Comments
 (0)