Skip to content

Commit f98db5f

Browse files
Merge pull request #40 from Geode-solutions/feat/is_saveable
2 parents 68ca7f9 + 2971bae commit f98db5f

File tree

9 files changed

+3686
-74
lines changed

9 files changed

+3686
-74
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ dist
33
venv
44
output
55
__pycache__
6+
.vscode

requirements.txt

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,11 @@
22
# This file is autogenerated by pip-compile with Python 3.10
33
# by the following command:
44
#
5-
# pip-compile
5+
# pip-compile --pre --resolver=backtracking requirements.in
66
#
7-
asgiref==3.7.2
8-
# via flask
9-
attrs==23.1.0
10-
# via
11-
# jsonschema
12-
# referencing
13-
blinker==1.7.0
14-
# via flask
15-
click==8.1.7
16-
# via flask
17-
flask[async]==3.0.0
18-
# via -r requirements.in
19-
geode-common==29.0.1
7+
geode-common==30.0.0rc7
208
# via geode-viewables
21-
geode-viewables==2.1.3
9+
geode-viewables==2.1.4rc1
2210
# via -r requirements.in
2311
itsdangerous==2.1.2
2412
# via flask
@@ -41,19 +29,19 @@ opengeode-core==14.9.3
4129
# opengeode-geosciencesio
4230
# opengeode-inspector
4331
# opengeode-io
44-
opengeode-geosciences==7.2.1
32+
opengeode-geosciences==7.2.2rc4
4533
# via
4634
# -r requirements.in
4735
# geode-viewables
4836
# opengeode-geosciencesio
4937
# opengeode-inspector
50-
opengeode-geosciencesio==4.5.1
38+
opengeode-geosciencesio==4.5.2rc1
5139
# via
5240
# -r requirements.in
5341
# opengeode-inspector
54-
opengeode-inspector==4.0.0
42+
opengeode-inspector==4.0.1rc1
5543
# via -r requirements.in
56-
opengeode-io==6.2.1
44+
opengeode-io==6.2.2rc1
5745
# via
5846
# -r requirements.in
5947
# geode-viewables

src/opengeodeweb_back/geode_functions.py

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ def load(geode_object: str, file_absolute_path: str):
3838
return geode_object_value(geode_object)["load"](file_absolute_path)
3939

4040

41+
def is_saveable(geode_object: str, data, filename: str):
42+
return geode_object_value(geode_object)["is_saveable"](data, filename)
43+
44+
4145
def save(geode_object: str, data, folder_absolute_path: str, filename: str):
4246
return geode_object_value(geode_object)["save"](
4347
data, os.path.join(folder_absolute_path, filename)
@@ -146,20 +150,27 @@ def list_geode_objects(extension: str, key: str = None):
146150
return geode_objects_list
147151

148152

149-
def geode_objects_output_extensions(geode_object: str):
153+
def geode_objects_output_extensions(geode_object: str, data):
150154
return_list = []
151155
geode_object_dict = {}
152156
geode_object_dict["geode_object"] = geode_object
153-
geode_object_dict["output_extensions"] = geode_object_output_extensions(
154-
geode_object
155-
)
157+
158+
output = geode_object_output_extensions(geode_object)
159+
160+
extension_saveable_array = []
161+
for output_extension in output:
162+
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
156168

157169
return_list.append(geode_object_dict)
158170

159171
if "parent" in geode_object_value(geode_object).keys():
160172
parent_key = geode_object_value(geode_object)["parent"]
161-
return_list += geode_objects_output_extensions(parent_key)
162-
173+
return_list += geode_objects_output_extensions(parent_key, data)
163174
return return_list
164175

165176

@@ -175,22 +186,6 @@ def versions(list_packages: list):
175186
return list_with_versions
176187

177188

178-
def upload_file(file: str, file_name: str, upload_folder: str, file_size: int):
179-
if not os.path.exists(upload_folder):
180-
os.mkdir(upload_folder)
181-
file_decoded = base64.b64decode(file.split(",")[-1])
182-
secure_file_name = werkzeug.utils.secure_filename(file_name)
183-
file_path = os.path.join(upload_folder, secure_file_name)
184-
f = open(file_path, "wb")
185-
f.write(file_decoded)
186-
f.close()
187-
188-
final_size = os.path.getsize(file_path)
189-
uploaded_file = int(file_size) == int(final_size)
190-
if not uploaded_file:
191-
flask.abort(500, "File not uploaded")
192-
193-
194189
def create_lock_file(
195190
folder_absolute_path,
196191
):

src/opengeodeweb_back/geode_objects.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def geode_objects_dict():
1313
"output_factory": og.BRepOutputFactory,
1414
"missing_files": og.check_brep_missing_files,
1515
"load": og.load_brep,
16+
"is_saveable": og.is_brep_saveable,
1617
"save": og.save_brep,
1718
"builder": og.BRepBuilder,
1819
"crs": {
@@ -32,6 +33,7 @@ def geode_objects_dict():
3233
"output_factory": og_gs.CrossSectionOutputFactory,
3334
"missing_files": og_gs.check_cross_section_missing_files,
3435
"load": og_gs.load_cross_section,
36+
"is_saveable": og_gs.is_cross_section_saveable,
3537
"save": og_gs.save_cross_section,
3638
"builder": og_gs.CrossSectionBuilder,
3739
"crs": {
@@ -50,6 +52,7 @@ def geode_objects_dict():
5052
"output_factory": og.EdgedCurveOutputFactory2D,
5153
"missing_files": og.check_edged_curve_missing_files2D,
5254
"load": og.load_edged_curve2D,
55+
"is_saveable": og.is_edged_curve_saveable2D,
5356
"save": og.save_edged_curve2D,
5457
"builder": og.EdgedCurveBuilder2D.create,
5558
"crs": {
@@ -68,6 +71,7 @@ def geode_objects_dict():
6871
"output_factory": og.EdgedCurveOutputFactory3D,
6972
"missing_files": og.check_edged_curve_missing_files3D,
7073
"load": og.load_edged_curve3D,
74+
"is_saveable": og.is_edged_curve_saveable3D,
7175
"save": og.save_edged_curve3D,
7276
"builder": og.EdgedCurveBuilder3D.create,
7377
"crs": {
@@ -86,6 +90,7 @@ def geode_objects_dict():
8690
"output_factory": og.GraphOutputFactory,
8791
"missing_files": og.check_graph_missing_files,
8892
"load": og.load_graph,
93+
"is_saveable": og.is_graph_saveable,
8994
"save": og.save_graph,
9095
"builder": og.GraphBuilder.create,
9196
"is_model": False,
@@ -97,6 +102,7 @@ def geode_objects_dict():
97102
"output_factory": og.HybridSolidOutputFactory3D,
98103
"missing_files": og.check_hybrid_solid_missing_files3D,
99104
"load": og.load_hybrid_solid3D,
105+
"is_saveable": og.is_hybrid_solid_saveable3D,
100106
"save": og.save_hybrid_solid3D,
101107
"builder": og.HybridSolidBuilder3D.create,
102108
"crs": {
@@ -115,6 +121,7 @@ def geode_objects_dict():
115121
"output_factory": og.PointSetOutputFactory2D,
116122
"missing_files": og.check_point_set_missing_files2D,
117123
"load": og.load_point_set2D,
124+
"is_saveable": og.is_point_set_saveable2D,
118125
"save": og.save_point_set2D,
119126
"builder": og.PointSetBuilder2D.create,
120127
"crs": {
@@ -133,6 +140,7 @@ def geode_objects_dict():
133140
"output_factory": og.PointSetOutputFactory3D,
134141
"missing_files": og.check_point_set_missing_files3D,
135142
"load": og.load_point_set3D,
143+
"is_saveable": og.is_point_set_saveable3D,
136144
"save": og.save_point_set3D,
137145
"builder": og.PointSetBuilder3D.create,
138146
"crs": {
@@ -151,6 +159,7 @@ def geode_objects_dict():
151159
"output_factory": og.PolygonalSurfaceOutputFactory2D,
152160
"missing_files": og.check_polygonal_surface_missing_files2D,
153161
"load": og.load_polygonal_surface2D,
162+
"is_saveable": og.is_polygonal_surface_saveable2D,
154163
"save": og.save_polygonal_surface2D,
155164
"builder": og.PolygonalSurfaceBuilder2D.create,
156165
"crs": {
@@ -169,6 +178,7 @@ def geode_objects_dict():
169178
"output_factory": og.PolygonalSurfaceOutputFactory3D,
170179
"missing_files": og.check_polygonal_surface_missing_files3D,
171180
"load": og.load_polygonal_surface3D,
181+
"is_saveable": og.is_polygonal_surface_saveable3D,
172182
"save": og.save_polygonal_surface3D,
173183
"builder": og.PolygonalSurfaceBuilder3D.create,
174184
"crs": {
@@ -187,6 +197,7 @@ def geode_objects_dict():
187197
"output_factory": og.PolyhedralSolidOutputFactory3D,
188198
"missing_files": og.check_polyhedral_solid_missing_files3D,
189199
"load": og.load_polyhedral_solid3D,
200+
"is_saveable": og.is_polyhedral_solid_saveable3D,
190201
"save": og.save_polyhedral_solid3D,
191202
"builder": og.PolyhedralSolidBuilder3D.create,
192203
"crs": {
@@ -205,6 +216,7 @@ def geode_objects_dict():
205216
"output_factory": og.RasterImageOutputFactory2D,
206217
"missing_files": og.check_raster_image_missing_files2D,
207218
"load": og.load_raster_image2D,
219+
"is_saveable": og.is_raster_image_saveable2D,
208220
"save": og.save_raster_image2D,
209221
"is_model": False,
210222
"is_3D": False,
@@ -216,6 +228,7 @@ def geode_objects_dict():
216228
"output_factory": og.RasterImageOutputFactory3D,
217229
"missing_files": og.check_raster_image_missing_files3D,
218230
"load": og.load_raster_image3D,
231+
"is_saveable": og.is_raster_image_saveable3D,
219232
"save": og.save_raster_image3D,
220233
"is_model": False,
221234
"is_3D": False,
@@ -227,6 +240,7 @@ def geode_objects_dict():
227240
"output_factory": og.RegularGridOutputFactory2D,
228241
"missing_files": og.check_regular_grid_missing_files2D,
229242
"load": og.load_regular_grid2D,
243+
"is_saveable": og.is_regular_grid_saveable2D,
230244
"save": og.save_regular_grid2D,
231245
"builder": og.RegularGridBuilder2D.create,
232246
"crs": {
@@ -244,6 +258,7 @@ def geode_objects_dict():
244258
"output_factory": og.RegularGridOutputFactory3D,
245259
"missing_files": og.check_regular_grid_missing_files3D,
246260
"load": og.load_regular_grid3D,
261+
"is_saveable": og.is_regular_grid_saveable3D,
247262
"save": og.save_regular_grid3D,
248263
"builder": og.RegularGridBuilder3D.create,
249264
"crs": {
@@ -261,6 +276,7 @@ def geode_objects_dict():
261276
"output_factory": og.SectionOutputFactory,
262277
"missing_files": og.check_section_missing_files,
263278
"load": og.load_section,
279+
"is_saveable": og.is_section_saveable,
264280
"save": og.save_section,
265281
"builder": og.SectionBuilder,
266282
"crs": {
@@ -280,6 +296,7 @@ def geode_objects_dict():
280296
"output_factory": og_gs.StructuralModelOutputFactory,
281297
"missing_files": og_gs.check_structural_model_missing_files,
282298
"load": og_gs.load_structural_model,
299+
"is_saveable": og_gs.is_structural_model_saveable,
283300
"save": og_gs.save_structural_model,
284301
"builder": og_gs.StructuralModelBuilder,
285302
"crs": {
@@ -296,8 +313,9 @@ def geode_objects_dict():
296313
"TetrahedralSolid3D": {
297314
"input_factory": og.TetrahedralSolidInputFactory3D,
298315
"output_factory": og.TetrahedralSolidOutputFactory3D,
299-
"load": og.load_tetrahedral_solid3D,
300316
"missing_files": og.check_tetrahedral_solid_missing_files3D,
317+
"load": og.load_tetrahedral_solid3D,
318+
"is_saveable": og.is_tetrahedral_solid_saveable3D,
301319
"save": og.save_tetrahedral_solid3D,
302320
"builder": og.TetrahedralSolidBuilder3D.create,
303321
"crs": {
@@ -316,6 +334,7 @@ def geode_objects_dict():
316334
"output_factory": og.TriangulatedSurfaceOutputFactory2D,
317335
"missing_files": og.check_triangulated_surface_missing_files2D,
318336
"load": og.load_triangulated_surface2D,
337+
"is_saveable": og.is_triangulated_surface_saveable2D,
319338
"save": og.save_triangulated_surface2D,
320339
"builder": og.TriangulatedSurfaceBuilder2D.create,
321340
"crs": {
@@ -334,6 +353,7 @@ def geode_objects_dict():
334353
"output_factory": og.TriangulatedSurfaceOutputFactory3D,
335354
"missing_files": og.check_triangulated_surface_missing_files3D,
336355
"load": og.load_triangulated_surface3D,
356+
"is_saveable": og.is_triangulated_surface_saveable3D,
337357
"save": og.save_triangulated_surface3D,
338358
"builder": og.TriangulatedSurfaceBuilder3D.create,
339359
"crs": {
@@ -352,6 +372,7 @@ def geode_objects_dict():
352372
"output_factory": og.VertexSetOutputFactory,
353373
"missing_files": og.check_vertex_set_missing_files,
354374
"load": og.load_vertex_set,
375+
"is_saveable": og.is_vertex_set_saveable,
355376
"save": og.save_vertex_set,
356377
"builder": og.VertexSetBuilder.create,
357378
"is_model": False,

0 commit comments

Comments
 (0)