OpenGeodeWeb-Back 6.14.0rc3__tar.gz → 6.14.0rc4__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 (116) hide show
  1. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/PKG-INFO +2 -2
  2. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/requirements.txt +1 -1
  4. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/OpenGeodeWeb_Back.egg-info/PKG-INFO +2 -2
  5. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
  6. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/blueprint_routes.py +2 -1
  7. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +25 -7
  8. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +1 -0
  9. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/point_set.json +25 -7
  10. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/point_set.py +1 -0
  11. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +25 -7
  12. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +1 -0
  13. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +2 -1
  14. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +2 -1
  15. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json +4 -2
  16. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json +4 -2
  17. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json +4 -2
  18. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json +4 -2
  19. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +2 -1
  20. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +2 -1
  21. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +25 -7
  22. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +1 -0
  23. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +2 -1
  24. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/validate.json +3 -1
  25. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +2 -1
  26. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/utils_functions.py +17 -3
  27. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/tests/test_routes.py +28 -5
  28. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/tests/test_utils_functions.py +68 -2
  29. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/LICENSE +0 -0
  30. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/README.md +0 -0
  31. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/setup.cfg +0 -0
  32. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
  33. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  34. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  35. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  36. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/__init__.py +0 -0
  37. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/app.py +0 -0
  38. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/app_config.py +0 -0
  39. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_functions.py +0 -0
  40. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  41. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
  42. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
  43. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
  44. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
  45. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
  46. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
  47. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
  48. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_horizon_stack3d.py +0 -0
  49. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  50. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  51. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  52. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  53. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  54. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  55. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
  56. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
  57. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
  58. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
  59. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  60. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  61. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  62. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
  63. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
  64. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  65. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  66. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
  67. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
  68. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
  69. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
  70. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
  71. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  72. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  73. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  74. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
  75. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/py.typed +0 -0
  76. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
  77. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
  78. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
  79. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  80. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  81. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  82. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  83. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  84. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  85. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  86. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  87. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  88. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  89. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  90. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  91. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  92. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  93. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  94. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  95. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  96. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  97. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  98. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  99. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py +0 -0
  100. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py +0 -0
  101. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py +0 -0
  102. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py +0 -0
  103. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  104. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  105. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  106. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  107. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  108. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  109. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  110. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/validate.py +0 -0
  111. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  112. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/test_utils.py +0 -0
  113. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/src/opengeodeweb_back/typed_route.py +0 -0
  114. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/tests/test_create_routes.py +0 -0
  115. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/tests/test_geode_functions.py +0 -0
  116. {opengeodeweb_back-6.14.0rc3 → opengeodeweb_back-6.14.0rc4}/tests/test_typed_routes.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.14.0rc3
3
+ Version: 6.14.0rc4
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.12.1
28
28
  Requires-Dist: opengeode-inspector-geosciences==1.2.1
29
29
  Requires-Dist: opengeode-io==7.8.3
30
30
  Requires-Dist: werkzeug==3.1.8
31
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.3.0rc1
31
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.3.0rc2
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.14.0-rc.3"
7
+ version = "6.14.0-rc.4"
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.3.0rc1
69
+ opengeodeweb-microservice==1.*,>=1.3.0rc2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.14.0rc3
3
+ Version: 6.14.0rc4
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.12.1
28
28
  Requires-Dist: opengeode-inspector-geosciences==1.2.1
29
29
  Requires-Dist: opengeode-io==7.8.3
30
30
  Requires-Dist: werkzeug==3.1.8
31
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.3.0rc1
31
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.3.0rc2
32
32
  Dynamic: license-file
33
33
 
34
34
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -15,4 +15,4 @@ opengeode-inspector==6.12.1
15
15
  opengeode-inspector-geosciences==1.2.1
16
16
  opengeode-io==7.8.3
17
17
  werkzeug==3.1.8
18
- opengeodeweb-microservice==1.*,>=1.3.0rc1
18
+ opengeodeweb-microservice==1.*,>=1.3.0rc2
@@ -649,7 +649,8 @@ def geode_object_inheritance(
649
649
  return bases
650
650
 
651
651
  def get_all_subclasses(geode_class: type) -> set[type]:
652
- subclasses = set()
652
+ subclasses: set[type] = set()
653
+ subclass_class: type
653
654
  for subclass_class in geode_class.__subclasses__():
654
655
  subclasses.add(subclass_class)
655
656
  subclasses.update(get_all_subclasses(subclass_class))
@@ -60,7 +60,9 @@
60
60
  "type": "string"
61
61
  },
62
62
  "id": {
63
- "type": "string"
63
+ "type": "string",
64
+ "minLength": 32,
65
+ "maxLength": 32
64
66
  },
65
67
  "name": {
66
68
  "type": "string"
@@ -92,7 +94,9 @@
92
94
  "type": "integer"
93
95
  },
94
96
  "geode_id": {
95
- "type": "string"
97
+ "type": "string",
98
+ "minLength": 36,
99
+ "maxLength": 36
96
100
  },
97
101
  "name": {
98
102
  "type": "string"
@@ -103,13 +107,17 @@
103
107
  "boundaries": {
104
108
  "type": "array",
105
109
  "items": {
106
- "type": "string"
110
+ "type": "string",
111
+ "minLength": 36,
112
+ "maxLength": 36
107
113
  }
108
114
  },
109
115
  "internals": {
110
116
  "type": "array",
111
117
  "items": {
112
- "type": "string"
118
+ "type": "string",
119
+ "minLength": 36,
120
+ "maxLength": 36
113
121
  }
114
122
  },
115
123
  "is_active": {
@@ -134,7 +142,9 @@
134
142
  "type": "object",
135
143
  "properties": {
136
144
  "geode_id": {
137
- "type": "string"
145
+ "type": "string",
146
+ "minLength": 36,
147
+ "maxLength": 36
138
148
  },
139
149
  "name": {
140
150
  "type": "string"
@@ -145,7 +155,9 @@
145
155
  "items": {
146
156
  "type": "array",
147
157
  "items": {
148
- "type": "string"
158
+ "type": "string",
159
+ "minLength": 36,
160
+ "maxLength": 36
149
161
  }
150
162
  },
151
163
  "is_active": {
@@ -161,6 +173,11 @@
161
173
  ],
162
174
  "additionalProperties": false
163
175
  }
176
+ },
177
+ "geode_id": {
178
+ "type": "string",
179
+ "minLength": 36,
180
+ "maxLength": 36
164
181
  }
165
182
  },
166
183
  "required": [
@@ -169,7 +186,8 @@
169
186
  "name",
170
187
  "viewer_type",
171
188
  "is_viewable",
172
- "geode_object_type"
189
+ "geode_object_type",
190
+ "geode_id"
173
191
  ],
174
192
  "additionalProperties": false
175
193
  }
@@ -57,6 +57,7 @@ class EdgedCurveResponse(DataClassJsonMixin):
57
57
  def __post_init__(self) -> None:
58
58
  print_dataclass(self)
59
59
 
60
+ geode_id: str
60
61
  geode_object_type: str
61
62
  id: str
62
63
  is_viewable: bool
@@ -46,7 +46,9 @@
46
46
  "type": "string"
47
47
  },
48
48
  "id": {
49
- "type": "string"
49
+ "type": "string",
50
+ "minLength": 32,
51
+ "maxLength": 32
50
52
  },
51
53
  "name": {
52
54
  "type": "string"
@@ -78,7 +80,9 @@
78
80
  "type": "integer"
79
81
  },
80
82
  "geode_id": {
81
- "type": "string"
83
+ "type": "string",
84
+ "minLength": 36,
85
+ "maxLength": 36
82
86
  },
83
87
  "name": {
84
88
  "type": "string"
@@ -89,13 +93,17 @@
89
93
  "boundaries": {
90
94
  "type": "array",
91
95
  "items": {
92
- "type": "string"
96
+ "type": "string",
97
+ "minLength": 36,
98
+ "maxLength": 36
93
99
  }
94
100
  },
95
101
  "internals": {
96
102
  "type": "array",
97
103
  "items": {
98
- "type": "string"
104
+ "type": "string",
105
+ "minLength": 36,
106
+ "maxLength": 36
99
107
  }
100
108
  },
101
109
  "is_active": {
@@ -120,7 +128,9 @@
120
128
  "type": "object",
121
129
  "properties": {
122
130
  "geode_id": {
123
- "type": "string"
131
+ "type": "string",
132
+ "minLength": 36,
133
+ "maxLength": 36
124
134
  },
125
135
  "name": {
126
136
  "type": "string"
@@ -131,7 +141,9 @@
131
141
  "items": {
132
142
  "type": "array",
133
143
  "items": {
134
- "type": "string"
144
+ "type": "string",
145
+ "minLength": 36,
146
+ "maxLength": 36
135
147
  }
136
148
  },
137
149
  "is_active": {
@@ -147,6 +159,11 @@
147
159
  ],
148
160
  "additionalProperties": false
149
161
  }
162
+ },
163
+ "geode_id": {
164
+ "type": "string",
165
+ "minLength": 36,
166
+ "maxLength": 36
150
167
  }
151
168
  },
152
169
  "required": [
@@ -155,7 +172,8 @@
155
172
  "name",
156
173
  "viewer_type",
157
174
  "is_viewable",
158
- "geode_object_type"
175
+ "geode_object_type",
176
+ "geode_id"
159
177
  ],
160
178
  "additionalProperties": false
161
179
  }
@@ -56,6 +56,7 @@ class PointSetResponse(DataClassJsonMixin):
56
56
  def __post_init__(self) -> None:
57
57
  print_dataclass(self)
58
58
 
59
+ geode_id: str
59
60
  geode_object_type: str
60
61
  id: str
61
62
  is_viewable: bool
@@ -59,7 +59,9 @@
59
59
  "type": "string"
60
60
  },
61
61
  "id": {
62
- "type": "string"
62
+ "type": "string",
63
+ "minLength": 32,
64
+ "maxLength": 32
63
65
  },
64
66
  "name": {
65
67
  "type": "string"
@@ -91,7 +93,9 @@
91
93
  "type": "integer"
92
94
  },
93
95
  "geode_id": {
94
- "type": "string"
96
+ "type": "string",
97
+ "minLength": 36,
98
+ "maxLength": 36
95
99
  },
96
100
  "name": {
97
101
  "type": "string"
@@ -102,13 +106,17 @@
102
106
  "boundaries": {
103
107
  "type": "array",
104
108
  "items": {
105
- "type": "string"
109
+ "type": "string",
110
+ "minLength": 36,
111
+ "maxLength": 36
106
112
  }
107
113
  },
108
114
  "internals": {
109
115
  "type": "array",
110
116
  "items": {
111
- "type": "string"
117
+ "type": "string",
118
+ "minLength": 36,
119
+ "maxLength": 36
112
120
  }
113
121
  },
114
122
  "is_active": {
@@ -133,7 +141,9 @@
133
141
  "type": "object",
134
142
  "properties": {
135
143
  "geode_id": {
136
- "type": "string"
144
+ "type": "string",
145
+ "minLength": 36,
146
+ "maxLength": 36
137
147
  },
138
148
  "name": {
139
149
  "type": "string"
@@ -144,7 +154,9 @@
144
154
  "items": {
145
155
  "type": "array",
146
156
  "items": {
147
- "type": "string"
157
+ "type": "string",
158
+ "minLength": 36,
159
+ "maxLength": 36
148
160
  }
149
161
  },
150
162
  "is_active": {
@@ -160,6 +172,11 @@
160
172
  ],
161
173
  "additionalProperties": false
162
174
  }
175
+ },
176
+ "geode_id": {
177
+ "type": "string",
178
+ "minLength": 36,
179
+ "maxLength": 36
163
180
  }
164
181
  },
165
182
  "required": [
@@ -168,7 +185,8 @@
168
185
  "name",
169
186
  "viewer_type",
170
187
  "is_viewable",
171
- "geode_object_type"
188
+ "geode_object_type",
189
+ "geode_id"
172
190
  ],
173
191
  "additionalProperties": false
174
192
  }
@@ -57,6 +57,7 @@ class PolygonalSurfaceResponse(DataClassJsonMixin):
57
57
  def __post_init__(self) -> None:
58
58
  print_dataclass(self)
59
59
 
60
+ geode_id: str
60
61
  geode_object_type: str
61
62
  id: str
62
63
  is_viewable: bool
@@ -7,7 +7,8 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  }
12
13
  },
13
14
  "required": [
@@ -7,7 +7,8 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  }
12
13
  },
13
14
  "required": [
@@ -7,13 +7,15 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  },
12
13
  "component_ids": {
13
14
  "type": "array",
14
15
  "items": {
15
16
  "type": "string",
16
- "minLength": 1
17
+ "minLength": 36,
18
+ "maxLength": 36
17
19
  },
18
20
  "minItems": 1
19
21
  }
@@ -7,13 +7,15 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  },
12
13
  "component_ids": {
13
14
  "type": "array",
14
15
  "items": {
15
16
  "type": "string",
16
- "minLength": 1
17
+ "minLength": 36,
18
+ "maxLength": 36
17
19
  },
18
20
  "minItems": 1
19
21
  }
@@ -7,13 +7,15 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  },
12
13
  "component_ids": {
13
14
  "type": "array",
14
15
  "items": {
15
16
  "type": "string",
16
- "minLength": 1
17
+ "minLength": 36,
18
+ "maxLength": 36
17
19
  },
18
20
  "minItems": 1
19
21
  }
@@ -7,13 +7,15 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  },
12
13
  "component_ids": {
13
14
  "type": "array",
14
15
  "items": {
15
16
  "type": "string",
16
- "minLength": 1
17
+ "minLength": 36,
18
+ "maxLength": 36
17
19
  },
18
20
  "minItems": 1
19
21
  }
@@ -7,7 +7,8 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  }
12
13
  },
13
14
  "required": [
@@ -7,7 +7,8 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  }
12
13
  },
13
14
  "required": [
@@ -26,7 +26,9 @@
26
26
  "type": "string"
27
27
  },
28
28
  "id": {
29
- "type": "string"
29
+ "type": "string",
30
+ "minLength": 32,
31
+ "maxLength": 32
30
32
  },
31
33
  "name": {
32
34
  "type": "string"
@@ -58,7 +60,9 @@
58
60
  "type": "integer"
59
61
  },
60
62
  "geode_id": {
61
- "type": "string"
63
+ "type": "string",
64
+ "minLength": 36,
65
+ "maxLength": 36
62
66
  },
63
67
  "name": {
64
68
  "type": "string"
@@ -69,13 +73,17 @@
69
73
  "boundaries": {
70
74
  "type": "array",
71
75
  "items": {
72
- "type": "string"
76
+ "type": "string",
77
+ "minLength": 36,
78
+ "maxLength": 36
73
79
  }
74
80
  },
75
81
  "internals": {
76
82
  "type": "array",
77
83
  "items": {
78
- "type": "string"
84
+ "type": "string",
85
+ "minLength": 36,
86
+ "maxLength": 36
79
87
  }
80
88
  },
81
89
  "is_active": {
@@ -100,7 +108,9 @@
100
108
  "type": "object",
101
109
  "properties": {
102
110
  "geode_id": {
103
- "type": "string"
111
+ "type": "string",
112
+ "minLength": 36,
113
+ "maxLength": 36
104
114
  },
105
115
  "name": {
106
116
  "type": "string"
@@ -111,7 +121,9 @@
111
121
  "items": {
112
122
  "type": "array",
113
123
  "items": {
114
- "type": "string"
124
+ "type": "string",
125
+ "minLength": 36,
126
+ "maxLength": 36
115
127
  }
116
128
  },
117
129
  "is_active": {
@@ -127,6 +139,11 @@
127
139
  ],
128
140
  "additionalProperties": false
129
141
  }
142
+ },
143
+ "geode_id": {
144
+ "type": "string",
145
+ "minLength": 36,
146
+ "maxLength": 36
130
147
  }
131
148
  },
132
149
  "required": [
@@ -135,7 +152,8 @@
135
152
  "name",
136
153
  "viewer_type",
137
154
  "is_viewable",
138
- "geode_object_type"
155
+ "geode_object_type",
156
+ "geode_id"
139
157
  ],
140
158
  "additionalProperties": false
141
159
  }
@@ -45,6 +45,7 @@ class SaveViewableFileResponse(DataClassJsonMixin):
45
45
  def __post_init__(self) -> None:
46
46
  print_dataclass(self)
47
47
 
48
+ geode_id: str
48
49
  geode_object_type: str
49
50
  id: str
50
51
  is_viewable: bool
@@ -7,7 +7,8 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  }
12
13
  },
13
14
  "required": [
@@ -6,7 +6,9 @@
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "id": {
9
- "type": "string"
9
+ "type": "string",
10
+ "minLength": 32,
11
+ "maxLength": 32
10
12
  }
11
13
  },
12
14
  "required": [
@@ -7,7 +7,8 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "minLength": 1
10
+ "minLength": 32,
11
+ "maxLength": 32
11
12
  }
12
13
  },
13
14
  "required": [
@@ -1,8 +1,10 @@
1
1
  # Standard library imports
2
2
  import base64
3
+ import hashlib
3
4
  import os
4
5
  import threading
5
6
  import time
7
+ import uuid
6
8
  import xml.etree.ElementTree as ET
7
9
  import zipfile
8
10
  from collections.abc import Callable
@@ -16,6 +18,7 @@ import importlib.metadata as metadata
16
18
  import shutil
17
19
  from werkzeug.exceptions import HTTPException
18
20
  import werkzeug
21
+ import opengeode as og
19
22
  from opengeodeweb_microservice.schemas import ErrorResponse, SchemaDict
20
23
  from opengeodeweb_microservice.database.data import Data
21
24
  from opengeodeweb_microservice.database.connection import get_session
@@ -206,6 +209,12 @@ def create_data_folder_from_id(data_id: str) -> str:
206
209
  return data_path
207
210
 
208
211
 
212
+ def content_based_uuid(file_path: str) -> og.uuid:
213
+ with open(file_path, "rb") as file:
214
+ digest = hashlib.file_digest(file, "sha256").hexdigest()
215
+ return og.uuid(str(uuid.uuid5(uuid.NAMESPACE_OID, digest)))
216
+
217
+
209
218
  def model_components(
210
219
  data_id: str, model: GeodeModel, viewable_file: str | None
211
220
  ) -> dict[str, Any]:
@@ -328,6 +337,7 @@ def save_all_viewables_and_return_info(
328
337
  response: dict[str, Any] = {
329
338
  "native_file": data.native_file,
330
339
  "id": data.id,
340
+ "geode_id": data.geode_id,
331
341
  "name": name,
332
342
  "viewer_type": data.viewer_object,
333
343
  "is_viewable": geode_object.is_viewable(),
@@ -347,6 +357,7 @@ def generate_files_from_object(
347
357
  geode_object: GeodeObject,
348
358
  ) -> dict[str, Any]:
349
359
  data = Data.create(
360
+ geode_id=geode_object.identifier.id().string(),
350
361
  geode_object=geode_object.geode_object_type(),
351
362
  viewer_object=geode_object.viewer_type(),
352
363
  viewer_elements_type=geode_object.viewer_elements_type(),
@@ -359,13 +370,16 @@ def generate_files_from_file(
359
370
  geode_object_type: GeodeObjectType, input_file: str
360
371
  ) -> dict[str, Any]:
361
372
  generic_geode_object = geode_objects[geode_object_type]
373
+ full_input_filename = geode_functions.upload_file_path(input_file)
374
+ geode_object = generic_geode_object.load(full_input_filename)
375
+ geode_object.builder().set_name(os.path.splitext(input_file)[0])
376
+ if not input_file.lower().endswith("." + geode_object.native_extension()):
377
+ geode_object.builder().set_id(content_based_uuid(full_input_filename))
362
378
  data = Data.create(
379
+ geode_id=geode_object.identifier.id().string(),
363
380
  geode_object=geode_object_type,
364
381
  viewer_object=generic_geode_object.viewer_type(),
365
382
  viewer_elements_type=generic_geode_object.viewer_elements_type(),
366
383
  )
367
384
  data_path = create_data_folder_from_id(data.id)
368
- full_input_filename = geode_functions.upload_file_path(input_file)
369
- geode_object = generic_geode_object.load(full_input_filename)
370
- geode_object.builder().set_name(os.path.splitext(input_file)[0])
371
385
  return save_all_viewables_and_return_info(geode_object, data, data_path)