OpenGeodeWeb-Back 6.8.1rc1__tar.gz → 6.9.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.8.1rc1/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.9.0}/PKG-INFO +1 -1
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/pyproject.toml +1 -1
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +1 -1
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +8 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/blueprint_routes.py +110 -1
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/__init__.py +4 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json +17 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py +11 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json +17 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py +11 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json +17 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py +11 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json +17 -0
- opengeodeweb_back-6.9.0/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py +11 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/utils_functions.py +3 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/tests/test_routes.py +91 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/LICENSE +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/README.md +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/requirements.txt +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/setup.cfg +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/requires.txt +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/__init__.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/app.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/app_config.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_functions.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/py.typed +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/test_utils.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/tests/test_create_routes.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/tests/test_geode_functions.py +0 -0
- {opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/tests/test_utils_functions.py +0 -0
{opengeodeweb_back-6.8.1rc1/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.9.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.9.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
|
|
@@ -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.9.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.8.1rc1 → opengeodeweb_back-6.9.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.9.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
|
{opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt
RENAMED
|
@@ -83,6 +83,14 @@ src/opengeodeweb_back/routes/schemas/kill.json
|
|
|
83
83
|
src/opengeodeweb_back/routes/schemas/kill.py
|
|
84
84
|
src/opengeodeweb_back/routes/schemas/missing_files.json
|
|
85
85
|
src/opengeodeweb_back/routes/schemas/missing_files.py
|
|
86
|
+
src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json
|
|
87
|
+
src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py
|
|
88
|
+
src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json
|
|
89
|
+
src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py
|
|
90
|
+
src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json
|
|
91
|
+
src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py
|
|
92
|
+
src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json
|
|
93
|
+
src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py
|
|
86
94
|
src/opengeodeweb_back/routes/schemas/ping.json
|
|
87
95
|
src/opengeodeweb_back/routes/schemas/ping.py
|
|
88
96
|
src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json
|
|
@@ -3,7 +3,7 @@ import os
|
|
|
3
3
|
import time
|
|
4
4
|
import shutil
|
|
5
5
|
import math
|
|
6
|
-
from typing import Any
|
|
6
|
+
from typing import Any, Union, get_args
|
|
7
7
|
|
|
8
8
|
# Third party imports
|
|
9
9
|
import flask
|
|
@@ -24,6 +24,7 @@ from opengeodeweb_back import geode_functions, utils_functions
|
|
|
24
24
|
from opengeodeweb_back.routes import schemas
|
|
25
25
|
from opengeodeweb_back.geode_objects import geode_objects
|
|
26
26
|
from opengeodeweb_back.geode_objects.geode_mesh import GeodeMesh
|
|
27
|
+
from opengeodeweb_back.geode_objects.geode_model import GeodeModel
|
|
27
28
|
from opengeodeweb_back.geode_objects.geode_graph import GeodeGraph
|
|
28
29
|
from opengeodeweb_back.geode_objects.geode_grid2d import GeodeGrid2D
|
|
29
30
|
from opengeodeweb_back.geode_objects.geode_grid3d import GeodeGrid3D
|
|
@@ -31,6 +32,16 @@ from opengeodeweb_back.geode_objects.geode_surface_mesh2d import GeodeSurfaceMes
|
|
|
31
32
|
from opengeodeweb_back.geode_objects.geode_surface_mesh3d import GeodeSurfaceMesh3D
|
|
32
33
|
from opengeodeweb_back.geode_objects.geode_solid_mesh3d import GeodeSolidMesh3D
|
|
33
34
|
|
|
35
|
+
ComponentMesh = Union[
|
|
36
|
+
og.Corner2D,
|
|
37
|
+
og.Corner3D,
|
|
38
|
+
og.Line2D,
|
|
39
|
+
og.Line3D,
|
|
40
|
+
og.Surface2D,
|
|
41
|
+
og.Surface3D,
|
|
42
|
+
og.Block3D,
|
|
43
|
+
]
|
|
44
|
+
|
|
34
45
|
routes = flask.Blueprint("routes", __name__, url_prefix="/opengeodeweb_back")
|
|
35
46
|
|
|
36
47
|
schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
|
|
@@ -387,6 +398,104 @@ def edge_attribute_names() -> flask.Response:
|
|
|
387
398
|
)
|
|
388
399
|
|
|
389
400
|
|
|
401
|
+
@routes.route(
|
|
402
|
+
schemas_dict["model_component_vertex_attribute_names"]["route"],
|
|
403
|
+
methods=schemas_dict["model_component_vertex_attribute_names"]["methods"],
|
|
404
|
+
)
|
|
405
|
+
def model_component_vertex_attribute_names() -> flask.Response:
|
|
406
|
+
json_data = utils_functions.validate_request(
|
|
407
|
+
flask.request, schemas_dict["model_component_vertex_attribute_names"]
|
|
408
|
+
)
|
|
409
|
+
params = schemas.ModelComponentVertexAttributeNames.from_dict(json_data)
|
|
410
|
+
geode_object = geode_functions.load_geode_object(params.id)
|
|
411
|
+
if not isinstance(geode_object, GeodeModel):
|
|
412
|
+
flask.abort(400, f"{params.id} is not a GeodeModel")
|
|
413
|
+
component = geode_object.component(og.uuid(params.component_id))
|
|
414
|
+
if not isinstance(component, get_args(ComponentMesh)):
|
|
415
|
+
flask.abort(400, f"{params.component_id} is not a valid ComponentMesh")
|
|
416
|
+
mesh = component.mesh()
|
|
417
|
+
attribute_manager = mesh.vertex_attribute_manager()
|
|
418
|
+
return flask.make_response(
|
|
419
|
+
{"attributes": attributes_metadata(attribute_manager)},
|
|
420
|
+
200,
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
@routes.route(
|
|
425
|
+
schemas_dict["model_component_edge_attribute_names"]["route"],
|
|
426
|
+
methods=schemas_dict["model_component_edge_attribute_names"]["methods"],
|
|
427
|
+
)
|
|
428
|
+
def model_component_edge_attribute_names() -> flask.Response:
|
|
429
|
+
json_data = utils_functions.validate_request(
|
|
430
|
+
flask.request, schemas_dict["model_component_edge_attribute_names"]
|
|
431
|
+
)
|
|
432
|
+
params = schemas.ModelComponentEdgeAttributeNames.from_dict(json_data)
|
|
433
|
+
geode_object = geode_functions.load_geode_object(params.id)
|
|
434
|
+
if not isinstance(geode_object, GeodeModel):
|
|
435
|
+
flask.abort(400, f"{params.id} is not a GeodeModel")
|
|
436
|
+
component = geode_object.component(og.uuid(params.component_id))
|
|
437
|
+
if not isinstance(component, get_args(ComponentMesh)):
|
|
438
|
+
flask.abort(400, f"{params.component_id} is not a valid ComponentMesh")
|
|
439
|
+
mesh = component.mesh()
|
|
440
|
+
if not hasattr(mesh, "edge_attribute_manager"):
|
|
441
|
+
flask.abort(400, "Component does not have edges")
|
|
442
|
+
attribute_manager = mesh.edge_attribute_manager()
|
|
443
|
+
return flask.make_response(
|
|
444
|
+
{"attributes": attributes_metadata(attribute_manager)},
|
|
445
|
+
200,
|
|
446
|
+
)
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
@routes.route(
|
|
450
|
+
schemas_dict["model_component_polygon_attribute_names"]["route"],
|
|
451
|
+
methods=schemas_dict["model_component_polygon_attribute_names"]["methods"],
|
|
452
|
+
)
|
|
453
|
+
def model_component_polygon_attribute_names() -> flask.Response:
|
|
454
|
+
json_data = utils_functions.validate_request(
|
|
455
|
+
flask.request, schemas_dict["model_component_polygon_attribute_names"]
|
|
456
|
+
)
|
|
457
|
+
params = schemas.ModelComponentPolygonAttributeNames.from_dict(json_data)
|
|
458
|
+
geode_object = geode_functions.load_geode_object(params.id)
|
|
459
|
+
if not isinstance(geode_object, GeodeModel):
|
|
460
|
+
flask.abort(400, f"{params.id} is not a GeodeModel")
|
|
461
|
+
component = geode_object.component(og.uuid(params.component_id))
|
|
462
|
+
if not isinstance(component, get_args(ComponentMesh)):
|
|
463
|
+
flask.abort(400, f"{params.component_id} is not a valid ComponentMesh")
|
|
464
|
+
mesh = component.mesh()
|
|
465
|
+
if not hasattr(mesh, "polygon_attribute_manager"):
|
|
466
|
+
flask.abort(400, "Component does not have polygons")
|
|
467
|
+
attribute_manager = mesh.polygon_attribute_manager()
|
|
468
|
+
return flask.make_response(
|
|
469
|
+
{"attributes": attributes_metadata(attribute_manager)},
|
|
470
|
+
200,
|
|
471
|
+
)
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
@routes.route(
|
|
475
|
+
schemas_dict["model_component_polyhedron_attribute_names"]["route"],
|
|
476
|
+
methods=schemas_dict["model_component_polyhedron_attribute_names"]["methods"],
|
|
477
|
+
)
|
|
478
|
+
def model_component_polyhedron_attribute_names() -> flask.Response:
|
|
479
|
+
json_data = utils_functions.validate_request(
|
|
480
|
+
flask.request, schemas_dict["model_component_polyhedron_attribute_names"]
|
|
481
|
+
)
|
|
482
|
+
params = schemas.ModelComponentPolyhedronAttributeNames.from_dict(json_data)
|
|
483
|
+
geode_object = geode_functions.load_geode_object(params.id)
|
|
484
|
+
if not isinstance(geode_object, GeodeModel):
|
|
485
|
+
flask.abort(400, f"{params.id} is not a GeodeModel")
|
|
486
|
+
component = geode_object.component(og.uuid(params.component_id))
|
|
487
|
+
if not isinstance(component, get_args(ComponentMesh)):
|
|
488
|
+
flask.abort(400, f"{params.component_id} is not a valid ComponentMesh")
|
|
489
|
+
mesh = component.mesh()
|
|
490
|
+
if not hasattr(mesh, "polyhedron_attribute_manager"):
|
|
491
|
+
flask.abort(400, "Component does not have polyhedra")
|
|
492
|
+
attribute_manager = mesh.polyhedron_attribute_manager()
|
|
493
|
+
return flask.make_response(
|
|
494
|
+
{"attributes": attributes_metadata(attribute_manager)},
|
|
495
|
+
200,
|
|
496
|
+
)
|
|
497
|
+
|
|
498
|
+
|
|
390
499
|
@routes.route(
|
|
391
500
|
schemas_dict["ping"]["route"],
|
|
392
501
|
methods=schemas_dict["ping"]["methods"],
|
|
@@ -5,6 +5,10 @@ from .save_viewable_file import *
|
|
|
5
5
|
from .polyhedron_attribute_names import *
|
|
6
6
|
from .polygon_attribute_names import *
|
|
7
7
|
from .ping import *
|
|
8
|
+
from .model_component_vertex_attribute_names import *
|
|
9
|
+
from .model_component_polyhedron_attribute_names import *
|
|
10
|
+
from .model_component_polygon_attribute_names import *
|
|
11
|
+
from .model_component_edge_attribute_names import *
|
|
8
12
|
from .missing_files import *
|
|
9
13
|
from .kill import *
|
|
10
14
|
from .inspect_file import *
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/model_component_edge_attribute_names",
|
|
3
|
+
"methods": ["POST"],
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1
|
|
9
|
+
},
|
|
10
|
+
"component_id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["id", "component_id"],
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/model_component_polygon_attribute_names",
|
|
3
|
+
"methods": ["POST"],
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1
|
|
9
|
+
},
|
|
10
|
+
"component_id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["id", "component_id"],
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from dataclasses_json import DataClassJsonMixin
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class ModelComponentPolygonAttributeNames(DataClassJsonMixin):
|
|
7
|
+
def __post_init__(self) -> None:
|
|
8
|
+
print(self, flush=True)
|
|
9
|
+
|
|
10
|
+
component_id: str
|
|
11
|
+
id: str
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/model_component_polyhedron_attribute_names",
|
|
3
|
+
"methods": ["POST"],
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1
|
|
9
|
+
},
|
|
10
|
+
"component_id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["id", "component_id"],
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from dataclasses_json import DataClassJsonMixin
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class ModelComponentPolyhedronAttributeNames(DataClassJsonMixin):
|
|
7
|
+
def __post_init__(self) -> None:
|
|
8
|
+
print(self, flush=True)
|
|
9
|
+
|
|
10
|
+
component_id: str
|
|
11
|
+
id: str
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/model_component_vertex_attribute_names",
|
|
3
|
+
"methods": ["POST"],
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1
|
|
9
|
+
},
|
|
10
|
+
"component_id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["id", "component_id"],
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from dataclasses_json import DataClassJsonMixin
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@dataclass
|
|
6
|
+
class ModelComponentVertexAttributeNames(DataClassJsonMixin):
|
|
7
|
+
def __post_init__(self) -> None:
|
|
8
|
+
print(self, flush=True)
|
|
9
|
+
|
|
10
|
+
component_id: str
|
|
11
|
+
id: str
|
{opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/utils_functions.py
RENAMED
|
@@ -25,6 +25,7 @@ from . import geode_functions
|
|
|
25
25
|
from .geode_objects import geode_objects
|
|
26
26
|
from .geode_objects.geode_model import GeodeModel
|
|
27
27
|
from .geode_objects.geode_object import GeodeObject
|
|
28
|
+
from .geode_objects.geode_vertex_set import GeodeVertexSet
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
def increment_request_counter(current_app: flask.Flask) -> None:
|
|
@@ -312,6 +313,8 @@ def save_all_viewables_and_return_info(
|
|
|
312
313
|
"binary_light_viewable": binary_light_viewable.decode("utf-8"),
|
|
313
314
|
"geode_object_type": data.geode_object,
|
|
314
315
|
}
|
|
316
|
+
if isinstance(geode_object, GeodeVertexSet):
|
|
317
|
+
response["nb_vertices"] = geode_object.vertex_set.nb_vertices()
|
|
315
318
|
if isinstance(geode_object, GeodeModel):
|
|
316
319
|
response |= model_components(data.id, geode_object, data.viewable_file)
|
|
317
320
|
return response
|
|
@@ -596,3 +596,94 @@ def test_save_viewable_workflow_from_object(client: FlaskClient) -> None:
|
|
|
596
596
|
assert isinstance(data_id, str) and len(data_id) > 0
|
|
597
597
|
assert response.get_json()["geode_object_type"] == "PointSet3D"
|
|
598
598
|
assert response.get_json()["viewable_file"].endswith(".vtp")
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
def _load_brep_components(client: FlaskClient) -> tuple[str, dict[str, list[str]]]:
|
|
602
|
+
"""Load cube.og_brep and return (model_id, {component_type: [geode_id, ...]})."""
|
|
603
|
+
response = test_save_viewable_file(client, "BRep", "cube.og_brep")
|
|
604
|
+
assert response.status_code == 200
|
|
605
|
+
model_id: str = response.get_json()["id"]
|
|
606
|
+
mesh_components: list[dict] = response.get_json()["mesh_components"]
|
|
607
|
+
by_type: dict[str, list[str]] = {}
|
|
608
|
+
for mc in mesh_components:
|
|
609
|
+
component_type = mc["type"]
|
|
610
|
+
by_type.setdefault(component_type, []).append(mc["geode_id"])
|
|
611
|
+
return model_id, by_type
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
def _assert_attributes_response(response) -> None:
|
|
615
|
+
assert response.status_code == 200
|
|
616
|
+
attributes = response.get_json()["attributes"]
|
|
617
|
+
assert isinstance(attributes, list)
|
|
618
|
+
for attribute in attributes:
|
|
619
|
+
assert "attribute_name" in attribute
|
|
620
|
+
assert "min_value" in attribute
|
|
621
|
+
assert "max_value" in attribute
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
def test_model_component_vertex_attribute_names(client: FlaskClient) -> None:
|
|
625
|
+
route = "/opengeodeweb_back/model_component_vertex_attribute_names"
|
|
626
|
+
model_id, by_type = _load_brep_components(client)
|
|
627
|
+
|
|
628
|
+
corner_ids = by_type.get("Corner", [])
|
|
629
|
+
assert len(corner_ids) > 0, "cube.og_brep should have Corner components"
|
|
630
|
+
component_id = corner_ids[0]
|
|
631
|
+
|
|
632
|
+
response = client.post(route, json={"id": model_id, "component_id": component_id})
|
|
633
|
+
_assert_attributes_response(response)
|
|
634
|
+
|
|
635
|
+
def get_full_data() -> test_utils.JsonData:
|
|
636
|
+
return {"id": model_id, "component_id": component_id}
|
|
637
|
+
|
|
638
|
+
test_utils.test_route_wrong_params(client, route, get_full_data)
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
def test_model_component_edge_attribute_names(client: FlaskClient) -> None:
|
|
642
|
+
route = "/opengeodeweb_back/model_component_edge_attribute_names"
|
|
643
|
+
model_id, by_type = _load_brep_components(client)
|
|
644
|
+
|
|
645
|
+
line_ids = by_type.get("Line", [])
|
|
646
|
+
assert len(line_ids) > 0, "cube.og_brep should have Line components"
|
|
647
|
+
component_id = line_ids[0]
|
|
648
|
+
|
|
649
|
+
response = client.post(route, json={"id": model_id, "component_id": component_id})
|
|
650
|
+
_assert_attributes_response(response)
|
|
651
|
+
|
|
652
|
+
def get_full_data() -> test_utils.JsonData:
|
|
653
|
+
return {"id": model_id, "component_id": component_id}
|
|
654
|
+
|
|
655
|
+
test_utils.test_route_wrong_params(client, route, get_full_data)
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
def test_model_component_polygon_attribute_names(client: FlaskClient) -> None:
|
|
659
|
+
route = "/opengeodeweb_back/model_component_polygon_attribute_names"
|
|
660
|
+
model_id, by_type = _load_brep_components(client)
|
|
661
|
+
|
|
662
|
+
surface_ids = by_type.get("Surface", [])
|
|
663
|
+
assert len(surface_ids) > 0, "cube.og_brep should have Surface components"
|
|
664
|
+
component_id = surface_ids[0]
|
|
665
|
+
|
|
666
|
+
response = client.post(route, json={"id": model_id, "component_id": component_id})
|
|
667
|
+
_assert_attributes_response(response)
|
|
668
|
+
|
|
669
|
+
def get_full_data() -> test_utils.JsonData:
|
|
670
|
+
return {"id": model_id, "component_id": component_id}
|
|
671
|
+
|
|
672
|
+
test_utils.test_route_wrong_params(client, route, get_full_data)
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
def test_model_component_polyhedron_attribute_names(client: FlaskClient) -> None:
|
|
676
|
+
route = "/opengeodeweb_back/model_component_polyhedron_attribute_names"
|
|
677
|
+
model_id, by_type = _load_brep_components(client)
|
|
678
|
+
|
|
679
|
+
block_ids = by_type.get("Block", [])
|
|
680
|
+
assert len(block_ids) > 0, "cube.og_brep should have Block components"
|
|
681
|
+
component_id = block_ids[0]
|
|
682
|
+
|
|
683
|
+
response = client.post(route, json={"id": model_id, "component_id": component_id})
|
|
684
|
+
_assert_attributes_response(response)
|
|
685
|
+
|
|
686
|
+
def get_full_data() -> test_utils.JsonData:
|
|
687
|
+
return {"id": model_id, "component_id": component_id}
|
|
688
|
+
|
|
689
|
+
test_utils.test_route_wrong_params(client, route, get_full_data)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/OpenGeodeWeb_Back.egg-info/requires.txt
RENAMED
|
File without changes
|
{opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.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.8.1rc1 → opengeodeweb_back-6.9.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.0}/src/opengeodeweb_back/routes/schemas/kill.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.8.1rc1 → opengeodeweb_back-6.9.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|