OpenGeodeWeb-Back 6.9.3rc1__tar.gz → 6.10.0__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 (115) hide show
  1. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/PKG-INFO +2 -2
  2. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/requirements.txt +1 -1
  4. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/OpenGeodeWeb_Back.egg-info/PKG-INFO +2 -2
  5. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +2 -2
  6. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
  7. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/app.py +0 -6
  8. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_brep.py +3 -0
  9. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +3 -0
  10. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +3 -0
  11. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_graph.py +5 -0
  12. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +5 -0
  13. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +5 -0
  14. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_object.py +4 -0
  15. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +3 -0
  16. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +3 -0
  17. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +5 -0
  18. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +5 -0
  19. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_section.py +3 -0
  20. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +3 -0
  21. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +3 -0
  22. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +3 -0
  23. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +5 -0
  24. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/blueprint_routes.py +15 -46
  25. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/__init__.py +1 -1
  26. opengeodeweb_back-6.10.0/src/opengeodeweb_back/routes/schemas/validate.json +16 -0
  27. opengeodeweb_back-6.10.0/src/opengeodeweb_back/routes/schemas/validate.py +10 -0
  28. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/tests/test_geode_functions.py +20 -0
  29. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/tests/test_routes.py +21 -16
  30. opengeodeweb_back-6.9.3rc1/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -22
  31. opengeodeweb_back-6.9.3rc1/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -11
  32. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/LICENSE +0 -0
  33. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/README.md +0 -0
  34. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/setup.cfg +0 -0
  35. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  36. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  37. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  38. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/__init__.py +0 -0
  39. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/app_config.py +0 -0
  40. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_functions.py +0 -0
  41. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  42. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
  43. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  44. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  45. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  46. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  47. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  48. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  49. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
  50. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  51. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  52. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  53. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  54. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  55. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
  56. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  57. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  58. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  59. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/py.typed +0 -0
  60. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
  61. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
  62. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +0 -0
  63. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +0 -0
  64. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
  65. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
  66. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +0 -0
  67. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +0 -0
  68. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  69. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  70. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  71. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  72. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
  73. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  74. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
  75. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  76. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  77. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  78. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  79. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  80. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  81. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  82. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  83. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  84. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  85. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  86. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  87. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  88. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  89. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  90. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json +0 -0
  91. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py +0 -0
  92. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json +0 -0
  93. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py +0 -0
  94. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json +0 -0
  95. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py +0 -0
  96. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json +0 -0
  97. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py +0 -0
  98. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  99. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  100. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  101. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  102. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  103. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  104. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  105. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
  106. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  107. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  108. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  109. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  110. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  111. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  112. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/test_utils.py +0 -0
  113. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/src/opengeodeweb_back/utils_functions.py +0 -0
  114. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/tests/test_create_routes.py +0 -0
  115. {opengeodeweb_back-6.9.3rc1 → opengeodeweb_back-6.10.0}/tests/test_utils_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.9.3rc1
3
+ Version: 6.10.0
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
@@ -28,7 +28,7 @@ Requires-Dist: opengeode-inspector==6.11.6
28
28
  Requires-Dist: opengeode-inspector-geosciences==1.1.0
29
29
  Requires-Dist: opengeode-io==7.7.0
30
30
  Requires-Dist: werkzeug==3.1.8
31
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.4
32
32
  Dynamic: license-file
33
33
 
34
34
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OpenGeodeWeb-Back"
7
- version = "6.9.3-rc.1"
7
+ version = "6.10.0"
8
8
  dynamic = ["dependencies"]
9
9
  authors = [{ name = "Geode-solutions", email = "team-web@geode-solutions.com" }]
10
10
  description = "OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem"
@@ -66,4 +66,4 @@ werkzeug==3.1.8
66
66
  # flask
67
67
  # flask-cors
68
68
 
69
- opengeodeweb-microservice==1.*,>=1.1.3
69
+ opengeodeweb-microservice==1.*,>=1.1.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.9.3rc1
3
+ Version: 6.10.0
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
@@ -28,7 +28,7 @@ Requires-Dist: opengeode-inspector==6.11.6
28
28
  Requires-Dist: opengeode-inspector-geosciences==1.1.0
29
29
  Requires-Dist: opengeode-io==7.7.0
30
30
  Requires-Dist: werkzeug==3.1.8
31
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.4
32
32
  Dynamic: license-file
33
33
 
34
34
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -77,8 +77,6 @@ src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json
77
77
  src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py
78
78
  src/opengeodeweb_back/routes/schemas/import_project.json
79
79
  src/opengeodeweb_back/routes/schemas/import_project.py
80
- src/opengeodeweb_back/routes/schemas/inspect_file.json
81
- src/opengeodeweb_back/routes/schemas/inspect_file.py
82
80
  src/opengeodeweb_back/routes/schemas/kill.json
83
81
  src/opengeodeweb_back/routes/schemas/kill.py
84
82
  src/opengeodeweb_back/routes/schemas/missing_files.json
@@ -103,6 +101,8 @@ src/opengeodeweb_back/routes/schemas/texture_coordinates.json
103
101
  src/opengeodeweb_back/routes/schemas/texture_coordinates.py
104
102
  src/opengeodeweb_back/routes/schemas/upload_file.json
105
103
  src/opengeodeweb_back/routes/schemas/upload_file.py
104
+ src/opengeodeweb_back/routes/schemas/validate.json
105
+ src/opengeodeweb_back/routes/schemas/validate.py
106
106
  src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json
107
107
  src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py
108
108
  tests/test_create_routes.py
@@ -15,4 +15,4 @@ opengeode-inspector==6.11.6
15
15
  opengeode-inspector-geosciences==1.1.0
16
16
  opengeode-io==7.7.0
17
17
  werkzeug==3.1.8
18
- opengeodeweb-microservice==1.*,>=1.1.3
18
+ opengeodeweb-microservice==1.*,>=1.1.4
@@ -64,12 +64,6 @@ def create_app(name: str) -> flask.Flask:
64
64
  def root() -> Response:
65
65
  return flask.make_response({}, 200)
66
66
 
67
- @app.route("/kill", methods=["POST"])
68
- @cross_origin()
69
- def kill() -> None:
70
- print("Manual server kill, shutting down...", flush=True)
71
- Timer(1.5, os._exit, [0]).start()
72
-
73
67
  return app
74
68
 
75
69
 
@@ -94,6 +94,9 @@ class GeodeBRep(GeodeModel):
94
94
  def inspect(self) -> og_inspector.BRepInspectionResult:
95
95
  return og_inspector.inspect_brep(self.brep)
96
96
 
97
+ def validate(self) -> og_inspector.ObjectValidity:
98
+ return og_inspector.is_brep_valid(self.brep)
99
+
97
100
  def assign_crs(
98
101
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
99
102
  ) -> None:
@@ -82,6 +82,9 @@ class GeodeEdgedCurve2D(GeodeGraph):
82
82
  def inspect(self) -> og_inspector.EdgedCurveInspectionResult:
83
83
  return og_inspector.inspect_edged_curve2D(self.edged_curve)
84
84
 
85
+ def validate(self) -> og_inspector.ObjectValidity:
86
+ return og_inspector.is_edged_curve_valid2D(self.edged_curve)
87
+
85
88
  def assign_crs(
86
89
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
87
90
  ) -> None:
@@ -82,6 +82,9 @@ class GeodeEdgedCurve3D(GeodeGraph):
82
82
  def inspect(self) -> og_inspector.EdgedCurveInspectionResult:
83
83
  return og_inspector.inspect_edged_curve3D(self.edged_curve)
84
84
 
85
+ def validate(self) -> og_inspector.ObjectValidity:
86
+ return og_inspector.is_edged_curve_valid3D(self.edged_curve)
87
+
85
88
  def assign_crs(
86
89
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
87
90
  ) -> None:
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
 
4
4
  # Third party imports
5
5
  import opengeode as og
6
+ import opengeode_inspector as og_inspector
6
7
  from opengeodeweb_microservice.database.data_types import (
7
8
  GeodeMeshType,
8
9
  ViewerElementsType,
@@ -80,5 +81,9 @@ class GeodeGraph(GeodeVertexSet):
80
81
  def inspect(self) -> object:
81
82
  return None
82
83
 
84
+ def validate(self) -> og_inspector.ObjectValidity:
85
+ result = og_inspector.ObjectValidity()
86
+ return result
87
+
83
88
  def edge_attribute_manager(self) -> og.AttributeManager:
84
89
  return self.graph.edge_attribute_manager()
@@ -4,6 +4,7 @@ from abc import abstractmethod
4
4
 
5
5
  # Third party imports
6
6
  import opengeode as og
7
+ import opengeode_inspector as og_inspector
7
8
  from opengeodeweb_microservice.database.data_types import ViewerElementsType
8
9
 
9
10
  # Local application imports
@@ -29,5 +30,9 @@ class GeodeGrid2D(GeodeMesh):
29
30
  def inspect(self) -> object:
30
31
  return None
31
32
 
33
+ def validate(self) -> og_inspector.ObjectValidity:
34
+ result = og_inspector.ObjectValidity()
35
+ return result
36
+
32
37
  @abstractmethod
33
38
  def cell_attribute_manager(self) -> og.AttributeManager: ...
@@ -4,6 +4,7 @@ from abc import abstractmethod
4
4
 
5
5
  # Third party imports
6
6
  import opengeode as og
7
+ import opengeode_inspector as og_inspector
7
8
  from opengeodeweb_microservice.database.data_types import ViewerElementsType
8
9
 
9
10
  # Local application imports
@@ -29,5 +30,9 @@ class GeodeGrid3D(GeodeMesh):
29
30
  def inspect(self) -> object:
30
31
  return None
31
32
 
33
+ def validate(self) -> og_inspector.ObjectValidity:
34
+ result = og_inspector.ObjectValidity()
35
+ return result
36
+
32
37
  @abstractmethod
33
38
  def cell_attribute_manager(self) -> og.AttributeManager: ...
@@ -5,6 +5,7 @@ from typing import Any
5
5
 
6
6
  # Third party imports
7
7
  import opengeode as og
8
+ import opengeode_inspector as og_inspector
8
9
  from opengeodeweb_microservice.database.data_types import (
9
10
  GeodeObjectType,
10
11
  ViewerType,
@@ -84,3 +85,6 @@ class GeodeObject(ABC):
84
85
 
85
86
  @abstractmethod
86
87
  def inspect(self) -> Any: ...
88
+
89
+ @abstractmethod
90
+ def validate(self) -> og_inspector.ObjectValidity: ...
@@ -80,6 +80,9 @@ class GeodePointSet2D(GeodeVertexSet):
80
80
  def inspect(self) -> og_inspector.PointSetInspectionResult:
81
81
  return og_inspector.inspect_point_set2D(self.point_set)
82
82
 
83
+ def validate(self) -> og_inspector.ObjectValidity:
84
+ return og_inspector.is_pointset_valid2D(self.point_set)
85
+
83
86
  def assign_crs(
84
87
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
85
88
  ) -> None:
@@ -80,6 +80,9 @@ class GeodePointSet3D(GeodeVertexSet):
80
80
  def inspect(self) -> og_inspector.PointSetInspectionResult:
81
81
  return og_inspector.inspect_point_set3D(self.point_set)
82
82
 
83
+ def validate(self) -> og_inspector.ObjectValidity:
84
+ return og_inspector.is_pointset_valid3D(self.point_set)
85
+
83
86
  def assign_crs(
84
87
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
85
88
  ) -> None:
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
 
4
4
  # Third party imports
5
5
  import opengeode as og
6
+ import opengeode_inspector as og_inspector
6
7
  import geode_viewables as viewables
7
8
  from opengeodeweb_microservice.database.data_types import (
8
9
  GeodeMeshType,
@@ -85,5 +86,9 @@ class GeodeRasterImage2D(GeodeMesh):
85
86
  def inspect(self) -> None:
86
87
  return None
87
88
 
89
+ def validate(self) -> og_inspector.ObjectValidity:
90
+ result = og_inspector.ObjectValidity()
91
+ return result
92
+
88
93
  def vertex_attribute_manager(self) -> og.AttributeManager:
89
94
  return og.AttributeManager()
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
 
4
4
  # Third party imports
5
5
  import opengeode as og
6
+ import opengeode_inspector as og_inspector
6
7
  import geode_viewables as viewables
7
8
  from opengeodeweb_microservice.database.data_types import (
8
9
  GeodeMeshType,
@@ -85,5 +86,9 @@ class GeodeRasterImage3D(GeodeMesh):
85
86
  def inspect(self) -> None:
86
87
  return None
87
88
 
89
+ def validate(self) -> og_inspector.ObjectValidity:
90
+ result = og_inspector.ObjectValidity()
91
+ return result
92
+
88
93
  def vertex_attribute_manager(self) -> og.AttributeManager:
89
94
  return og.AttributeManager()
@@ -96,6 +96,9 @@ class GeodeSection(GeodeModel):
96
96
  def inspect(self) -> og_inspector.SectionInspectionResult:
97
97
  return og_inspector.inspect_section(self.section)
98
98
 
99
+ def validate(self) -> og_inspector.ObjectValidity:
100
+ return og_inspector.is_section_valid(self.section)
101
+
99
102
  def assign_crs(
100
103
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
101
104
  ) -> None:
@@ -36,6 +36,9 @@ class GeodeSolidMesh3D(GeodeVertexSet):
36
36
  def inspect(self) -> og_inspector.SolidInspectionResult:
37
37
  return og_inspector.inspect_solid3D(self.solid_mesh)
38
38
 
39
+ def validate(self) -> og_inspector.ObjectValidity:
40
+ return og_inspector.is_solid_valid3D(self.solid_mesh)
41
+
39
42
  def assign_crs(
40
43
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
41
44
  ) -> None:
@@ -38,6 +38,9 @@ class GeodeSurfaceMesh2D(GeodeVertexSet):
38
38
  def inspect(self) -> og_inspector.SurfaceInspectionResult:
39
39
  return og_inspector.inspect_surface2D(self.surface_mesh)
40
40
 
41
+ def validate(self) -> og_inspector.ObjectValidity:
42
+ return og_inspector.is_surface_valid2D(self.surface_mesh)
43
+
41
44
  def assign_crs(
42
45
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
43
46
  ) -> None:
@@ -38,6 +38,9 @@ class GeodeSurfaceMesh3D(GeodeVertexSet):
38
38
  def inspect(self) -> og_inspector.SurfaceInspectionResult:
39
39
  return og_inspector.inspect_surface3D(self.surface_mesh)
40
40
 
41
+ def validate(self) -> og_inspector.ObjectValidity:
42
+ return og_inspector.is_surface_valid3D(self.surface_mesh)
43
+
41
44
  def assign_crs(
42
45
  self, crs_name: str, info: og_geosciences.GeographicCoordinateSystemInfo
43
46
  ) -> None:
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
 
4
4
  # Third party imports
5
5
  import opengeode as og
6
+ import opengeode_inspector as og_inspector
6
7
  from opengeodeweb_microservice.database.data_types import (
7
8
  GeodeMeshType,
8
9
  ViewerElementsType,
@@ -82,5 +83,9 @@ class GeodeVertexSet(GeodeMesh):
82
83
  def inspect(self) -> object:
83
84
  return None
84
85
 
86
+ def validate(self) -> og_inspector.ObjectValidity:
87
+ result = og_inspector.ObjectValidity()
88
+ return result
89
+
85
90
  def vertex_attribute_manager(self) -> og.AttributeManager:
86
91
  return self.vertex_set.vertex_attribute_manager()
@@ -176,52 +176,22 @@ def crs_converter_geographic_coordinate_systems() -> flask.Response:
176
176
 
177
177
 
178
178
  @routes.route(
179
- schemas_dict["inspect_file"]["route"],
180
- methods=schemas_dict["inspect_file"]["methods"],
179
+ schemas_dict["validate"]["route"],
180
+ methods=schemas_dict["validate"]["methods"],
181
181
  )
182
- def inspect_file() -> flask.Response:
183
- json_data = utils_functions.validate_request(
184
- flask.request, schemas_dict["inspect_file"]
182
+ def validate_object() -> flask.Response:
183
+ utils_functions.validate_request(flask.request, schemas_dict["validate"])
184
+ params = schemas.Validate.from_dict(flask.request.get_json())
185
+ geode_object = geode_functions.load_geode_object(params.id)
186
+ validity = geode_object.validate()
187
+ return flask.make_response(
188
+ {
189
+ "is_valid": validity.nb_issues() == 0,
190
+ "nb_issues": validity.nb_issues(),
191
+ "issues": validity.invalidities,
192
+ },
193
+ 200,
185
194
  )
186
- params = schemas.InspectFile.from_dict(json_data)
187
- file_path = geode_functions.upload_file_path(params.filename)
188
- geode_object = geode_functions.geode_object_from_string(
189
- params.geode_object_type
190
- ).load(file_path)
191
- inspection_data = geode_object.inspect()
192
- inspection_result = extract_inspector_result(inspection_data)
193
- return flask.make_response({"inspection_result": inspection_result}, 200)
194
-
195
-
196
- def extract_inspector_result(inspection_data: Any) -> dict[str, Any]:
197
- new_object = {}
198
-
199
- if hasattr(inspection_data, "inspection_type"):
200
- new_object["title"] = inspection_data.inspection_type()
201
- new_object["nb_issues"] = 0
202
- new_object["children"] = []
203
- for child in dir(inspection_data):
204
- if child.startswith("__") or child in [
205
- "inspection_type",
206
- "string",
207
- "nb_issues",
208
- ]:
209
- continue
210
- child_instance = getattr(inspection_data, child)
211
- if callable(child_instance):
212
- continue
213
- child_object = extract_inspector_result(child_instance)
214
- new_object["children"].append(child_object)
215
- if "nb_issues" in child_object:
216
- new_object["nb_issues"] += child_object["nb_issues"]
217
- elif hasattr(inspection_data, "description"):
218
- new_object["title"] = inspection_data.description()
219
- nb_issues = inspection_data.nb_issues()
220
- new_object["nb_issues"] = nb_issues
221
- if nb_issues > 0:
222
- issues = inspection_data.string().split("\n")
223
- new_object["issues"] = issues
224
- return new_object
225
195
 
226
196
 
227
197
  @routes.route(
@@ -513,8 +483,7 @@ def ping() -> flask.Response:
513
483
  def kill() -> flask.Response:
514
484
  print("Manual server kill, shutting down...", flush=True)
515
485
  utils_functions.teardown_request(flask.current_app)
516
- Timer(1.5, os._exit, [0]).start()
517
-
486
+ Timer(0.5, os._exit, [0]).start()
518
487
  return flask.make_response({"message": "Flask server is dead"}, 200)
519
488
 
520
489
 
@@ -1,4 +1,5 @@
1
1
  from .vertex_attribute_names import *
2
+ from .validate import *
2
3
  from .upload_file import *
3
4
  from .texture_coordinates import *
4
5
  from .save_viewable_file import *
@@ -11,7 +12,6 @@ from .model_component_polygon_attribute_names import *
11
12
  from .model_component_edge_attribute_names import *
12
13
  from .missing_files import *
13
14
  from .kill import *
14
- from .inspect_file import *
15
15
  from .import_project import *
16
16
  from .geographic_coordinate_systems import *
17
17
  from .geode_objects_and_output_extensions import *
@@ -0,0 +1,16 @@
1
+ {
2
+ "route": "/validate",
3
+ "methods": [
4
+ "POST"
5
+ ],
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "type": "string"
10
+ }
11
+ },
12
+ "required": [
13
+ "id"
14
+ ],
15
+ "additionalProperties": false
16
+ }
@@ -0,0 +1,10 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+
4
+
5
+ @dataclass
6
+ class Validate(DataClassJsonMixin):
7
+ def __post_init__(self) -> None:
8
+ print(self, flush=True)
9
+
10
+ id: str
@@ -63,3 +63,23 @@ def test_input_output() -> None:
63
63
  assert type(saved_files) is list
64
64
  for saved_file in saved_files:
65
65
  os.remove(saved_file)
66
+
67
+
68
+ def test_validate() -> None:
69
+ # Test on BRep (uses is_brep_valid)
70
+ brep_path = os.path.join(data_folder, "cube.og_brep")
71
+ brep_object = geode_objects["BRep"].load(brep_path)
72
+ brep_validity = brep_object.validate()
73
+ assert type(brep_validity.nb_issues()) is int
74
+
75
+ # Test on PointSet2D (uses is_pointset_valid2D)
76
+ pts_path = os.path.join(data_folder, "test.og_pts2d")
77
+ pts_object = geode_objects["PointSet2D"].load(pts_path)
78
+ pts_validity = pts_object.validate()
79
+ assert type(pts_validity.nb_issues()) is int
80
+
81
+ # Test on CrossSection (uses is_section_valid)
82
+ section_path = os.path.join(data_folder, "test.og_xsctn")
83
+ section_object = geode_objects["CrossSection"].load(section_path)
84
+ section_validity = section_object.validate()
85
+ assert type(section_validity.nb_issues()) is int
@@ -121,25 +121,30 @@ def test_geographic_coordinate_systems(client: FlaskClient) -> None:
121
121
  test_utils.test_route_wrong_params(client, route, get_full_data)
122
122
 
123
123
 
124
- def test_inspect_file(client: FlaskClient) -> None:
125
- route = f"/opengeodeweb_back/inspect_file"
124
+ def test_validate_object(client: FlaskClient) -> None:
125
+ response_save = test_save_viewable_file(client, "BRep", "cube.og_brep")
126
+ assert response_save.status_code == 200
127
+ model_id = response_save.get_json()["id"]
128
+ response = client.post("/opengeodeweb_back/validate", json={"id": model_id})
129
+ assert response.status_code == 200
130
+ json_data = response.get_json()
131
+ assert json_data["is_valid"] is True
132
+ assert json_data["nb_issues"] == 0
133
+ assert type(json_data["issues"]) is list
126
134
 
127
- def get_full_data() -> test_utils.JsonData:
128
- return {
129
- "geode_object_type": "BRep",
130
- "filename": "corbi.og_brep",
131
- }
132
135
 
133
- json = get_full_data()
134
-
135
- # Normal test with geode_object 'BRep'
136
- response = client.post(route, json=json)
136
+ def test_validate_invalid_object(client: FlaskClient) -> None:
137
+ response_save = test_save_viewable_file(
138
+ client, "BRep", "wrong_boundary_surface_model.og_brep"
139
+ )
140
+ assert response_save.status_code == 200
141
+ model_id = response_save.get_json()["id"]
142
+ response = client.post("/opengeodeweb_back/validate", json={"id": model_id})
137
143
  assert response.status_code == 200
138
- inspection_result = response.get_json()["inspection_result"]
139
- assert type(inspection_result) is dict
140
-
141
- # Test all params
142
- test_utils.test_route_wrong_params(client, route, get_full_data)
144
+ json_data = response.get_json()
145
+ assert json_data["is_valid"] is False
146
+ assert json_data["nb_issues"] == 1
147
+ assert type(json_data["issues"]) is list
143
148
 
144
149
 
145
150
  def test_geode_objects_and_output_extensions(client: FlaskClient) -> None:
@@ -1,22 +0,0 @@
1
- {
2
- "route": "/inspect_file",
3
- "methods": [
4
- "POST"
5
- ],
6
- "type": "object",
7
- "properties": {
8
- "filename": {
9
- "type": "string",
10
- "minLength": 1
11
- },
12
- "geode_object_type": {
13
- "type": "string",
14
- "minLength": 1
15
- }
16
- },
17
- "required": [
18
- "filename",
19
- "geode_object_type"
20
- ],
21
- "additionalProperties": false
22
- }
@@ -1,11 +0,0 @@
1
- from dataclasses_json import DataClassJsonMixin
2
- from dataclasses import dataclass
3
-
4
-
5
- @dataclass
6
- class InspectFile(DataClassJsonMixin):
7
- def __post_init__(self) -> None:
8
- print(self, flush=True)
9
-
10
- filename: str
11
- geode_object_type: str