OpenGeodeWeb-Back 6.5.2rc8__tar.gz → 6.6.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.
- {opengeodeweb_back-6.5.2rc8/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.6.0}/PKG-INFO +2 -2
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/pyproject.toml +1 -1
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/requirements.txt +1 -1
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +2 -2
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +4 -2
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
- opengeodeweb_back-6.6.0/src/opengeodeweb_back/routes/create/blueprint_create.py +64 -0
- opengeodeweb_back-6.6.0/src/opengeodeweb_back/routes/create/schemas/__init__.py +2 -0
- opengeodeweb_back-6.6.0/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +38 -0
- opengeodeweb_back-6.6.0/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +23 -0
- opengeodeweb_back-6.6.0/src/opengeodeweb_back/routes/create/schemas/point_set.json +27 -0
- opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/schemas/point.py → opengeodeweb_back-6.6.0/src/opengeodeweb_back/routes/create/schemas/point_set.py +10 -1
- opengeodeweb_back-6.6.0/tests/test_create_routes.py +110 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/tests/test_routes.py +2 -4
- opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -38
- opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -1
- opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/schemas/point.json +0 -22
- opengeodeweb_back-6.5.2rc8/tests/test_create_routes.py +0 -59
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/LICENSE +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/README.md +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/setup.cfg +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/__init__.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/app.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/app_config.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_functions.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/py.typed +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/test_utils.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/utils_functions.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/tests/test_geode_functions.py +0 -0
- {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/tests/test_utils_functions.py +0 -0
{opengeodeweb_back-6.5.2rc8/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.6.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenGeodeWeb-Back
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.6.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
|
|
@@ -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.
|
|
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.
|
|
7
|
+
version = "6.6.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"
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenGeodeWeb-Back
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.6.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
|
|
@@ -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.
|
|
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>
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt
RENAMED
|
@@ -52,8 +52,10 @@ 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/
|
|
56
|
-
src/opengeodeweb_back/routes/create/schemas/
|
|
55
|
+
src/opengeodeweb_back/routes/create/schemas/edged_curve.json
|
|
56
|
+
src/opengeodeweb_back/routes/create/schemas/edged_curve.py
|
|
57
|
+
src/opengeodeweb_back/routes/create/schemas/point_set.json
|
|
58
|
+
src/opengeodeweb_back/routes/create/schemas/point_set.py
|
|
57
59
|
src/opengeodeweb_back/routes/schemas/__init__.py
|
|
58
60
|
src/opengeodeweb_back/routes/schemas/allowed_files.json
|
|
59
61
|
src/opengeodeweb_back/routes/schemas/allowed_files.py
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Standard library imports
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
# Third party imports
|
|
5
|
+
import flask
|
|
6
|
+
import opengeode
|
|
7
|
+
from opengeodeweb_microservice.schemas import get_schemas_dict
|
|
8
|
+
|
|
9
|
+
# Local application imports
|
|
10
|
+
from opengeodeweb_back import geode_functions, utils_functions
|
|
11
|
+
import opengeodeweb_back.routes.create.schemas as schemas
|
|
12
|
+
from opengeodeweb_back.geode_objects.geode_point_set3d import GeodePointSet3D
|
|
13
|
+
from opengeodeweb_back.geode_objects.geode_edged_curve3d import GeodeEdgedCurve3D
|
|
14
|
+
|
|
15
|
+
routes = flask.Blueprint("create", __name__, url_prefix="/create")
|
|
16
|
+
schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@routes.route(
|
|
20
|
+
schemas_dict["point_set"]["route"],
|
|
21
|
+
methods=schemas_dict["point_set"]["methods"],
|
|
22
|
+
)
|
|
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)
|
|
28
|
+
|
|
29
|
+
pointset = GeodePointSet3D()
|
|
30
|
+
builder = pointset.builder()
|
|
31
|
+
builder.set_name(params.name)
|
|
32
|
+
for point in params.points:
|
|
33
|
+
builder.create_point(opengeode.Point3D([point.x, point.y, point.z]))
|
|
34
|
+
|
|
35
|
+
result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
|
|
36
|
+
pointset
|
|
37
|
+
)
|
|
38
|
+
return flask.make_response(result, 200)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@routes.route(
|
|
42
|
+
schemas_dict["edged_curve"]["route"],
|
|
43
|
+
methods=schemas_dict["edged_curve"]["methods"],
|
|
44
|
+
)
|
|
45
|
+
def edged_curve() -> flask.Response:
|
|
46
|
+
"""Endpoint to create an edged curve in 3D space."""
|
|
47
|
+
json_data = utils_functions.validate_request(
|
|
48
|
+
flask.request, schemas_dict["edged_curve"]
|
|
49
|
+
)
|
|
50
|
+
params = schemas.EdgedCurve.from_dict(json_data)
|
|
51
|
+
|
|
52
|
+
edged_curve_obj = GeodeEdgedCurve3D()
|
|
53
|
+
builder = edged_curve_obj.builder()
|
|
54
|
+
builder.set_name(params.name)
|
|
55
|
+
for point in params.points:
|
|
56
|
+
builder.create_point(opengeode.Point3D([point.x, point.y, point.z]))
|
|
57
|
+
|
|
58
|
+
for edge in params.edges:
|
|
59
|
+
builder.create_edge_with_vertices(edge[0], edge[1])
|
|
60
|
+
|
|
61
|
+
result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
|
|
62
|
+
edged_curve_obj
|
|
63
|
+
)
|
|
64
|
+
return flask.make_response(result, 200)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/edged_curve",
|
|
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": "EdgedCurvePoint",
|
|
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": 2
|
|
24
|
+
},
|
|
25
|
+
"edges": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"items": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": { "type": "integer" },
|
|
30
|
+
"minItems": 2,
|
|
31
|
+
"maxItems": 2
|
|
32
|
+
},
|
|
33
|
+
"minItems": 1
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": ["name", "points", "edges"],
|
|
37
|
+
"additionalProperties": false
|
|
38
|
+
}
|
|
@@ -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 EdgedCurvePoint(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 EdgedCurve(DataClassJsonMixin):
|
|
18
|
+
def __post_init__(self) -> None:
|
|
19
|
+
print(self, flush=True)
|
|
20
|
+
|
|
21
|
+
edges: List[List[int]]
|
|
22
|
+
name: str
|
|
23
|
+
points: List[EdgedCurvePoint]
|
|
@@ -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]
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Standard library imports
|
|
2
|
+
import copy
|
|
3
|
+
|
|
4
|
+
# Third party imports
|
|
5
|
+
import pytest
|
|
6
|
+
from flask.testing import FlaskClient
|
|
7
|
+
|
|
8
|
+
# Local application imports
|
|
9
|
+
from opengeodeweb_back import test_utils
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.fixture
|
|
13
|
+
def point_data() -> test_utils.JsonData:
|
|
14
|
+
return {"name": "test_point", "points": [{"x": 1.0, "y": 2.0, "z": 3.0}]}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.fixture
|
|
18
|
+
def curve_data() -> test_utils.JsonData:
|
|
19
|
+
return {
|
|
20
|
+
"name": "test_curve",
|
|
21
|
+
"points": [{"x": 0.0, "y": 0.0, "z": 0.0}, {"x": 1.0, "y": 1.0, "z": 1.0}],
|
|
22
|
+
"edges": [[0, 1]],
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> None:
|
|
27
|
+
"""Test the creation of a point with valid data."""
|
|
28
|
+
route: str = "/opengeodeweb_back/create/point_set"
|
|
29
|
+
|
|
30
|
+
# Test with all required data
|
|
31
|
+
response = client.post(route, json=point_data)
|
|
32
|
+
assert response.status_code == 200
|
|
33
|
+
|
|
34
|
+
# Verify response data
|
|
35
|
+
response_data = response.get_json()
|
|
36
|
+
assert "viewable_file" in response_data
|
|
37
|
+
assert "id" in response_data
|
|
38
|
+
assert "name" in response_data
|
|
39
|
+
assert "native_file" in response_data
|
|
40
|
+
assert "viewer_type" in response_data
|
|
41
|
+
assert "geode_object_type" in response_data
|
|
42
|
+
|
|
43
|
+
assert response_data["name"] == point_data["name"]
|
|
44
|
+
assert response_data["viewer_type"] == "mesh"
|
|
45
|
+
assert response_data["geode_object_type"] == "PointSet3D"
|
|
46
|
+
|
|
47
|
+
# Test with missing parameters
|
|
48
|
+
test_utils.test_route_wrong_params(client, route, lambda: copy.deepcopy(point_data))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def test_create_point_set_multiple(client: FlaskClient) -> None:
|
|
52
|
+
"""Test the creation of a point set with multiple points."""
|
|
53
|
+
route: str = "/opengeodeweb_back/create/point_set"
|
|
54
|
+
data = {
|
|
55
|
+
"name": "multiple_points",
|
|
56
|
+
"points": [
|
|
57
|
+
{"x": 1.0, "y": 2.0, "z": 3.0},
|
|
58
|
+
{"x": 4.0, "y": 5.0, "z": 6.0},
|
|
59
|
+
{"x": 7.0, "y": 8.0, "z": 9.0},
|
|
60
|
+
],
|
|
61
|
+
}
|
|
62
|
+
response = client.post(route, json=data)
|
|
63
|
+
assert response.status_code == 200
|
|
64
|
+
|
|
65
|
+
response_data = response.get_json()
|
|
66
|
+
assert response_data["name"] == data["name"]
|
|
67
|
+
assert response_data["geode_object_type"] == "PointSet3D"
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def test_create_point_with_invalid_data(client: FlaskClient) -> None:
|
|
71
|
+
"""Test the point creation endpoint with invalid data."""
|
|
72
|
+
route: str = "/opengeodeweb_back/create/point_set"
|
|
73
|
+
|
|
74
|
+
# Test with non-numeric coordinates
|
|
75
|
+
invalid_data: test_utils.JsonData = {
|
|
76
|
+
"name": "invalid_point",
|
|
77
|
+
"points": [{"x": "not_a_number", "y": 2.0, "z": 3.0}],
|
|
78
|
+
}
|
|
79
|
+
response = client.post(route, json=invalid_data)
|
|
80
|
+
assert response.status_code == 400
|
|
81
|
+
|
|
82
|
+
# Test with missing coordinates
|
|
83
|
+
invalid_data = {"name": "invalid_point", "points": [{"y": 2.0, "z": 3.0}]}
|
|
84
|
+
response = client.post(route, json=invalid_data)
|
|
85
|
+
assert response.status_code == 400
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def test_create_curve(client: FlaskClient, curve_data: test_utils.JsonData) -> None:
|
|
89
|
+
"""Test the creation of a curve with valid data."""
|
|
90
|
+
route: str = "/opengeodeweb_back/create/edged_curve"
|
|
91
|
+
|
|
92
|
+
# Test with all required data
|
|
93
|
+
response = client.post(route, json=curve_data)
|
|
94
|
+
assert response.status_code == 200
|
|
95
|
+
|
|
96
|
+
# Verify response data
|
|
97
|
+
response_data = response.get_json()
|
|
98
|
+
assert "viewable_file" in response_data
|
|
99
|
+
assert "id" in response_data
|
|
100
|
+
assert "name" in response_data
|
|
101
|
+
assert "native_file" in response_data
|
|
102
|
+
assert "viewer_type" in response_data
|
|
103
|
+
assert "geode_object_type" in response_data
|
|
104
|
+
|
|
105
|
+
assert response_data["name"] == curve_data["name"]
|
|
106
|
+
assert response_data["viewer_type"] == "mesh"
|
|
107
|
+
assert response_data["geode_object_type"] == "EdgedCurve3D"
|
|
108
|
+
|
|
109
|
+
# Test with missing parameters
|
|
110
|
+
test_utils.test_route_wrong_params(client, route, lambda: copy.deepcopy(curve_data))
|
|
@@ -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/
|
|
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,38 +0,0 @@
|
|
|
1
|
-
# Standard library imports
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
# Third party imports
|
|
5
|
-
import flask
|
|
6
|
-
import opengeode
|
|
7
|
-
from opengeodeweb_microservice.schemas import get_schemas_dict
|
|
8
|
-
|
|
9
|
-
# Local application imports
|
|
10
|
-
from opengeodeweb_back import geode_functions, utils_functions
|
|
11
|
-
import opengeodeweb_back.routes.create.schemas as schemas
|
|
12
|
-
from opengeodeweb_back.geode_objects.geode_point_set3d import GeodePointSet3D
|
|
13
|
-
from opengeodeweb_back.geode_objects.geode_edged_curve3d import GeodeEdgedCurve3D
|
|
14
|
-
|
|
15
|
-
routes = flask.Blueprint("create", __name__, url_prefix="/create")
|
|
16
|
-
schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@routes.route(
|
|
20
|
-
schemas_dict["point"]["route"],
|
|
21
|
-
methods=schemas_dict["point"]["methods"],
|
|
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)
|
|
27
|
-
|
|
28
|
-
# Create the point
|
|
29
|
-
pointset = GeodePointSet3D()
|
|
30
|
-
builder = pointset.builder()
|
|
31
|
-
builder.set_name(params.name)
|
|
32
|
-
builder.create_point(opengeode.Point3D([params.x, params.y, params.z]))
|
|
33
|
-
|
|
34
|
-
# Save and get info
|
|
35
|
-
result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
|
|
36
|
-
pointset
|
|
37
|
-
)
|
|
38
|
-
return flask.make_response(result, 200)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .point import *
|
|
@@ -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
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# Standard library imports
|
|
2
|
-
import uuid
|
|
3
|
-
|
|
4
|
-
# Third party imports
|
|
5
|
-
import pytest
|
|
6
|
-
from flask.testing import FlaskClient
|
|
7
|
-
|
|
8
|
-
# Local application imports
|
|
9
|
-
from opengeodeweb_back import test_utils
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@pytest.fixture
|
|
13
|
-
def point_data() -> test_utils.JsonData:
|
|
14
|
-
return {"name": "test_point", "x": 1.0, "y": 2.0, "z": 3.0}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> None:
|
|
18
|
-
"""Test the creation of a point with valid data."""
|
|
19
|
-
route: str = "/opengeodeweb_back/create/point"
|
|
20
|
-
|
|
21
|
-
# Test with all required data
|
|
22
|
-
response = client.post(route, json=point_data)
|
|
23
|
-
assert response.status_code == 200
|
|
24
|
-
|
|
25
|
-
# Verify response data
|
|
26
|
-
response_data = response.get_json()
|
|
27
|
-
assert "viewable_file" in response_data
|
|
28
|
-
assert "id" in response_data
|
|
29
|
-
assert "name" in response_data
|
|
30
|
-
assert "native_file" in response_data
|
|
31
|
-
assert "viewer_type" in response_data
|
|
32
|
-
assert "geode_object_type" in response_data
|
|
33
|
-
|
|
34
|
-
assert response_data["name"] == point_data["name"]
|
|
35
|
-
assert response_data["viewer_type"] == "mesh"
|
|
36
|
-
assert response_data["geode_object_type"] == "PointSet3D"
|
|
37
|
-
|
|
38
|
-
# Test with missing parameters
|
|
39
|
-
test_utils.test_route_wrong_params(client, route, lambda: point_data.copy())
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def test_create_point_with_invalid_data(client: FlaskClient) -> None:
|
|
43
|
-
"""Test the point creation endpoint with invalid data."""
|
|
44
|
-
route: str = "/opengeodeweb_back/create/point"
|
|
45
|
-
|
|
46
|
-
# Test with non-numeric coordinates
|
|
47
|
-
invalid_data: test_utils.JsonData = {
|
|
48
|
-
"name": "invalid_point",
|
|
49
|
-
"x": "not_a_number",
|
|
50
|
-
"y": 2.0,
|
|
51
|
-
"z": 3.0,
|
|
52
|
-
}
|
|
53
|
-
response = client.post(route, json=invalid_data)
|
|
54
|
-
assert response.status_code == 400
|
|
55
|
-
|
|
56
|
-
# Test with missing coordinates
|
|
57
|
-
invalid_data = {"name": "invalid_point", "y": 2.0, "z": 3.0}
|
|
58
|
-
response = client.post(route, json=invalid_data)
|
|
59
|
-
assert response.status_code == 400
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/OpenGeodeWeb_Back.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/geode_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/kill.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/routes/schemas/ping.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0}/src/opengeodeweb_back/utils_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|