OpenGeodeWeb-Back 6.7.1__tar.gz → 6.8.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 (105) hide show
  1. {opengeodeweb_back-6.7.1/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.8.0}/PKG-INFO +5 -5
  2. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/requirements.txt +4 -4
  4. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +5 -5
  5. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +2 -0
  6. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/OpenGeodeWeb_Back.egg-info/requires.txt +4 -4
  7. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/create/blueprint_create.py +31 -0
  8. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/create/schemas/__init__.py +1 -0
  9. opengeodeweb_back-6.8.0/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +37 -0
  10. opengeodeweb_back-6.8.0/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +23 -0
  11. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/tests/test_create_routes.py +43 -0
  12. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/LICENSE +0 -0
  13. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/README.md +0 -0
  14. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/setup.cfg +0 -0
  15. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  16. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  17. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  18. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/__init__.py +0 -0
  19. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/app.py +0 -0
  20. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/app_config.py +0 -0
  21. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_functions.py +0 -0
  22. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  23. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
  24. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
  25. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
  26. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
  27. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
  28. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
  29. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
  30. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  31. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  32. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  33. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  34. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  35. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  36. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
  37. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
  38. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
  39. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
  40. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  41. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  42. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  43. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
  44. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
  45. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  46. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  47. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
  48. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
  49. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
  50. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
  51. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
  52. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  53. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  54. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  55. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
  56. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/py.typed +0 -0
  57. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  58. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +0 -0
  59. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +0 -0
  60. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
  61. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
  62. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
  63. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  64. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  65. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  66. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  67. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
  68. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  69. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
  70. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  71. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  72. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  73. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  74. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  75. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  76. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  77. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  78. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  79. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  80. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  81. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  82. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
  83. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  84. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  85. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  86. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  87. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  88. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  89. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  90. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  91. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  92. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  93. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  94. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
  95. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  96. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  97. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  98. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  99. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  100. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  101. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/test_utils.py +0 -0
  102. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/src/opengeodeweb_back/utils_functions.py +0 -0
  103. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/tests/test_geode_functions.py +0 -0
  104. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.0}/tests/test_routes.py +0 -0
  105. {opengeodeweb_back-6.7.1 → opengeodeweb_back-6.8.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.7.1
3
+ Version: 6.8.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
@@ -16,16 +16,16 @@ Requires-Dist: blinker>=1
16
16
  Requires-Dist: click>=8
17
17
  Requires-Dist: flask[async]>=3
18
18
  Requires-Dist: flask-cors==6.0.2
19
- Requires-Dist: geode-common==33.21.5
19
+ Requires-Dist: geode-common==33.21.6
20
20
  Requires-Dist: geode-viewables==3.3.8
21
21
  Requires-Dist: itsdangerous>=2
22
22
  Requires-Dist: jinja2>=3
23
23
  Requires-Dist: markupsafe>=3
24
- Requires-Dist: opengeode-core==17.0.1
24
+ Requires-Dist: opengeode-core==17.0.2
25
25
  Requires-Dist: opengeode-geosciences==9.5.14
26
26
  Requires-Dist: opengeode-geosciencesio==5.8.14
27
- Requires-Dist: opengeode-inspector==6.8.21
28
- Requires-Dist: opengeode-io==7.6.2
27
+ Requires-Dist: opengeode-inspector==6.8.22
28
+ Requires-Dist: opengeode-io==7.6.4
29
29
  Requires-Dist: werkzeug==3.1.8
30
30
  Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
31
  Dynamic: license-file
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OpenGeodeWeb-Back"
7
- version = "6.7.1"
7
+ version = "6.8.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"
@@ -16,7 +16,7 @@ flask[async]>=3
16
16
  # flask-cors
17
17
  flask-cors==6.0.2
18
18
  # via -r requirements.in
19
- geode-common==33.21.5
19
+ geode-common==33.21.6
20
20
  # via
21
21
  # -r requirements.in
22
22
  # geode-viewables
@@ -31,7 +31,7 @@ markupsafe>=3
31
31
  # flask
32
32
  # jinja2
33
33
  # werkzeug
34
- opengeode-core==17.0.1
34
+ opengeode-core==17.0.2
35
35
  # via
36
36
  # -r requirements.in
37
37
  # geode-common
@@ -47,9 +47,9 @@ opengeode-geosciences==9.5.14
47
47
  # opengeode-geosciencesio
48
48
  opengeode-geosciencesio==5.8.14
49
49
  # via -r requirements.in
50
- opengeode-inspector==6.8.21
50
+ opengeode-inspector==6.8.22
51
51
  # via -r requirements.in
52
- opengeode-io==7.6.2
52
+ opengeode-io==7.6.4
53
53
  # via
54
54
  # -r requirements.in
55
55
  # geode-viewables
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.7.1
3
+ Version: 6.8.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
@@ -16,16 +16,16 @@ Requires-Dist: blinker>=1
16
16
  Requires-Dist: click>=8
17
17
  Requires-Dist: flask[async]>=3
18
18
  Requires-Dist: flask-cors==6.0.2
19
- Requires-Dist: geode-common==33.21.5
19
+ Requires-Dist: geode-common==33.21.6
20
20
  Requires-Dist: geode-viewables==3.3.8
21
21
  Requires-Dist: itsdangerous>=2
22
22
  Requires-Dist: jinja2>=3
23
23
  Requires-Dist: markupsafe>=3
24
- Requires-Dist: opengeode-core==17.0.1
24
+ Requires-Dist: opengeode-core==17.0.2
25
25
  Requires-Dist: opengeode-geosciences==9.5.14
26
26
  Requires-Dist: opengeode-geosciencesio==5.8.14
27
- Requires-Dist: opengeode-inspector==6.8.21
28
- Requires-Dist: opengeode-io==7.6.2
27
+ Requires-Dist: opengeode-inspector==6.8.22
28
+ Requires-Dist: opengeode-io==7.6.4
29
29
  Requires-Dist: werkzeug==3.1.8
30
30
  Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
31
  Dynamic: license-file
@@ -56,6 +56,8 @@ src/opengeodeweb_back/routes/create/schemas/edged_curve.json
56
56
  src/opengeodeweb_back/routes/create/schemas/edged_curve.py
57
57
  src/opengeodeweb_back/routes/create/schemas/point_set.json
58
58
  src/opengeodeweb_back/routes/create/schemas/point_set.py
59
+ src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json
60
+ src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py
59
61
  src/opengeodeweb_back/routes/schemas/__init__.py
60
62
  src/opengeodeweb_back/routes/schemas/allowed_files.json
61
63
  src/opengeodeweb_back/routes/schemas/allowed_files.py
@@ -3,15 +3,15 @@ blinker>=1
3
3
  click>=8
4
4
  flask[async]>=3
5
5
  flask-cors==6.0.2
6
- geode-common==33.21.5
6
+ geode-common==33.21.6
7
7
  geode-viewables==3.3.8
8
8
  itsdangerous>=2
9
9
  jinja2>=3
10
10
  markupsafe>=3
11
- opengeode-core==17.0.1
11
+ opengeode-core==17.0.2
12
12
  opengeode-geosciences==9.5.14
13
13
  opengeode-geosciencesio==5.8.14
14
- opengeode-inspector==6.8.21
15
- opengeode-io==7.6.2
14
+ opengeode-inspector==6.8.22
15
+ opengeode-io==7.6.4
16
16
  werkzeug==3.1.8
17
17
  opengeodeweb-microservice==1.*,>=1.1.3
@@ -11,6 +11,9 @@ from opengeodeweb_back import geode_functions, utils_functions
11
11
  import opengeodeweb_back.routes.create.schemas as schemas
12
12
  from opengeodeweb_back.geode_objects.geode_point_set3d import GeodePointSet3D
13
13
  from opengeodeweb_back.geode_objects.geode_edged_curve3d import GeodeEdgedCurve3D
14
+ from opengeodeweb_back.geode_objects.geode_polygonal_surface3d import (
15
+ GeodePolygonalSurface3D,
16
+ )
14
17
 
15
18
  routes = flask.Blueprint("create", __name__, url_prefix="/create")
16
19
  schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
@@ -62,3 +65,31 @@ def edged_curve() -> flask.Response:
62
65
  edged_curve_obj
63
66
  )
64
67
  return flask.make_response(result, 200)
68
+
69
+
70
+ @routes.route(
71
+ schemas_dict["polygonal_surface"]["route"],
72
+ methods=schemas_dict["polygonal_surface"]["methods"],
73
+ )
74
+ def polygonal_surface() -> flask.Response:
75
+ """Endpoint to create a polygonal surface in 3D space."""
76
+ json_data = utils_functions.validate_request(
77
+ flask.request, schemas_dict["polygonal_surface"]
78
+ )
79
+ params = schemas.PolygonalSurface.from_dict(json_data)
80
+
81
+ polygonal_surface_obj = GeodePolygonalSurface3D()
82
+ builder = polygonal_surface_obj.builder()
83
+ builder.set_name(params.name)
84
+ for point in params.points:
85
+ builder.create_point(opengeode.Point3D([point.x, point.y, point.z]))
86
+
87
+ for polygon in params.polygons:
88
+ builder.create_polygon(polygon)
89
+
90
+ builder.compute_polygon_adjacencies()
91
+
92
+ result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
93
+ polygonal_surface_obj
94
+ )
95
+ return flask.make_response(result, 200)
@@ -1,2 +1,3 @@
1
+ from .polygonal_surface import *
1
2
  from .point_set import *
2
3
  from .edged_curve import *
@@ -0,0 +1,37 @@
1
+ {
2
+ "route": "/polygonal_surface",
3
+ "methods": ["POST"],
4
+ "type": "object",
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "minLength": 1
9
+ },
10
+ "points": {
11
+ "type": "array",
12
+ "items": {
13
+ "title": "PolygonalSurfacePoint",
14
+ "type": "object",
15
+ "properties": {
16
+ "x": { "type": "number" },
17
+ "y": { "type": "number" },
18
+ "z": { "type": "number" }
19
+ },
20
+ "required": ["x", "y", "z"],
21
+ "additionalProperties": false
22
+ },
23
+ "minItems": 3
24
+ },
25
+ "polygons": {
26
+ "type": "array",
27
+ "items": {
28
+ "type": "array",
29
+ "items": { "type": "integer" },
30
+ "minItems": 3
31
+ },
32
+ "minItems": 1
33
+ }
34
+ },
35
+ "required": ["name", "points", "polygons"],
36
+ "additionalProperties": false
37
+ }
@@ -0,0 +1,23 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class PolygonalSurfacePoint(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ x: float
12
+ y: float
13
+ z: float
14
+
15
+
16
+ @dataclass
17
+ class PolygonalSurface(DataClassJsonMixin):
18
+ def __post_init__(self) -> None:
19
+ print(self, flush=True)
20
+
21
+ name: str
22
+ points: List[PolygonalSurfacePoint]
23
+ polygons: List[List[int]]
@@ -23,6 +23,20 @@ def curve_data() -> test_utils.JsonData:
23
23
  }
24
24
 
25
25
 
26
+ @pytest.fixture
27
+ def surface_data() -> test_utils.JsonData:
28
+ return {
29
+ "name": "test_surface",
30
+ "points": [
31
+ {"x": 0.0, "y": 0.0, "z": 0.0},
32
+ {"x": 1.0, "y": 0.0, "z": 0.0},
33
+ {"x": 1.0, "y": 1.0, "z": 0.0},
34
+ {"x": 0.0, "y": 1.0, "z": 0.0},
35
+ ],
36
+ "polygons": [[0, 1, 2, 3]],
37
+ }
38
+
39
+
26
40
  def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> None:
27
41
  """Test the creation of a point with valid data."""
28
42
  route: str = "/opengeodeweb_back/create/point_set"
@@ -108,3 +122,32 @@ def test_create_curve(client: FlaskClient, curve_data: test_utils.JsonData) -> N
108
122
 
109
123
  # Test with missing parameters
110
124
  test_utils.test_route_wrong_params(client, route, lambda: copy.deepcopy(curve_data))
125
+
126
+
127
+ def test_create_polygonal_surface(
128
+ client: FlaskClient, surface_data: test_utils.JsonData
129
+ ) -> None:
130
+ """Test the creation of a polygonal surface with valid data."""
131
+ route: str = "/opengeodeweb_back/create/polygonal_surface"
132
+
133
+ # Test with all required data
134
+ response = client.post(route, json=surface_data)
135
+ assert response.status_code == 200
136
+
137
+ # Verify response data
138
+ response_data = response.get_json()
139
+ assert "viewable_file" in response_data
140
+ assert "id" in response_data
141
+ assert "name" in response_data
142
+ assert "native_file" in response_data
143
+ assert "viewer_type" in response_data
144
+ assert "geode_object_type" in response_data
145
+
146
+ assert response_data["name"] == surface_data["name"]
147
+ assert response_data["viewer_type"] == "mesh"
148
+ assert response_data["geode_object_type"] == "PolygonalSurface3D"
149
+
150
+ # Test with missing parameters
151
+ test_utils.test_route_wrong_params(
152
+ client, route, lambda: copy.deepcopy(surface_data)
153
+ )