OpenGeodeWeb-Back 5.9.0rc2__tar.gz → 5.10.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. {opengeodeweb_back-5.9.0rc2/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-5.10.0rc1}/PKG-INFO +8 -14
  2. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/pyproject.toml +1 -1
  3. opengeodeweb_back-5.10.0rc1/requirements.txt +61 -0
  4. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +8 -14
  5. opengeodeweb_back-5.10.0rc1/src/OpenGeodeWeb_Back.egg-info/requires.txt +17 -0
  6. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/geode_functions.py +9 -5
  7. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/geode_objects.py +25 -0
  8. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/utils_functions.py +14 -16
  9. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/tests/test_geode_functions.py +19 -6
  10. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/tests/test_routes.py +21 -15
  11. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/tests/test_utils_functions.py +0 -1
  12. opengeodeweb_back-5.9.0rc2/requirements.txt +0 -107
  13. opengeodeweb_back-5.9.0rc2/src/OpenGeodeWeb_Back.egg-info/requires.txt +0 -23
  14. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/LICENSE +0 -0
  15. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/README.md +0 -0
  16. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/setup.cfg +0 -0
  17. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
  18. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  19. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  20. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/__init__.py +0 -0
  21. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/app_config.py +0 -0
  22. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  23. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/models/blueprint_models.py +0 -0
  24. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/models/schemas/mesh_components.json +0 -0
  25. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/models/schemas/vtm_component_indices.json +0 -0
  26. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  27. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  28. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/create_point.json +0 -0
  29. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  30. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  31. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  32. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  33. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  34. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  35. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  36. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  37. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  38. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  39. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  40. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/src/opengeodeweb_back/test_utils.py +0 -0
  41. {opengeodeweb_back-5.9.0rc2 → opengeodeweb_back-5.10.0rc1}/tests/test_models_routes.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.9.0rc2
3
+ Version: 5.10.0rc1
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -14,26 +14,20 @@ License-File: LICENSE
14
14
  Requires-Dist: asgiref==3.9.1
15
15
  Requires-Dist: blinker==1.9.0
16
16
  Requires-Dist: click==8.2.1
17
- Requires-Dist: fastjsonschema==2.21.1
18
- Requires-Dist: flask[async]==3.1.1
17
+ Requires-Dist: fastjsonschema==2.16.2
18
+ Requires-Dist: flask[async]==3.0.3
19
19
  Requires-Dist: flask-cors==6.0.1
20
- Requires-Dist: geode-background==9.4.0
21
20
  Requires-Dist: geode-common==33.9.0
22
- Requires-Dist: geode-conversion==6.4.0
23
- Requires-Dist: geode-explicit==6.3.0
24
- Requires-Dist: geode-implicit==4.1.1
25
- Requires-Dist: geode-numerics==6.3.0
26
- Requires-Dist: geode-simplex==9.6.0
27
21
  Requires-Dist: geode-viewables==3.2.0
28
22
  Requires-Dist: itsdangerous==2.2.0
29
23
  Requires-Dist: jinja2==3.1.6
30
24
  Requires-Dist: markupsafe==3.0.2
31
- Requires-Dist: opengeode-core==15.24.1
32
- Requires-Dist: opengeode-geosciences==9.2.1
33
- Requires-Dist: opengeode-geosciencesio==5.7.1
25
+ Requires-Dist: opengeode-core==15.24.2
26
+ Requires-Dist: opengeode-geosciences==9.2.2
27
+ Requires-Dist: opengeode-geosciencesio==5.7.2
34
28
  Requires-Dist: opengeode-inspector==6.7.0
35
- Requires-Dist: opengeode-io==7.3.1
36
- Requires-Dist: werkzeug==3.1.3
29
+ Requires-Dist: opengeode-io==7.3.2
30
+ Requires-Dist: werkzeug==3.0.3
37
31
  Dynamic: license-file
38
32
 
39
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "OpenGeodeWeb-Back"
8
- version = "5.9.0-rc.2"
8
+ version = "5.10.0-rc.1"
9
9
  dynamic = ["dependencies"]
10
10
  authors = [
11
11
  { name="Geode-solutions", email="team-web@geode-solutions.com" },
@@ -0,0 +1,61 @@
1
+ #
2
+ # This file is autogenerated by pip-compile with Python 3.12
3
+ # by the following command:
4
+ #
5
+ # pip-compile --pre 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.0.3
16
+ # via
17
+ # -r requirements.in
18
+ # flask
19
+ # flask-cors
20
+ flask-cors==6.0.1
21
+ # via -r requirements.in
22
+ geode-common==33.9.0
23
+ # via geode-viewables
24
+ geode-viewables==3.2.0
25
+ # via -r requirements.in
26
+ itsdangerous==2.2.0
27
+ # via flask
28
+ jinja2==3.1.6
29
+ # via flask
30
+ markupsafe==3.0.2
31
+ # via
32
+ # jinja2
33
+ # werkzeug
34
+ opengeode-core==15.24.2
35
+ # via
36
+ # -r requirements.in
37
+ # geode-common
38
+ # geode-viewables
39
+ # opengeode-geosciences
40
+ # opengeode-geosciencesio
41
+ # opengeode-inspector
42
+ # opengeode-io
43
+ opengeode-geosciences==9.2.2
44
+ # via
45
+ # -r requirements.in
46
+ # geode-viewables
47
+ # opengeode-geosciencesio
48
+ opengeode-geosciencesio==5.7.2
49
+ # via -r requirements.in
50
+ opengeode-inspector==6.7.0
51
+ # via -r requirements.in
52
+ opengeode-io==7.3.2
53
+ # via
54
+ # -r requirements.in
55
+ # geode-viewables
56
+ # opengeode-geosciencesio
57
+ werkzeug==3.0.3
58
+ # via
59
+ # -r requirements.in
60
+ # flask
61
+ # flask-cors
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.9.0rc2
3
+ Version: 5.10.0rc1
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -14,26 +14,20 @@ License-File: LICENSE
14
14
  Requires-Dist: asgiref==3.9.1
15
15
  Requires-Dist: blinker==1.9.0
16
16
  Requires-Dist: click==8.2.1
17
- Requires-Dist: fastjsonschema==2.21.1
18
- Requires-Dist: flask[async]==3.1.1
17
+ Requires-Dist: fastjsonschema==2.16.2
18
+ Requires-Dist: flask[async]==3.0.3
19
19
  Requires-Dist: flask-cors==6.0.1
20
- Requires-Dist: geode-background==9.4.0
21
20
  Requires-Dist: geode-common==33.9.0
22
- Requires-Dist: geode-conversion==6.4.0
23
- Requires-Dist: geode-explicit==6.3.0
24
- Requires-Dist: geode-implicit==4.1.1
25
- Requires-Dist: geode-numerics==6.3.0
26
- Requires-Dist: geode-simplex==9.6.0
27
21
  Requires-Dist: geode-viewables==3.2.0
28
22
  Requires-Dist: itsdangerous==2.2.0
29
23
  Requires-Dist: jinja2==3.1.6
30
24
  Requires-Dist: markupsafe==3.0.2
31
- Requires-Dist: opengeode-core==15.24.1
32
- Requires-Dist: opengeode-geosciences==9.2.1
33
- Requires-Dist: opengeode-geosciencesio==5.7.1
25
+ Requires-Dist: opengeode-core==15.24.2
26
+ Requires-Dist: opengeode-geosciences==9.2.2
27
+ Requires-Dist: opengeode-geosciencesio==5.7.2
34
28
  Requires-Dist: opengeode-inspector==6.7.0
35
- Requires-Dist: opengeode-io==7.3.1
36
- Requires-Dist: werkzeug==3.1.3
29
+ Requires-Dist: opengeode-io==7.3.2
30
+ Requires-Dist: werkzeug==3.0.3
37
31
  Dynamic: license-file
38
32
 
39
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -0,0 +1,17 @@
1
+ asgiref==3.9.1
2
+ blinker==1.9.0
3
+ click==8.2.1
4
+ fastjsonschema==2.16.2
5
+ flask[async]==3.0.3
6
+ flask-cors==6.0.1
7
+ geode-common==33.9.0
8
+ geode-viewables==3.2.0
9
+ itsdangerous==2.2.0
10
+ jinja2==3.1.6
11
+ markupsafe==3.0.2
12
+ opengeode-core==15.24.2
13
+ opengeode-geosciences==9.2.2
14
+ opengeode-geosciencesio==5.7.2
15
+ opengeode-inspector==6.7.0
16
+ opengeode-io==7.3.2
17
+ werkzeug==3.0.3
@@ -32,8 +32,13 @@ def additional_files(geode_object: str, file_absolute_path: str):
32
32
  return geode_object_value(geode_object)["additional_files"](file_absolute_path)
33
33
 
34
34
 
35
- def is_loadable(geode_object: str, file_absolute_path: str):
36
- return geode_object_value(geode_object)["is_loadable"](file_absolute_path)
35
+ def is_loadable(geode_object: str, file_absolute_path: str) -> float:
36
+ percentage = geode_object_value(geode_object)["is_loadable"](file_absolute_path)
37
+ return percentage.value()
38
+
39
+
40
+ def object_priority(geode_object: str, file_absolute_path: str) -> int:
41
+ return geode_object_value(geode_object)["object_priority"](file_absolute_path)
37
42
 
38
43
 
39
44
  def load(geode_object: str, file_absolute_path: str):
@@ -180,11 +185,10 @@ def list_geode_objects(
180
185
  os.path.basename(file_absolute_path)
181
186
  )
182
187
  geode_objects_filtered_list = filter_geode_objects(key)
183
-
184
188
  for geode_object in geode_objects_filtered_list:
185
189
  if has_creator(geode_object, file_extension):
186
- file_is_loadable = is_loadable(geode_object, file_absolute_path)
187
- return_dict[geode_object] = {"is_loadable": file_is_loadable}
190
+ loadability_score = is_loadable(geode_object, file_absolute_path)
191
+ return_dict[geode_object] = {"is_loadable": loadability_score}
188
192
  return return_dict
189
193
 
190
194
 
@@ -27,6 +27,7 @@ def geode_objects_dict():
27
27
  "output_factory": og.BRepOutputFactory,
28
28
  "additional_files": og.brep_additional_files,
29
29
  "is_loadable": og.is_brep_loadable,
30
+ "object_priority": og.brep_object_priority,
30
31
  "load": og.load_brep,
31
32
  "is_saveable": og.is_brep_saveable,
32
33
  "save": og.save_brep,
@@ -50,6 +51,7 @@ def geode_objects_dict():
50
51
  "output_factory": og_gs.CrossSectionOutputFactory,
51
52
  "additional_files": og_gs.cross_section_additional_files,
52
53
  "is_loadable": og_gs.is_cross_section_loadable,
54
+ "object_priority": og_gs.cross_section_object_priority,
53
55
  "load": og_gs.load_cross_section,
54
56
  "is_saveable": og_gs.is_cross_section_saveable,
55
57
  "save": og_gs.save_cross_section,
@@ -72,6 +74,7 @@ def geode_objects_dict():
72
74
  "output_factory": og.EdgedCurveOutputFactory2D,
73
75
  "additional_files": og.edged_curve_additional_files2D,
74
76
  "is_loadable": og.is_edged_curve_loadable2D,
77
+ "object_priority": og.edged_curve_object_priority2D,
75
78
  "load": og.load_edged_curve2D,
76
79
  "is_saveable": og.is_edged_curve_saveable2D,
77
80
  "save": og.save_edged_curve2D,
@@ -95,6 +98,7 @@ def geode_objects_dict():
95
98
  "output_factory": og.EdgedCurveOutputFactory3D,
96
99
  "additional_files": og.edged_curve_additional_files3D,
97
100
  "is_loadable": og.is_edged_curve_loadable3D,
101
+ "object_priority": og.edged_curve_object_priority3D,
98
102
  "load": og.load_edged_curve3D,
99
103
  "is_saveable": og.is_edged_curve_saveable3D,
100
104
  "save": og.save_edged_curve3D,
@@ -118,6 +122,7 @@ def geode_objects_dict():
118
122
  "output_factory": og.GraphOutputFactory,
119
123
  "additional_files": og.graph_additional_files,
120
124
  "is_loadable": og.is_graph_loadable,
125
+ "object_priority": og.graph_object_priority,
121
126
  "load": og.load_graph,
122
127
  "is_saveable": og.is_graph_saveable,
123
128
  "save": og.save_graph,
@@ -132,6 +137,7 @@ def geode_objects_dict():
132
137
  "output_factory": og.HybridSolidOutputFactory3D,
133
138
  "additional_files": og.hybrid_solid_additional_files3D,
134
139
  "is_loadable": og.is_hybrid_solid_loadable3D,
140
+ "object_priority": og.hybrid_solid_object_priority3D,
135
141
  "load": og.load_hybrid_solid3D,
136
142
  "is_saveable": og.is_hybrid_solid_saveable3D,
137
143
  "save": og.save_hybrid_solid3D,
@@ -156,6 +162,7 @@ def geode_objects_dict():
156
162
  "output_factory": og_gs.ImplicitCrossSectionOutputFactory,
157
163
  "additional_files": og_gs.implicit_cross_section_additional_files,
158
164
  "is_loadable": og_gs.is_implicit_cross_section_loadable,
165
+ "object_priority": og_gs.implicit_cross_section_object_priority,
159
166
  "load": og_gs.load_implicit_cross_section,
160
167
  "is_saveable": og_gs.is_implicit_cross_section_saveable,
161
168
  "save": og_gs.save_implicit_cross_section,
@@ -179,6 +186,7 @@ def geode_objects_dict():
179
186
  "output_factory": og_gs.ImplicitStructuralModelOutputFactory,
180
187
  "additional_files": og_gs.implicit_structural_model_additional_files,
181
188
  "is_loadable": og_gs.is_implicit_structural_model_loadable,
189
+ "object_priority": og_gs.implicit_structural_model_object_priority,
182
190
  "load": og_gs.load_implicit_structural_model,
183
191
  "is_saveable": og_gs.is_implicit_structural_model_saveable,
184
192
  "save": og_gs.save_implicit_structural_model,
@@ -201,6 +209,7 @@ def geode_objects_dict():
201
209
  "output_factory": og.LightRegularGridOutputFactory2D,
202
210
  "additional_files": og.light_regular_grid_additional_files2D,
203
211
  "is_loadable": og.is_light_regular_grid_loadable2D,
212
+ "object_priority": og.light_regular_grid_object_priority2D,
204
213
  "load": og.load_light_regular_grid2D,
205
214
  "is_saveable": og.is_light_regular_grid_saveable2D,
206
215
  "save": og.save_light_regular_grid2D,
@@ -217,6 +226,7 @@ def geode_objects_dict():
217
226
  "output_factory": og.LightRegularGridOutputFactory3D,
218
227
  "additional_files": og.light_regular_grid_additional_files3D,
219
228
  "is_loadable": og.is_light_regular_grid_loadable3D,
229
+ "object_priority": og.light_regular_grid_object_priority3D,
220
230
  "load": og.load_light_regular_grid3D,
221
231
  "is_saveable": og.is_light_regular_grid_saveable3D,
222
232
  "save": og.save_light_regular_grid3D,
@@ -233,6 +243,7 @@ def geode_objects_dict():
233
243
  "output_factory": og.PointSetOutputFactory2D,
234
244
  "additional_files": og.point_set_additional_files2D,
235
245
  "is_loadable": og.is_point_set_loadable2D,
246
+ "object_priority": og.point_set_object_priority2D,
236
247
  "load": og.load_point_set2D,
237
248
  "is_saveable": og.is_point_set_saveable2D,
238
249
  "save": og.save_point_set2D,
@@ -256,6 +267,7 @@ def geode_objects_dict():
256
267
  "output_factory": og.PointSetOutputFactory3D,
257
268
  "additional_files": og.point_set_additional_files3D,
258
269
  "is_loadable": og.is_point_set_loadable3D,
270
+ "object_priority": og.point_set_object_priority3D,
259
271
  "load": og.load_point_set3D,
260
272
  "is_saveable": og.is_point_set_saveable3D,
261
273
  "save": og.save_point_set3D,
@@ -279,6 +291,7 @@ def geode_objects_dict():
279
291
  "output_factory": og.PolygonalSurfaceOutputFactory2D,
280
292
  "additional_files": og.polygonal_surface_additional_files2D,
281
293
  "is_loadable": og.is_polygonal_surface_loadable2D,
294
+ "object_priority": og.polygonal_surface_object_priority2D,
282
295
  "load": og.load_polygonal_surface2D,
283
296
  "is_saveable": og.is_polygonal_surface_saveable2D,
284
297
  "save": og.save_polygonal_surface2D,
@@ -302,6 +315,7 @@ def geode_objects_dict():
302
315
  "output_factory": og.PolygonalSurfaceOutputFactory3D,
303
316
  "additional_files": og.polygonal_surface_additional_files3D,
304
317
  "is_loadable": og.is_polygonal_surface_loadable3D,
318
+ "object_priority": og.polygonal_surface_object_priority3D,
305
319
  "load": og.load_polygonal_surface3D,
306
320
  "is_saveable": og.is_polygonal_surface_saveable3D,
307
321
  "save": og.save_polygonal_surface3D,
@@ -325,6 +339,7 @@ def geode_objects_dict():
325
339
  "output_factory": og.PolyhedralSolidOutputFactory3D,
326
340
  "additional_files": og.polyhedral_solid_additional_files3D,
327
341
  "is_loadable": og.is_polyhedral_solid_loadable3D,
342
+ "object_priority": og.polyhedral_solid_object_priority3D,
328
343
  "load": og.load_polyhedral_solid3D,
329
344
  "is_saveable": og.is_polyhedral_solid_saveable3D,
330
345
  "save": og.save_polyhedral_solid3D,
@@ -348,6 +363,7 @@ def geode_objects_dict():
348
363
  "output_factory": og.RasterImageOutputFactory2D,
349
364
  "additional_files": og.raster_image_additional_files2D,
350
365
  "is_loadable": og.is_raster_image_loadable2D,
366
+ "object_priority": og.raster_image_object_priority2D,
351
367
  "load": og.load_raster_image2D,
352
368
  "is_saveable": og.is_raster_image_saveable2D,
353
369
  "save": og.save_raster_image2D,
@@ -362,6 +378,7 @@ def geode_objects_dict():
362
378
  "output_factory": og.RasterImageOutputFactory3D,
363
379
  "additional_files": og.raster_image_additional_files3D,
364
380
  "is_loadable": og.is_raster_image_loadable3D,
381
+ "object_priority": og.raster_image_object_priority3D,
365
382
  "load": og.load_raster_image3D,
366
383
  "is_saveable": og.is_raster_image_saveable3D,
367
384
  "save": og.save_raster_image3D,
@@ -376,6 +393,7 @@ def geode_objects_dict():
376
393
  "output_factory": og.RegularGridOutputFactory2D,
377
394
  "additional_files": og.regular_grid_additional_files2D,
378
395
  "is_loadable": og.is_regular_grid_loadable2D,
396
+ "object_priority": og.regular_grid_object_priority2D,
379
397
  "load": og.load_regular_grid2D,
380
398
  "is_saveable": og.is_regular_grid_saveable2D,
381
399
  "save": og.save_regular_grid2D,
@@ -398,6 +416,7 @@ def geode_objects_dict():
398
416
  "output_factory": og.RegularGridOutputFactory3D,
399
417
  "additional_files": og.regular_grid_additional_files3D,
400
418
  "is_loadable": og.is_regular_grid_loadable3D,
419
+ "object_priority": og.regular_grid_object_priority3D,
401
420
  "load": og.load_regular_grid3D,
402
421
  "is_saveable": og.is_regular_grid_saveable3D,
403
422
  "save": og.save_regular_grid3D,
@@ -420,6 +439,7 @@ def geode_objects_dict():
420
439
  "output_factory": og.SectionOutputFactory,
421
440
  "additional_files": og.section_additional_files,
422
441
  "is_loadable": og.is_section_loadable,
442
+ "object_priority": og.section_object_priority,
423
443
  "load": og.load_section,
424
444
  "is_saveable": og.is_section_saveable,
425
445
  "save": og.save_section,
@@ -443,6 +463,7 @@ def geode_objects_dict():
443
463
  "output_factory": og_gs.StructuralModelOutputFactory,
444
464
  "additional_files": og_gs.structural_model_additional_files,
445
465
  "is_loadable": og_gs.is_structural_model_loadable,
466
+ "object_priority": og_gs.structural_model_object_priority,
446
467
  "load": og_gs.load_structural_model,
447
468
  "is_saveable": og_gs.is_structural_model_saveable,
448
469
  "save": og_gs.save_structural_model,
@@ -465,6 +486,7 @@ def geode_objects_dict():
465
486
  "output_factory": og.TetrahedralSolidOutputFactory3D,
466
487
  "additional_files": og.tetrahedral_solid_additional_files3D,
467
488
  "is_loadable": og.is_tetrahedral_solid_loadable3D,
489
+ "object_priority": og.tetrahedral_solid_object_priority3D,
468
490
  "load": og.load_tetrahedral_solid3D,
469
491
  "is_saveable": og.is_tetrahedral_solid_saveable3D,
470
492
  "save": og.save_tetrahedral_solid3D,
@@ -488,6 +510,7 @@ def geode_objects_dict():
488
510
  "output_factory": og.TriangulatedSurfaceOutputFactory2D,
489
511
  "additional_files": og.triangulated_surface_additional_files2D,
490
512
  "is_loadable": og.is_triangulated_surface_loadable2D,
513
+ "object_priority": og.triangulated_surface_object_priority2D,
491
514
  "load": og.load_triangulated_surface2D,
492
515
  "is_saveable": og.is_triangulated_surface_saveable2D,
493
516
  "save": og.save_triangulated_surface2D,
@@ -511,6 +534,7 @@ def geode_objects_dict():
511
534
  "output_factory": og.TriangulatedSurfaceOutputFactory3D,
512
535
  "additional_files": og.triangulated_surface_additional_files3D,
513
536
  "is_loadable": og.is_triangulated_surface_loadable3D,
537
+ "object_priority": og.triangulated_surface_object_priority3D,
514
538
  "load": og.load_triangulated_surface3D,
515
539
  "is_saveable": og.is_triangulated_surface_saveable3D,
516
540
  "save": og.save_triangulated_surface3D,
@@ -534,6 +558,7 @@ def geode_objects_dict():
534
558
  "output_factory": og.VertexSetOutputFactory,
535
559
  "additional_files": og.vertex_set_additional_files,
536
560
  "is_loadable": og.is_vertex_set_loadable,
561
+ "object_priority": og.vertex_set_object_priority,
537
562
  "load": og.load_vertex_set,
538
563
  "is_saveable": og.is_vertex_set_saveable,
539
564
  "save": og.save_vertex_set,
@@ -154,11 +154,8 @@ def create_unique_data_folder() -> tuple[str, str]:
154
154
 
155
155
 
156
156
  def save_all_viewables_and_return_info(
157
- geode_object,
158
- data, generated_id,
159
- data_path,
160
- additional_files=None
161
- ):
157
+ geode_object, data, generated_id, data_path, additional_files=None
158
+ ):
162
159
  saved_native_file_path = geode_functions.save(
163
160
  geode_object,
164
161
  data,
@@ -185,22 +182,21 @@ def save_all_viewables_and_return_info(
185
182
  "input_files": additional_files or [],
186
183
  }
187
184
 
188
- def generate_native_viewable_and_light_viewable_from_object(
189
- geode_object,
190
- data
191
- ):
185
+
186
+ def generate_native_viewable_and_light_viewable_from_object(geode_object, data):
192
187
  generated_id, data_path = create_unique_data_folder()
193
- return save_all_viewables_and_return_info(geode_object, data, generated_id, data_path)
188
+ return save_all_viewables_and_return_info(
189
+ geode_object, data, generated_id, data_path
190
+ )
194
191
 
195
192
 
196
- def generate_native_viewable_and_light_viewable_from_file(
197
- geode_object,
198
- input_filename
199
- ):
193
+ def generate_native_viewable_and_light_viewable_from_file(geode_object, input_filename):
200
194
  generated_id, data_path = create_unique_data_folder()
201
195
 
202
196
  full_input_filename = geode_functions.upload_file_path(input_filename)
203
- copied_full_path = os.path.join(data_path, werkzeug.utils.secure_filename(input_filename))
197
+ copied_full_path = os.path.join(
198
+ data_path, werkzeug.utils.secure_filename(input_filename)
199
+ )
204
200
  shutil.copy2(full_input_filename, copied_full_path)
205
201
 
206
202
  additional_files_copied = []
@@ -208,7 +204,9 @@ def generate_native_viewable_and_light_viewable_from_file(
208
204
  for additional_file in additional.mandatory_files + additional.optional_files:
209
205
  if additional_file.is_missing:
210
206
  continue
211
- source_path = os.path.join(os.path.dirname(full_input_filename), additional_file.filename)
207
+ source_path = os.path.join(
208
+ os.path.dirname(full_input_filename), additional_file.filename
209
+ )
212
210
  if not os.path.exists(source_path):
213
211
  continue
214
212
  dest_path = os.path.join(data_path, additional_file.filename)
@@ -63,7 +63,19 @@ def test_is_loadable():
63
63
  for input_extension in input_extensions:
64
64
  file_absolute_path = os.path.join(data_folder, f"test.{input_extension}")
65
65
  is_loadable = geode_functions.is_loadable(geode_object, file_absolute_path)
66
- assert type(is_loadable) is bool
66
+ assert isinstance(is_loadable, float)
67
+ assert 0.0 <= is_loadable <= 1.0
68
+
69
+
70
+ def test_object_priority():
71
+ for geode_object, _value in geode_objects.geode_objects_dict().items():
72
+ input_extensions = geode_functions.geode_object_input_extensions(geode_object)
73
+ for input_extension in input_extensions:
74
+ file_absolute_path = os.path.join(data_folder, f"test.{input_extension}")
75
+ priority = geode_functions.object_priority(geode_object, file_absolute_path)
76
+ assert isinstance(
77
+ priority, int
78
+ ), f"Priority should be int for {geode_object}"
67
79
 
68
80
 
69
81
  def test_load():
@@ -73,7 +85,7 @@ def test_load():
73
85
  for input_extension in input_extensions:
74
86
  print(f"\t{input_extension=}")
75
87
  file_absolute_path = os.path.join(data_folder, f"test.{input_extension}")
76
- if geode_functions.is_loadable(geode_object, file_absolute_path):
88
+ if geode_functions.is_loadable(geode_object, file_absolute_path) > 0.0:
77
89
  data = geode_functions.load(geode_object, file_absolute_path)
78
90
  data_name = data.name()
79
91
  if "save_viewable" in value:
@@ -171,7 +183,7 @@ def test_geode_object_output_extensions():
171
183
  print(
172
184
  f"\t\tAdditional files: {[f.filename for f in additional.optional_files]}"
173
185
  )
174
- if geode_functions.is_loadable(geode_object, file_absolute_path):
186
+ if geode_functions.is_loadable(geode_object, file_absolute_path) > 0.0:
175
187
  data = geode_functions.load(geode_object, file_absolute_path)
176
188
  geode_objets_and_output_extensions = (
177
189
  geode_functions.geode_objects_output_extensions(geode_object, data)
@@ -214,7 +226,7 @@ def test_get_inspector_children():
214
226
  print(f"\t\t{mandatory_files=}", flush=True)
215
227
  additional_files = [f.filename for f in additional.optional_files]
216
228
  print(f"\t\t{additional_files=}", flush=True)
217
- if geode_functions.is_loadable(geode_object, file_absolute_path):
229
+ if geode_functions.is_loadable(geode_object, file_absolute_path) > 0.0:
218
230
  data = geode_functions.load(geode_object, file_absolute_path)
219
231
  class_inspector = geode_functions.inspect(geode_object, data)
220
232
  assert "InspectionResult" in class_inspector.__class__.__name__
@@ -296,7 +308,8 @@ def test_list_geode_objects():
296
308
  input_extension,
297
309
  input_extension_value,
298
310
  ) in input_extension_dict.items():
299
- assert type(input_extension_value) is bool
311
+ assert isinstance(input_extension_value, float)
312
+ assert 0.0 <= input_extension_value <= 1.0
300
313
 
301
314
 
302
315
  def test_geode_objects_output_extensions():
@@ -304,7 +317,7 @@ def test_geode_objects_output_extensions():
304
317
  input_extensions = geode_functions.geode_object_input_extensions(geode_object)
305
318
  for input_extension in input_extensions:
306
319
  file_absolute_path = os.path.join(data_folder, f"test.{input_extension}")
307
- if geode_functions.is_loadable(geode_object, file_absolute_path):
320
+ if geode_functions.is_loadable(geode_object, file_absolute_path) > 0.0:
308
321
  data = geode_functions.load(geode_object, file_absolute_path)
309
322
  geode_objects_and_output_extensions = (
310
323
  geode_functions.geode_objects_output_extensions(geode_object, data)
@@ -201,11 +201,13 @@ def test_vertex_attribute_names(client, test_id):
201
201
  elements = geode_functions.get_elements(geode_object)
202
202
  if "points" in elements:
203
203
  for input_extension in input_extensions:
204
- is_loadable = geode_functions.is_loadable(
205
- geode_object,
206
- os.path.join("./data", f"test.{input_extension}"),
207
- )
208
- if is_loadable:
204
+ if (
205
+ geode_functions.is_loadable(
206
+ geode_object,
207
+ os.path.join("./data", f"test.{input_extension}"),
208
+ )
209
+ > 0.0
210
+ ):
209
211
 
210
212
  def get_full_data():
211
213
  return {
@@ -238,11 +240,13 @@ def test_polygon_attribute_names(client, test_id):
238
240
  elements = geode_functions.get_elements(geode_object)
239
241
  if "polygons" in elements:
240
242
  for input_extension in input_extensions:
241
- is_loadable = geode_functions.is_loadable(
242
- geode_object,
243
- os.path.join("./data", f"test.{input_extension}"),
244
- )
245
- if is_loadable:
243
+ if (
244
+ geode_functions.is_loadable(
245
+ geode_object,
246
+ os.path.join("./data", f"test.{input_extension}"),
247
+ )
248
+ > 0.0
249
+ ):
246
250
 
247
251
  def get_full_data():
248
252
  return {
@@ -275,11 +279,13 @@ def test_polyhedron_attribute_names(client, test_id):
275
279
  elements = geode_functions.get_elements(geode_object)
276
280
  if "polyhedrons" in elements:
277
281
  for input_extension in input_extensions:
278
- is_loadable = geode_functions.is_loadable(
279
- geode_object,
280
- os.path.join("./data", f"test.{input_extension}"),
281
- )
282
- if is_loadable:
282
+ if (
283
+ geode_functions.is_loadable(
284
+ geode_object,
285
+ os.path.join("./data", f"test.{input_extension}"),
286
+ )
287
+ > 0.0
288
+ ):
283
289
 
284
290
  def get_full_data():
285
291
  return {
@@ -85,7 +85,6 @@ def test_create_unique_data_folder(client):
85
85
  assert not os.path.exists(data_path)
86
86
 
87
87
 
88
-
89
88
  def test_save_all_viewables_and_return_info(client):
90
89
  app = client.application
91
90
  with app.app_context():
@@ -1,107 +0,0 @@
1
- #
2
- # This file is autogenerated by pip-compile with Python 3.12
3
- # by the following command:
4
- #
5
- # pip-compile 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.21.1
14
- # via -r requirements.in
15
- flask[async]==3.1.1
16
- # via
17
- # -r requirements.in
18
- # flask-cors
19
- flask-cors==6.0.1
20
- # via -r requirements.in
21
- geode-background==9.4.0
22
- # via
23
- # geode-explicit
24
- # geode-implicit
25
- # geode-simplex
26
- geode-common==33.9.0
27
- # via
28
- # -r requirements.in
29
- # geode-background
30
- # geode-conversion
31
- # geode-explicit
32
- # geode-implicit
33
- # geode-numerics
34
- # geode-simplex
35
- # geode-viewables
36
- geode-conversion==6.4.0
37
- # via
38
- # geode-explicit
39
- # geode-implicit
40
- geode-explicit==6.3.0
41
- # via
42
- # -r requirements.in
43
- # geode-implicit
44
- geode-implicit==4.1.1
45
- # via -r requirements.in
46
- geode-numerics==6.3.0
47
- # via
48
- # -r requirements.in
49
- # geode-implicit
50
- # geode-simplex
51
- geode-simplex==9.6.0
52
- # via
53
- # -r requirements.in
54
- # geode-implicit
55
- geode-viewables==3.2.0
56
- # via -r requirements.in
57
- itsdangerous==2.2.0
58
- # via flask
59
- jinja2==3.1.6
60
- # via flask
61
- markupsafe==3.0.2
62
- # via
63
- # flask
64
- # jinja2
65
- # werkzeug
66
- opengeode-core==15.24.1
67
- # via
68
- # -r requirements.in
69
- # geode-background
70
- # geode-common
71
- # geode-conversion
72
- # geode-explicit
73
- # geode-implicit
74
- # geode-numerics
75
- # geode-simplex
76
- # geode-viewables
77
- # opengeode-geosciences
78
- # opengeode-geosciencesio
79
- # opengeode-inspector
80
- # opengeode-io
81
- opengeode-geosciences==9.2.1
82
- # via
83
- # -r requirements.in
84
- # geode-implicit
85
- # geode-viewables
86
- # opengeode-geosciencesio
87
- opengeode-geosciencesio==5.7.1
88
- # via
89
- # -r requirements.in
90
- # geode-implicit
91
- opengeode-inspector==6.7.0
92
- # via
93
- # -r requirements.in
94
- # geode-explicit
95
- # geode-implicit
96
- # geode-simplex
97
- opengeode-io==7.3.1
98
- # via
99
- # -r requirements.in
100
- # geode-implicit
101
- # geode-viewables
102
- # opengeode-geosciencesio
103
- werkzeug==3.1.3
104
- # via
105
- # -r requirements.in
106
- # flask
107
- # flask-cors
@@ -1,23 +0,0 @@
1
- asgiref==3.9.1
2
- blinker==1.9.0
3
- click==8.2.1
4
- fastjsonschema==2.21.1
5
- flask[async]==3.1.1
6
- flask-cors==6.0.1
7
- geode-background==9.4.0
8
- geode-common==33.9.0
9
- geode-conversion==6.4.0
10
- geode-explicit==6.3.0
11
- geode-implicit==4.1.1
12
- geode-numerics==6.3.0
13
- geode-simplex==9.6.0
14
- geode-viewables==3.2.0
15
- itsdangerous==2.2.0
16
- jinja2==3.1.6
17
- markupsafe==3.0.2
18
- opengeode-core==15.24.1
19
- opengeode-geosciences==9.2.1
20
- opengeode-geosciencesio==5.7.1
21
- opengeode-inspector==6.7.0
22
- opengeode-io==7.3.1
23
- werkzeug==3.1.3