Skip to content

Commit 0739348

Browse files
authored
Merge branch 'next' into actions/py
2 parents 8db649d + 58ccfeb commit 0739348

18 files changed

+113388
-4348
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
55

66
[project]
77
name = "OpenGeodeWeb-Back"
8-
version = "5.9.0-rc.1"
8+
version = "5.9.0-rc.2"
99
dynamic = ["dependencies"]
1010
authors = [
1111
{ name="Geode-solutions", email="[email protected]" },

requirements.txt

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1 @@
1-
#
2-
# This file is autogenerated by pip-compile with Python 3.12
3-
# by the following command:
4-
#
5-
# pip-compile --output-file=requirements.txt requirements.in
6-
#
7-
asgiref==3.9.1
8-
# via flask
9-
blinker==1.9.0
10-
# via flask
11-
click==8.2.1
12-
# via flask
13-
fastjsonschema==2.16.2
14-
# via -r requirements.in
15-
flask[async]==3.*,>=3.0.3
16-
# via
17-
# -r requirements.in
18-
# flask-cors
19-
flask-cors==6.0.1
20-
# via -r requirements.in
21-
geode-common==33.8.8
22-
# via geode-viewables
23-
geode-viewables==3.1.4
24-
# via -r requirements.in
25-
itsdangerous==2.2.0
26-
# via flask
27-
jinja2==3.1.6
28-
# via flask
29-
markupsafe==3.0.2
30-
# via
31-
# jinja2
32-
# werkzeug
33-
opengeode-core==15.21.2
34-
# via
35-
# -r requirements.in
36-
# geode-common
37-
# geode-viewables
38-
# opengeode-geosciences
39-
# opengeode-geosciencesio
40-
# opengeode-inspector
41-
# opengeode-io
42-
opengeode-geosciences==9.0.0
43-
# via
44-
# -r requirements.in
45-
# geode-viewables
46-
# opengeode-geosciencesio
47-
opengeode-geosciencesio==5.4.2
48-
# via -r requirements.in
49-
opengeode-inspector==6.6.1
50-
# via -r requirements.in
51-
opengeode-io==7.*,>=7.2.1
52-
# via
53-
# -r requirements.in
54-
# geode-viewables
55-
# opengeode-geosciencesio
56-
werkzeug==3.0.3
57-
# via
58-
# -r requirements.in
59-
# flask
60-
# flask-cors
1+

src/opengeodeweb_back/geode_functions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ def output_factory(geode_object: str):
2828
return geode_object_value(geode_object)["output_factory"]
2929

3030

31-
def missing_files(geode_object: str, file_absolute_path: str):
32-
return geode_object_value(geode_object)["missing_files"](file_absolute_path)
31+
def additional_files(geode_object: str, file_absolute_path: str):
32+
return geode_object_value(geode_object)["additional_files"](file_absolute_path)
3333

3434

3535
def is_loadable(geode_object: str, file_absolute_path: str):

src/opengeodeweb_back/geode_objects.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def geode_objects_dict():
2525
"class": og.BRep,
2626
"input_factory": og.BRepInputFactory,
2727
"output_factory": og.BRepOutputFactory,
28-
"missing_files": og.check_brep_missing_files,
28+
"additional_files": og.brep_additional_files,
2929
"is_loadable": og.is_brep_loadable,
3030
"load": og.load_brep,
3131
"is_saveable": og.is_brep_saveable,
@@ -48,7 +48,7 @@ def geode_objects_dict():
4848
"class": og_gs.CrossSection,
4949
"input_factory": og_gs.CrossSectionInputFactory,
5050
"output_factory": og_gs.CrossSectionOutputFactory,
51-
"missing_files": og_gs.check_cross_section_missing_files,
51+
"additional_files": og_gs.cross_section_additional_files,
5252
"is_loadable": og_gs.is_cross_section_loadable,
5353
"load": og_gs.load_cross_section,
5454
"is_saveable": og_gs.is_cross_section_saveable,
@@ -70,7 +70,7 @@ def geode_objects_dict():
7070
"class": og.EdgedCurve2D,
7171
"input_factory": og.EdgedCurveInputFactory2D,
7272
"output_factory": og.EdgedCurveOutputFactory2D,
73-
"missing_files": og.check_edged_curve_missing_files2D,
73+
"additional_files": og.edged_curve_additional_files2D,
7474
"is_loadable": og.is_edged_curve_loadable2D,
7575
"load": og.load_edged_curve2D,
7676
"is_saveable": og.is_edged_curve_saveable2D,
@@ -93,7 +93,7 @@ def geode_objects_dict():
9393
"class": og.EdgedCurve3D,
9494
"input_factory": og.EdgedCurveInputFactory3D,
9595
"output_factory": og.EdgedCurveOutputFactory3D,
96-
"missing_files": og.check_edged_curve_missing_files3D,
96+
"additional_files": og.edged_curve_additional_files3D,
9797
"is_loadable": og.is_edged_curve_loadable3D,
9898
"load": og.load_edged_curve3D,
9999
"is_saveable": og.is_edged_curve_saveable3D,
@@ -116,7 +116,7 @@ def geode_objects_dict():
116116
"class": og.Graph,
117117
"input_factory": og.GraphInputFactory,
118118
"output_factory": og.GraphOutputFactory,
119-
"missing_files": og.check_graph_missing_files,
119+
"additional_files": og.graph_additional_files,
120120
"is_loadable": og.is_graph_loadable,
121121
"load": og.load_graph,
122122
"is_saveable": og.is_graph_saveable,
@@ -130,7 +130,7 @@ def geode_objects_dict():
130130
"class": og.HybridSolid3D,
131131
"input_factory": og.HybridSolidInputFactory3D,
132132
"output_factory": og.HybridSolidOutputFactory3D,
133-
"missing_files": og.check_hybrid_solid_missing_files3D,
133+
"additional_files": og.hybrid_solid_additional_files3D,
134134
"is_loadable": og.is_hybrid_solid_loadable3D,
135135
"load": og.load_hybrid_solid3D,
136136
"is_saveable": og.is_hybrid_solid_saveable3D,
@@ -154,7 +154,7 @@ def geode_objects_dict():
154154
"class": og_gs.ImplicitCrossSection,
155155
"input_factory": og_gs.ImplicitCrossSectionInputFactory,
156156
"output_factory": og_gs.ImplicitCrossSectionOutputFactory,
157-
"missing_files": og_gs.check_implicit_cross_section_missing_files,
157+
"additional_files": og_gs.implicit_cross_section_additional_files,
158158
"is_loadable": og_gs.is_implicit_cross_section_loadable,
159159
"load": og_gs.load_implicit_cross_section,
160160
"is_saveable": og_gs.is_implicit_cross_section_saveable,
@@ -177,7 +177,7 @@ def geode_objects_dict():
177177
"class": og_gs.ImplicitStructuralModel,
178178
"input_factory": og_gs.ImplicitStructuralModelInputFactory,
179179
"output_factory": og_gs.ImplicitStructuralModelOutputFactory,
180-
"missing_files": og_gs.check_implicit_structural_model_missing_files,
180+
"additional_files": og_gs.implicit_structural_model_additional_files,
181181
"is_loadable": og_gs.is_implicit_structural_model_loadable,
182182
"load": og_gs.load_implicit_structural_model,
183183
"is_saveable": og_gs.is_implicit_structural_model_saveable,
@@ -199,7 +199,7 @@ def geode_objects_dict():
199199
"class": og.LightRegularGrid2D,
200200
"input_factory": og.LightRegularGridInputFactory2D,
201201
"output_factory": og.LightRegularGridOutputFactory2D,
202-
"missing_files": og.check_light_regular_grid_missing_files2D,
202+
"additional_files": og.light_regular_grid_additional_files2D,
203203
"is_loadable": og.is_light_regular_grid_loadable2D,
204204
"load": og.load_light_regular_grid2D,
205205
"is_saveable": og.is_light_regular_grid_saveable2D,
@@ -215,7 +215,7 @@ def geode_objects_dict():
215215
"class": og.LightRegularGrid3D,
216216
"input_factory": og.LightRegularGridInputFactory3D,
217217
"output_factory": og.LightRegularGridOutputFactory3D,
218-
"missing_files": og.check_light_regular_grid_missing_files3D,
218+
"additional_files": og.light_regular_grid_additional_files3D,
219219
"is_loadable": og.is_light_regular_grid_loadable3D,
220220
"load": og.load_light_regular_grid3D,
221221
"is_saveable": og.is_light_regular_grid_saveable3D,
@@ -231,7 +231,7 @@ def geode_objects_dict():
231231
"class": og.PointSet2D,
232232
"input_factory": og.PointSetInputFactory2D,
233233
"output_factory": og.PointSetOutputFactory2D,
234-
"missing_files": og.check_point_set_missing_files2D,
234+
"additional_files": og.point_set_additional_files2D,
235235
"is_loadable": og.is_point_set_loadable2D,
236236
"load": og.load_point_set2D,
237237
"is_saveable": og.is_point_set_saveable2D,
@@ -254,7 +254,7 @@ def geode_objects_dict():
254254
"class": og.PointSet3D,
255255
"input_factory": og.PointSetInputFactory3D,
256256
"output_factory": og.PointSetOutputFactory3D,
257-
"missing_files": og.check_point_set_missing_files3D,
257+
"additional_files": og.point_set_additional_files3D,
258258
"is_loadable": og.is_point_set_loadable3D,
259259
"load": og.load_point_set3D,
260260
"is_saveable": og.is_point_set_saveable3D,
@@ -277,7 +277,7 @@ def geode_objects_dict():
277277
"class": og.PolygonalSurface2D,
278278
"input_factory": og.PolygonalSurfaceInputFactory2D,
279279
"output_factory": og.PolygonalSurfaceOutputFactory2D,
280-
"missing_files": og.check_polygonal_surface_missing_files2D,
280+
"additional_files": og.polygonal_surface_additional_files2D,
281281
"is_loadable": og.is_polygonal_surface_loadable2D,
282282
"load": og.load_polygonal_surface2D,
283283
"is_saveable": og.is_polygonal_surface_saveable2D,
@@ -300,7 +300,7 @@ def geode_objects_dict():
300300
"class": og.PolygonalSurface3D,
301301
"input_factory": og.PolygonalSurfaceInputFactory3D,
302302
"output_factory": og.PolygonalSurfaceOutputFactory3D,
303-
"missing_files": og.check_polygonal_surface_missing_files3D,
303+
"additional_files": og.polygonal_surface_additional_files3D,
304304
"is_loadable": og.is_polygonal_surface_loadable3D,
305305
"load": og.load_polygonal_surface3D,
306306
"is_saveable": og.is_polygonal_surface_saveable3D,
@@ -323,7 +323,7 @@ def geode_objects_dict():
323323
"class": og.PolyhedralSolid3D,
324324
"input_factory": og.PolyhedralSolidInputFactory3D,
325325
"output_factory": og.PolyhedralSolidOutputFactory3D,
326-
"missing_files": og.check_polyhedral_solid_missing_files3D,
326+
"additional_files": og.polyhedral_solid_additional_files3D,
327327
"is_loadable": og.is_polyhedral_solid_loadable3D,
328328
"load": og.load_polyhedral_solid3D,
329329
"is_saveable": og.is_polyhedral_solid_saveable3D,
@@ -346,7 +346,7 @@ def geode_objects_dict():
346346
"class": og.RasterImage2D,
347347
"input_factory": og.RasterImageInputFactory2D,
348348
"output_factory": og.RasterImageOutputFactory2D,
349-
"missing_files": og.check_raster_image_missing_files2D,
349+
"additional_files": og.raster_image_additional_files2D,
350350
"is_loadable": og.is_raster_image_loadable2D,
351351
"load": og.load_raster_image2D,
352352
"is_saveable": og.is_raster_image_saveable2D,
@@ -360,7 +360,7 @@ def geode_objects_dict():
360360
"class": og.RasterImage3D,
361361
"input_factory": og.RasterImageInputFactory3D,
362362
"output_factory": og.RasterImageOutputFactory3D,
363-
"missing_files": og.check_raster_image_missing_files3D,
363+
"additional_files": og.raster_image_additional_files3D,
364364
"is_loadable": og.is_raster_image_loadable3D,
365365
"load": og.load_raster_image3D,
366366
"is_saveable": og.is_raster_image_saveable3D,
@@ -374,7 +374,7 @@ def geode_objects_dict():
374374
"class": og.RegularGrid2D,
375375
"input_factory": og.RegularGridInputFactory2D,
376376
"output_factory": og.RegularGridOutputFactory2D,
377-
"missing_files": og.check_regular_grid_missing_files2D,
377+
"additional_files": og.regular_grid_additional_files2D,
378378
"is_loadable": og.is_regular_grid_loadable2D,
379379
"load": og.load_regular_grid2D,
380380
"is_saveable": og.is_regular_grid_saveable2D,
@@ -396,7 +396,7 @@ def geode_objects_dict():
396396
"class": og.RegularGrid3D,
397397
"input_factory": og.RegularGridInputFactory3D,
398398
"output_factory": og.RegularGridOutputFactory3D,
399-
"missing_files": og.check_regular_grid_missing_files3D,
399+
"additional_files": og.regular_grid_additional_files3D,
400400
"is_loadable": og.is_regular_grid_loadable3D,
401401
"load": og.load_regular_grid3D,
402402
"is_saveable": og.is_regular_grid_saveable3D,
@@ -418,7 +418,7 @@ def geode_objects_dict():
418418
"class": og.Section,
419419
"input_factory": og.SectionInputFactory,
420420
"output_factory": og.SectionOutputFactory,
421-
"missing_files": og.check_section_missing_files,
421+
"additional_files": og.section_additional_files,
422422
"is_loadable": og.is_section_loadable,
423423
"load": og.load_section,
424424
"is_saveable": og.is_section_saveable,
@@ -441,7 +441,7 @@ def geode_objects_dict():
441441
"class": og_gs.StructuralModel,
442442
"input_factory": og_gs.StructuralModelInputFactory,
443443
"output_factory": og_gs.StructuralModelOutputFactory,
444-
"missing_files": og_gs.check_structural_model_missing_files,
444+
"additional_files": og_gs.structural_model_additional_files,
445445
"is_loadable": og_gs.is_structural_model_loadable,
446446
"load": og_gs.load_structural_model,
447447
"is_saveable": og_gs.is_structural_model_saveable,
@@ -463,7 +463,7 @@ def geode_objects_dict():
463463
"class": og.TetrahedralSolid3D,
464464
"input_factory": og.TetrahedralSolidInputFactory3D,
465465
"output_factory": og.TetrahedralSolidOutputFactory3D,
466-
"missing_files": og.check_tetrahedral_solid_missing_files3D,
466+
"additional_files": og.tetrahedral_solid_additional_files3D,
467467
"is_loadable": og.is_tetrahedral_solid_loadable3D,
468468
"load": og.load_tetrahedral_solid3D,
469469
"is_saveable": og.is_tetrahedral_solid_saveable3D,
@@ -486,7 +486,7 @@ def geode_objects_dict():
486486
"class": og.TriangulatedSurface2D,
487487
"input_factory": og.TriangulatedSurfaceInputFactory2D,
488488
"output_factory": og.TriangulatedSurfaceOutputFactory2D,
489-
"missing_files": og.check_triangulated_surface_missing_files2D,
489+
"additional_files": og.triangulated_surface_additional_files2D,
490490
"is_loadable": og.is_triangulated_surface_loadable2D,
491491
"load": og.load_triangulated_surface2D,
492492
"is_saveable": og.is_triangulated_surface_saveable2D,
@@ -509,7 +509,7 @@ def geode_objects_dict():
509509
"class": og.TriangulatedSurface3D,
510510
"input_factory": og.TriangulatedSurfaceInputFactory3D,
511511
"output_factory": og.TriangulatedSurfaceOutputFactory3D,
512-
"missing_files": og.check_triangulated_surface_missing_files3D,
512+
"additional_files": og.triangulated_surface_additional_files3D,
513513
"is_loadable": og.is_triangulated_surface_loadable3D,
514514
"load": og.load_triangulated_surface3D,
515515
"is_saveable": og.is_triangulated_surface_saveable3D,
@@ -532,7 +532,7 @@ def geode_objects_dict():
532532
"class": og.VertexSet,
533533
"input_factory": og.VertexSetInputFactory,
534534
"output_factory": og.VertexSetOutputFactory,
535-
"missing_files": og.check_vertex_set_missing_files,
535+
"additional_files": og.vertex_set_additional_files,
536536
"is_loadable": og.is_vertex_set_loadable,
537537
"load": og.load_vertex_set,
538538
"is_saveable": og.is_vertex_set_saveable,

src/opengeodeweb_back/routes/blueprint_routes.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -121,19 +121,27 @@ def allowed_objects():
121121
def missing_files():
122122
utils_functions.validate_request(flask.request, missing_files_json)
123123
file_path = geode_functions.upload_file_path(flask.request.json["filename"])
124-
missing_files = geode_functions.missing_files(
124+
125+
additional_files = geode_functions.additional_files(
125126
flask.request.json["input_geode_object"],
126127
file_path,
127128
)
128-
has_missing_files = missing_files.has_missing_files()
129129

130-
mandatory_files = []
131-
for mandatory_file in missing_files.mandatory_files:
132-
mandatory_files.append(os.path.basename(mandatory_file))
130+
has_missing_files = any(
131+
file.is_missing
132+
for file in additional_files.mandatory_files + additional_files.optional_files
133+
)
133134

134-
additional_files = []
135-
for additional_file in missing_files.additional_files:
136-
additional_files.append(os.path.basename(additional_file))
135+
mandatory_files = [
136+
os.path.basename(file.filename)
137+
for file in additional_files.mandatory_files
138+
if file.is_missing
139+
]
140+
additional_files = [
141+
os.path.basename(file.filename)
142+
for file in additional_files.optional_files
143+
if file.is_missing
144+
]
137145

138146
return flask.make_response(
139147
{
@@ -239,12 +247,10 @@ def geode_objects_and_output_extensions():
239247
)
240248
def save_viewable_file():
241249
utils_functions.validate_request(flask.request, save_viewable_file_json)
242-
243-
file_path = geode_functions.upload_file_path(flask.request.json["filename"])
244-
data = geode_functions.load(flask.request.json["input_geode_object"], file_path)
245250
return flask.make_response(
246-
utils_functions.generate_native_viewable_and_light_viewable(
247-
flask.request.json["input_geode_object"], data
251+
utils_functions.generate_native_viewable_and_light_viewable_from_file(
252+
geode_object=flask.request.json["input_geode_object"],
253+
input_filename=flask.request.json["filename"],
248254
),
249255
200,
250256
)
@@ -267,7 +273,7 @@ def create_point():
267273
builder.create_point(opengeode.Point3D([x, y, z]))
268274
builder.set_name(title)
269275
return flask.make_response(
270-
utils_functions.generate_native_viewable_and_light_viewable(
276+
utils_functions.generate_native_viewable_and_light_viewable_from_object(
271277
"PointSet3D", PointSet3D
272278
),
273279
200,

0 commit comments

Comments
 (0)