OpenGeodeWeb-Back 6.5.2rc7__tar.gz → 6.6.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. {opengeodeweb_back-6.5.2rc7/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.6.0rc1}/PKG-INFO +2 -2
  2. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/requirements.txt +1 -1
  4. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +2 -2
  5. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +2 -2
  6. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
  7. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/app.py +1 -1
  8. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/create/blueprint_create.py +9 -9
  9. opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/__init__.py +1 -0
  10. opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/point_set.json +27 -0
  11. opengeodeweb_back-6.5.2rc7/src/opengeodeweb_back/routes/create/schemas/point.py → opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/point_set.py +10 -1
  12. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/tests/test_create_routes.py +26 -9
  13. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/tests/test_routes.py +2 -4
  14. opengeodeweb_back-6.5.2rc7/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -1
  15. opengeodeweb_back-6.5.2rc7/src/opengeodeweb_back/routes/create/schemas/point.json +0 -22
  16. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/LICENSE +0 -0
  17. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/README.md +0 -0
  18. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/setup.cfg +0 -0
  19. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  20. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  21. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  22. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/__init__.py +0 -0
  23. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/app_config.py +0 -0
  24. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_functions.py +0 -0
  25. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  26. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
  27. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
  28. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
  29. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
  30. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
  31. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
  32. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
  33. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  34. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  35. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  36. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  37. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  38. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  39. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
  40. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
  41. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
  42. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
  43. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  44. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  45. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  46. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
  47. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
  48. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  49. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  50. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
  51. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
  52. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
  53. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
  54. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
  55. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  56. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  57. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  58. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
  59. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/py.typed +0 -0
  60. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  61. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
  62. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  63. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  64. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  65. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  66. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
  67. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  68. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
  69. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  70. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  71. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  72. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  73. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  74. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  75. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  76. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  77. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  78. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  79. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  80. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  81. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
  82. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  83. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  84. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  85. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  86. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  87. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  88. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  89. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  90. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  91. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  92. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  93. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
  94. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  95. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  96. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  97. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  98. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  99. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  100. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/test_utils.py +0 -0
  101. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/utils_functions.py +0 -0
  102. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/tests/test_geode_functions.py +0 -0
  103. {opengeodeweb_back-6.5.2rc7 → opengeodeweb_back-6.6.0rc1}/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.5.2rc7
3
+ Version: 6.6.0rc1
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.11
27
27
  Requires-Dist: opengeode-inspector==6.8.18
28
28
  Requires-Dist: opengeode-io==7.4.9
29
29
  Requires-Dist: werkzeug==3.1.2
30
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.1
30
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
31
  Dynamic: license-file
32
32
 
33
33
  <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.5.2-rc.7"
7
+ version = "6.6.0-rc.1"
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"
@@ -60,4 +60,4 @@ werkzeug==3.1.2
60
60
  # flask
61
61
  # flask-cors
62
62
 
63
- opengeodeweb-microservice==1.*,>=1.1.1
63
+ opengeodeweb-microservice==1.*,>=1.1.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.5.2rc7
3
+ Version: 6.6.0rc1
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.11
27
27
  Requires-Dist: opengeode-inspector==6.8.18
28
28
  Requires-Dist: opengeode-io==7.4.9
29
29
  Requires-Dist: werkzeug==3.1.2
30
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.1
30
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
31
  Dynamic: license-file
32
32
 
33
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -52,8 +52,8 @@ src/opengeodeweb_back/geode_objects/geode_vertex_set.py
52
52
  src/opengeodeweb_back/routes/blueprint_routes.py
53
53
  src/opengeodeweb_back/routes/create/blueprint_create.py
54
54
  src/opengeodeweb_back/routes/create/schemas/__init__.py
55
- src/opengeodeweb_back/routes/create/schemas/point.json
56
- src/opengeodeweb_back/routes/create/schemas/point.py
55
+ src/opengeodeweb_back/routes/create/schemas/point_set.json
56
+ src/opengeodeweb_back/routes/create/schemas/point_set.py
57
57
  src/opengeodeweb_back/routes/schemas/__init__.py
58
58
  src/opengeodeweb_back/routes/schemas/allowed_files.json
59
59
  src/opengeodeweb_back/routes/schemas/allowed_files.py
@@ -14,4 +14,4 @@ opengeode-geosciencesio==5.8.11
14
14
  opengeode-inspector==6.8.18
15
15
  opengeode-io==7.4.9
16
16
  werkzeug==3.1.2
17
- opengeodeweb-microservice==1.*,>=1.1.1
17
+ opengeodeweb-microservice==1.*,>=1.1.3
@@ -145,7 +145,7 @@ def run_server(app: Flask) -> None:
145
145
  default=app.config.get("MINUTES_BEFORE_TIMEOUT"),
146
146
  help="Number of minutes before the server times out",
147
147
  )
148
- args = parser.parse_args()
148
+ args, _ = parser.parse_known_args()
149
149
  app.config.update(DATA_FOLDER_PATH=args.data_folder_path)
150
150
  app.config.update(
151
151
  EXTENSIONS_FOLDER_PATH=os.path.join(str(args.data_folder_path), "extensions")
@@ -17,21 +17,21 @@ schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas
17
17
 
18
18
 
19
19
  @routes.route(
20
- schemas_dict["point"]["route"],
21
- methods=schemas_dict["point"]["methods"],
20
+ schemas_dict["point_set"]["route"],
21
+ methods=schemas_dict["point_set"]["methods"],
22
22
  )
23
- def point() -> flask.Response:
24
- """Endpoint to create a single point in 3D space."""
25
- json_data = utils_functions.validate_request(flask.request, schemas_dict["point"])
26
- params = schemas.Point.from_dict(json_data)
23
+ def point_set() -> flask.Response:
24
+ json_data = utils_functions.validate_request(
25
+ flask.request, schemas_dict["point_set"]
26
+ )
27
+ params = schemas.PointSet.from_dict(json_data)
27
28
 
28
- # Create the point
29
29
  pointset = GeodePointSet3D()
30
30
  builder = pointset.builder()
31
31
  builder.set_name(params.name)
32
- builder.create_point(opengeode.Point3D([params.x, params.y, params.z]))
32
+ for point in params.points:
33
+ builder.create_point(opengeode.Point3D([point.x, point.y, point.z]))
33
34
 
34
- # Save and get info
35
35
  result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
36
36
  pointset
37
37
  )
@@ -0,0 +1,27 @@
1
+ {
2
+ "route": "/point_set",
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
+ "type": "object",
14
+ "properties": {
15
+ "x": { "type": "number" },
16
+ "y": { "type": "number" },
17
+ "z": { "type": "number" }
18
+ },
19
+ "required": ["x", "y", "z"],
20
+ "additionalProperties": false
21
+ },
22
+ "minItems": 1
23
+ }
24
+ },
25
+ "required": ["name", "points"],
26
+ "additionalProperties": false
27
+ }
@@ -1,5 +1,6 @@
1
1
  from dataclasses_json import DataClassJsonMixin
2
2
  from dataclasses import dataclass
3
+ from typing import List
3
4
 
4
5
 
5
6
  @dataclass
@@ -7,7 +8,15 @@ class Point(DataClassJsonMixin):
7
8
  def __post_init__(self) -> None:
8
9
  print(self, flush=True)
9
10
 
10
- name: str
11
11
  x: float
12
12
  y: float
13
13
  z: float
14
+
15
+
16
+ @dataclass
17
+ class PointSet(DataClassJsonMixin):
18
+ def __post_init__(self) -> None:
19
+ print(self, flush=True)
20
+
21
+ name: str
22
+ points: List[Point]
@@ -1,5 +1,5 @@
1
1
  # Standard library imports
2
- import uuid
2
+ import copy
3
3
 
4
4
  # Third party imports
5
5
  import pytest
@@ -11,12 +11,12 @@ from opengeodeweb_back import test_utils
11
11
 
12
12
  @pytest.fixture
13
13
  def point_data() -> test_utils.JsonData:
14
- return {"name": "test_point", "x": 1.0, "y": 2.0, "z": 3.0}
14
+ return {"name": "test_point", "points": [{"x": 1.0, "y": 2.0, "z": 3.0}]}
15
15
 
16
16
 
17
17
  def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> None:
18
18
  """Test the creation of a point with valid data."""
19
- route: str = "/opengeodeweb_back/create/point"
19
+ route: str = "/opengeodeweb_back/create/point_set"
20
20
 
21
21
  # Test with all required data
22
22
  response = client.post(route, json=point_data)
@@ -36,24 +36,41 @@ def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> N
36
36
  assert response_data["geode_object_type"] == "PointSet3D"
37
37
 
38
38
  # Test with missing parameters
39
- test_utils.test_route_wrong_params(client, route, lambda: point_data.copy())
39
+ test_utils.test_route_wrong_params(client, route, lambda: copy.deepcopy(point_data))
40
+
41
+
42
+ def test_create_point_set_multiple(client: FlaskClient) -> None:
43
+ """Test the creation of a point set with multiple points."""
44
+ route: str = "/opengeodeweb_back/create/point_set"
45
+ data = {
46
+ "name": "multiple_points",
47
+ "points": [
48
+ {"x": 1.0, "y": 2.0, "z": 3.0},
49
+ {"x": 4.0, "y": 5.0, "z": 6.0},
50
+ {"x": 7.0, "y": 8.0, "z": 9.0},
51
+ ],
52
+ }
53
+ response = client.post(route, json=data)
54
+ assert response.status_code == 200
55
+
56
+ response_data = response.get_json()
57
+ assert response_data["name"] == data["name"]
58
+ assert response_data["geode_object_type"] == "PointSet3D"
40
59
 
41
60
 
42
61
  def test_create_point_with_invalid_data(client: FlaskClient) -> None:
43
62
  """Test the point creation endpoint with invalid data."""
44
- route: str = "/opengeodeweb_back/create/point"
63
+ route: str = "/opengeodeweb_back/create/point_set"
45
64
 
46
65
  # Test with non-numeric coordinates
47
66
  invalid_data: test_utils.JsonData = {
48
67
  "name": "invalid_point",
49
- "x": "not_a_number",
50
- "y": 2.0,
51
- "z": 3.0,
68
+ "points": [{"x": "not_a_number", "y": 2.0, "z": 3.0}],
52
69
  }
53
70
  response = client.post(route, json=invalid_data)
54
71
  assert response.status_code == 400
55
72
 
56
73
  # Test with missing coordinates
57
- invalid_data = {"name": "invalid_point", "y": 2.0, "z": 3.0}
74
+ invalid_data = {"name": "invalid_point", "points": [{"y": 2.0, "z": 3.0}]}
58
75
  response = client.post(route, json=invalid_data)
59
76
  assert response.status_code == 400
@@ -583,12 +583,10 @@ def test_import_project_route(client: FlaskClient, tmp_path: Path) -> None:
583
583
 
584
584
 
585
585
  def test_save_viewable_workflow_from_object(client: FlaskClient) -> None:
586
- route = "/opengeodeweb_back/create/point"
586
+ route = "/opengeodeweb_back/create/point_set"
587
587
  point_data = {
588
588
  "name": "workflow_point_3d",
589
- "x": 0.0,
590
- "y": 0.0,
591
- "z": 0.0,
589
+ "points": [{"x": 0.0, "y": 0.0, "z": 0.0}],
592
590
  }
593
591
 
594
592
  response = client.post(route, json=point_data)
@@ -1,22 +0,0 @@
1
- {
2
- "route": "/point",
3
- "methods": ["POST"],
4
- "type": "object",
5
- "properties": {
6
- "name": {
7
- "type": "string",
8
- "minLength": 1
9
- },
10
- "x": {
11
- "type": "number"
12
- },
13
- "y": {
14
- "type": "number"
15
- },
16
- "z": {
17
- "type": "number"
18
- }
19
- },
20
- "required": ["name", "x", "y", "z"],
21
- "additionalProperties": false
22
- }