Skip to content

Commit 96011f2

Browse files
authored
Merge pull request #172 from Geode-solutions/feat/object_priority
Feat/object priority
2 parents a1ed1b9 + 93e1159 commit 96011f2

File tree

4 files changed

+51
-1
lines changed

4 files changed

+51
-1
lines changed

.releaserc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
branches: [
3+
{ name: "master" },
4+
{ name: "next", channel: "next", prerelease: "rc" }
5+
],
6+
plugins: [
7+
'@semantic-release/commit-analyzer',
8+
'@semantic-release/release-notes-generator',
9+
'@semantic-release/github'
10+
]
11+
}

src/opengeodeweb_back/geode_functions.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ def is_loadable(geode_object: str, file_absolute_path: str) -> float:
3737
return percentage.value()
3838

3939

40+
def object_priority(geode_object: str, file_absolute_path: str) -> int:
41+
return geode_object_value(geode_object)["object_priority"](file_absolute_path)
42+
43+
4044
def load(geode_object: str, file_absolute_path: str):
4145
return geode_object_value(geode_object)["load"](file_absolute_path)
4246

@@ -181,7 +185,6 @@ def list_geode_objects(
181185
os.path.basename(file_absolute_path)
182186
)
183187
geode_objects_filtered_list = filter_geode_objects(key)
184-
185188
for geode_object in geode_objects_filtered_list:
186189
if has_creator(geode_object, file_extension):
187190
loadability_score = is_loadable(geode_object, file_absolute_path)

src/opengeodeweb_back/geode_objects.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def geode_objects_dict():
2727
"output_factory": og.BRepOutputFactory,
2828
"additional_files": og.brep_additional_files,
2929
"is_loadable": og.is_brep_loadable,
30+
"object_priority": og.brep_object_priority,
3031
"load": og.load_brep,
3132
"is_saveable": og.is_brep_saveable,
3233
"save": og.save_brep,
@@ -50,6 +51,7 @@ def geode_objects_dict():
5051
"output_factory": og_gs.CrossSectionOutputFactory,
5152
"additional_files": og_gs.cross_section_additional_files,
5253
"is_loadable": og_gs.is_cross_section_loadable,
54+
"object_priority": og_gs.cross_section_object_priority,
5355
"load": og_gs.load_cross_section,
5456
"is_saveable": og_gs.is_cross_section_saveable,
5557
"save": og_gs.save_cross_section,
@@ -72,6 +74,7 @@ def geode_objects_dict():
7274
"output_factory": og.EdgedCurveOutputFactory2D,
7375
"additional_files": og.edged_curve_additional_files2D,
7476
"is_loadable": og.is_edged_curve_loadable2D,
77+
"object_priority": og.edged_curve_object_priority2D,
7578
"load": og.load_edged_curve2D,
7679
"is_saveable": og.is_edged_curve_saveable2D,
7780
"save": og.save_edged_curve2D,
@@ -95,6 +98,7 @@ def geode_objects_dict():
9598
"output_factory": og.EdgedCurveOutputFactory3D,
9699
"additional_files": og.edged_curve_additional_files3D,
97100
"is_loadable": og.is_edged_curve_loadable3D,
101+
"object_priority": og.edged_curve_object_priority3D,
98102
"load": og.load_edged_curve3D,
99103
"is_saveable": og.is_edged_curve_saveable3D,
100104
"save": og.save_edged_curve3D,
@@ -118,6 +122,7 @@ def geode_objects_dict():
118122
"output_factory": og.GraphOutputFactory,
119123
"additional_files": og.graph_additional_files,
120124
"is_loadable": og.is_graph_loadable,
125+
"object_priority": og.graph_object_priority,
121126
"load": og.load_graph,
122127
"is_saveable": og.is_graph_saveable,
123128
"save": og.save_graph,
@@ -132,6 +137,7 @@ def geode_objects_dict():
132137
"output_factory": og.HybridSolidOutputFactory3D,
133138
"additional_files": og.hybrid_solid_additional_files3D,
134139
"is_loadable": og.is_hybrid_solid_loadable3D,
140+
"object_priority": og.hybrid_solid_object_priority3D,
135141
"load": og.load_hybrid_solid3D,
136142
"is_saveable": og.is_hybrid_solid_saveable3D,
137143
"save": og.save_hybrid_solid3D,
@@ -156,6 +162,7 @@ def geode_objects_dict():
156162
"output_factory": og_gs.ImplicitCrossSectionOutputFactory,
157163
"additional_files": og_gs.implicit_cross_section_additional_files,
158164
"is_loadable": og_gs.is_implicit_cross_section_loadable,
165+
"object_priority": og_gs.implicit_cross_section_object_priority,
159166
"load": og_gs.load_implicit_cross_section,
160167
"is_saveable": og_gs.is_implicit_cross_section_saveable,
161168
"save": og_gs.save_implicit_cross_section,
@@ -179,6 +186,7 @@ def geode_objects_dict():
179186
"output_factory": og_gs.ImplicitStructuralModelOutputFactory,
180187
"additional_files": og_gs.implicit_structural_model_additional_files,
181188
"is_loadable": og_gs.is_implicit_structural_model_loadable,
189+
"object_priority": og_gs.implicit_structural_model_object_priority,
182190
"load": og_gs.load_implicit_structural_model,
183191
"is_saveable": og_gs.is_implicit_structural_model_saveable,
184192
"save": og_gs.save_implicit_structural_model,
@@ -201,6 +209,7 @@ def geode_objects_dict():
201209
"output_factory": og.LightRegularGridOutputFactory2D,
202210
"additional_files": og.light_regular_grid_additional_files2D,
203211
"is_loadable": og.is_light_regular_grid_loadable2D,
212+
"object_priority": og.light_regular_grid_object_priority2D,
204213
"load": og.load_light_regular_grid2D,
205214
"is_saveable": og.is_light_regular_grid_saveable2D,
206215
"save": og.save_light_regular_grid2D,
@@ -217,6 +226,7 @@ def geode_objects_dict():
217226
"output_factory": og.LightRegularGridOutputFactory3D,
218227
"additional_files": og.light_regular_grid_additional_files3D,
219228
"is_loadable": og.is_light_regular_grid_loadable3D,
229+
"object_priority": og.light_regular_grid_object_priority3D,
220230
"load": og.load_light_regular_grid3D,
221231
"is_saveable": og.is_light_regular_grid_saveable3D,
222232
"save": og.save_light_regular_grid3D,
@@ -233,6 +243,7 @@ def geode_objects_dict():
233243
"output_factory": og.PointSetOutputFactory2D,
234244
"additional_files": og.point_set_additional_files2D,
235245
"is_loadable": og.is_point_set_loadable2D,
246+
"object_priority": og.point_set_object_priority2D,
236247
"load": og.load_point_set2D,
237248
"is_saveable": og.is_point_set_saveable2D,
238249
"save": og.save_point_set2D,
@@ -256,6 +267,7 @@ def geode_objects_dict():
256267
"output_factory": og.PointSetOutputFactory3D,
257268
"additional_files": og.point_set_additional_files3D,
258269
"is_loadable": og.is_point_set_loadable3D,
270+
"object_priority": og.point_set_object_priority3D,
259271
"load": og.load_point_set3D,
260272
"is_saveable": og.is_point_set_saveable3D,
261273
"save": og.save_point_set3D,
@@ -279,6 +291,7 @@ def geode_objects_dict():
279291
"output_factory": og.PolygonalSurfaceOutputFactory2D,
280292
"additional_files": og.polygonal_surface_additional_files2D,
281293
"is_loadable": og.is_polygonal_surface_loadable2D,
294+
"object_priority": og.polygonal_surface_object_priority2D,
282295
"load": og.load_polygonal_surface2D,
283296
"is_saveable": og.is_polygonal_surface_saveable2D,
284297
"save": og.save_polygonal_surface2D,
@@ -302,6 +315,7 @@ def geode_objects_dict():
302315
"output_factory": og.PolygonalSurfaceOutputFactory3D,
303316
"additional_files": og.polygonal_surface_additional_files3D,
304317
"is_loadable": og.is_polygonal_surface_loadable3D,
318+
"object_priority": og.polygonal_surface_object_priority3D,
305319
"load": og.load_polygonal_surface3D,
306320
"is_saveable": og.is_polygonal_surface_saveable3D,
307321
"save": og.save_polygonal_surface3D,
@@ -325,6 +339,7 @@ def geode_objects_dict():
325339
"output_factory": og.PolyhedralSolidOutputFactory3D,
326340
"additional_files": og.polyhedral_solid_additional_files3D,
327341
"is_loadable": og.is_polyhedral_solid_loadable3D,
342+
"object_priority": og.polyhedral_solid_object_priority3D,
328343
"load": og.load_polyhedral_solid3D,
329344
"is_saveable": og.is_polyhedral_solid_saveable3D,
330345
"save": og.save_polyhedral_solid3D,
@@ -348,6 +363,7 @@ def geode_objects_dict():
348363
"output_factory": og.RasterImageOutputFactory2D,
349364
"additional_files": og.raster_image_additional_files2D,
350365
"is_loadable": og.is_raster_image_loadable2D,
366+
"object_priority": og.raster_image_object_priority2D,
351367
"load": og.load_raster_image2D,
352368
"is_saveable": og.is_raster_image_saveable2D,
353369
"save": og.save_raster_image2D,
@@ -362,6 +378,7 @@ def geode_objects_dict():
362378
"output_factory": og.RasterImageOutputFactory3D,
363379
"additional_files": og.raster_image_additional_files3D,
364380
"is_loadable": og.is_raster_image_loadable3D,
381+
"object_priority": og.raster_image_object_priority3D,
365382
"load": og.load_raster_image3D,
366383
"is_saveable": og.is_raster_image_saveable3D,
367384
"save": og.save_raster_image3D,
@@ -376,6 +393,7 @@ def geode_objects_dict():
376393
"output_factory": og.RegularGridOutputFactory2D,
377394
"additional_files": og.regular_grid_additional_files2D,
378395
"is_loadable": og.is_regular_grid_loadable2D,
396+
"object_priority": og.regular_grid_object_priority2D,
379397
"load": og.load_regular_grid2D,
380398
"is_saveable": og.is_regular_grid_saveable2D,
381399
"save": og.save_regular_grid2D,
@@ -398,6 +416,7 @@ def geode_objects_dict():
398416
"output_factory": og.RegularGridOutputFactory3D,
399417
"additional_files": og.regular_grid_additional_files3D,
400418
"is_loadable": og.is_regular_grid_loadable3D,
419+
"object_priority": og.regular_grid_object_priority3D,
401420
"load": og.load_regular_grid3D,
402421
"is_saveable": og.is_regular_grid_saveable3D,
403422
"save": og.save_regular_grid3D,
@@ -420,6 +439,7 @@ def geode_objects_dict():
420439
"output_factory": og.SectionOutputFactory,
421440
"additional_files": og.section_additional_files,
422441
"is_loadable": og.is_section_loadable,
442+
"object_priority": og.section_object_priority,
423443
"load": og.load_section,
424444
"is_saveable": og.is_section_saveable,
425445
"save": og.save_section,
@@ -443,6 +463,7 @@ def geode_objects_dict():
443463
"output_factory": og_gs.StructuralModelOutputFactory,
444464
"additional_files": og_gs.structural_model_additional_files,
445465
"is_loadable": og_gs.is_structural_model_loadable,
466+
"object_priority": og_gs.structural_model_object_priority,
446467
"load": og_gs.load_structural_model,
447468
"is_saveable": og_gs.is_structural_model_saveable,
448469
"save": og_gs.save_structural_model,
@@ -465,6 +486,7 @@ def geode_objects_dict():
465486
"output_factory": og.TetrahedralSolidOutputFactory3D,
466487
"additional_files": og.tetrahedral_solid_additional_files3D,
467488
"is_loadable": og.is_tetrahedral_solid_loadable3D,
489+
"object_priority": og.tetrahedral_solid_object_priority3D,
468490
"load": og.load_tetrahedral_solid3D,
469491
"is_saveable": og.is_tetrahedral_solid_saveable3D,
470492
"save": og.save_tetrahedral_solid3D,
@@ -488,6 +510,7 @@ def geode_objects_dict():
488510
"output_factory": og.TriangulatedSurfaceOutputFactory2D,
489511
"additional_files": og.triangulated_surface_additional_files2D,
490512
"is_loadable": og.is_triangulated_surface_loadable2D,
513+
"object_priority": og.triangulated_surface_object_priority2D,
491514
"load": og.load_triangulated_surface2D,
492515
"is_saveable": og.is_triangulated_surface_saveable2D,
493516
"save": og.save_triangulated_surface2D,
@@ -511,6 +534,7 @@ def geode_objects_dict():
511534
"output_factory": og.TriangulatedSurfaceOutputFactory3D,
512535
"additional_files": og.triangulated_surface_additional_files3D,
513536
"is_loadable": og.is_triangulated_surface_loadable3D,
537+
"object_priority": og.triangulated_surface_object_priority3D,
514538
"load": og.load_triangulated_surface3D,
515539
"is_saveable": og.is_triangulated_surface_saveable3D,
516540
"save": og.save_triangulated_surface3D,
@@ -534,6 +558,7 @@ def geode_objects_dict():
534558
"output_factory": og.VertexSetOutputFactory,
535559
"additional_files": og.vertex_set_additional_files,
536560
"is_loadable": og.is_vertex_set_loadable,
561+
"object_priority": og.vertex_set_object_priority,
537562
"load": og.load_vertex_set,
538563
"is_saveable": og.is_vertex_set_saveable,
539564
"save": og.save_vertex_set,

tests/test_geode_functions.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ def test_is_loadable():
6767
assert 0.0 <= is_loadable <= 1.0
6868

6969

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}"
79+
80+
7081
def test_load():
7182
for geode_object, value in geode_objects.geode_objects_dict().items():
7283
print(f"\n{geode_object=}")

0 commit comments

Comments
 (0)