OpenGeodeWeb-Back 6.13.0rc2__tar.gz → 6.13.0rc3__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.13.0rc2 → opengeodeweb_back-6.13.0rc3}/PKG-INFO +1 -1
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/pyproject.toml +1 -1
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/OpenGeodeWeb_Back.egg-info/PKG-INFO +1 -1
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/blueprint_routes.py +32 -13
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/tests/test_routes.py +46 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/LICENSE +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/README.md +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/requirements.txt +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/setup.cfg +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/OpenGeodeWeb_Back.egg-info/requires.txt +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/__init__.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/app.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/app_config.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_functions.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_horizon_stack3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/py.typed +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/validate.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/validate.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/test_utils.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/utils_functions.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/tests/test_create_routes.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/tests/test_geode_functions.py +0 -0
- {opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/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.13.
|
|
3
|
+
Version: 6.13.0rc3
|
|
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.13.0-rc.
|
|
7
|
+
version = "6.13.0-rc.3"
|
|
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.13.0rc2 → opengeodeweb_back-6.13.0rc3}/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.13.
|
|
3
|
+
Version: 6.13.0rc3
|
|
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
|
|
@@ -270,23 +270,42 @@ def extract_valid_attribute_values(
|
|
|
270
270
|
attribute_name: str,
|
|
271
271
|
item_index: int,
|
|
272
272
|
) -> tuple[list[float], bool]:
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
)
|
|
276
|
-
if not isinstance(attribute_ids_matching_name, list):
|
|
277
|
-
return [], False
|
|
278
|
-
component_attribute = attribute_manager.find_generic_attribute(
|
|
279
|
-
attribute_ids_matching_name[0]
|
|
280
|
-
)
|
|
281
|
-
if component_attribute is None:
|
|
273
|
+
attribute_ids = attribute_manager.attribute_ids_matching_name(attribute_name)
|
|
274
|
+
if not isinstance(attribute_ids, list):
|
|
282
275
|
return [], False
|
|
283
|
-
|
|
276
|
+
attribute = attribute_manager.find_generic_attribute(attribute_ids[0])
|
|
277
|
+
if (
|
|
278
|
+
attribute is None
|
|
279
|
+
or not attribute.is_genericable()
|
|
280
|
+
or not attribute.properties().transferable
|
|
281
|
+
):
|
|
284
282
|
return [], False
|
|
283
|
+
|
|
284
|
+
nb_items = attribute.nb_items()
|
|
285
|
+
default_values = getattr(attribute, "default_values", None)
|
|
286
|
+
no_value = default_values().no_value if default_values else None
|
|
287
|
+
if no_value is None and (
|
|
288
|
+
"Point" in attribute.type() or "Vector" in attribute.type()
|
|
289
|
+
):
|
|
290
|
+
no_value = [0.0] * nb_items
|
|
291
|
+
|
|
292
|
+
value_getter = getattr(
|
|
293
|
+
attribute,
|
|
294
|
+
"value",
|
|
295
|
+
lambda element_index: [
|
|
296
|
+
attribute.generic_item_value(element_index, i) for i in range(nb_items)
|
|
297
|
+
],
|
|
298
|
+
)
|
|
299
|
+
|
|
285
300
|
valid_values: list[float] = []
|
|
286
301
|
has_nan = False
|
|
287
302
|
for element_index in range(attribute_manager.nb_elements()):
|
|
288
|
-
value =
|
|
289
|
-
if
|
|
303
|
+
value = attribute.generic_item_value(element_index, item_index)
|
|
304
|
+
if (
|
|
305
|
+
value is None
|
|
306
|
+
or math.isnan(value)
|
|
307
|
+
or (no_value is not None and value_getter(element_index) == no_value)
|
|
308
|
+
):
|
|
290
309
|
has_nan = True
|
|
291
310
|
else:
|
|
292
311
|
valid_values.append(value)
|
|
@@ -306,7 +325,7 @@ def attributes_metadata(
|
|
|
306
325
|
attribute_name = attribute.name()
|
|
307
326
|
if attribute_name is None:
|
|
308
327
|
continue
|
|
309
|
-
if not attribute.is_genericable():
|
|
328
|
+
if not attribute.is_genericable() or not attribute.properties().transferable:
|
|
310
329
|
continue
|
|
311
330
|
nb_items = attribute.nb_items()
|
|
312
331
|
min_values, max_values = [], []
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import os
|
|
3
3
|
|
|
4
4
|
# Third party imports
|
|
5
|
+
import opengeode as og
|
|
5
6
|
from werkzeug.datastructures import FileStorage
|
|
6
7
|
from flask.testing import FlaskClient
|
|
7
8
|
from werkzeug.test import TestResponse
|
|
@@ -13,6 +14,7 @@ import zipfile
|
|
|
13
14
|
from opengeodeweb_microservice.database.data import Data
|
|
14
15
|
from opengeodeweb_microservice.database.connection import get_session
|
|
15
16
|
from opengeodeweb_back import geode_functions, test_utils
|
|
17
|
+
from opengeodeweb_back.routes.blueprint_routes import extract_valid_attribute_values
|
|
16
18
|
from opengeodeweb_back.geode_objects.geode_polygonal_surface3d import (
|
|
17
19
|
GeodePolygonalSurface3D,
|
|
18
20
|
)
|
|
@@ -777,3 +779,47 @@ def test_model_component_polyhedron_attribute_names(client: FlaskClient) -> None
|
|
|
777
779
|
return {"id": model_id, "component_ids": block_ids}
|
|
778
780
|
|
|
779
781
|
test_utils.test_route_wrong_params(client, route, get_full_data)
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
def test_extract_valid_attribute_values_with_sentinel_no_value() -> None:
|
|
785
|
+
mesh = og.TriangulatedSurface3D.create()
|
|
786
|
+
builder = og.TriangulatedSurfaceBuilder3D.create(mesh)
|
|
787
|
+
vertex_0 = builder.create_point(og.Point3D([0, 0, 0]))
|
|
788
|
+
vertex_1 = builder.create_point(og.Point3D([1, 0, 0]))
|
|
789
|
+
builder.create_triangle([vertex_0, vertex_1, vertex_0])
|
|
790
|
+
|
|
791
|
+
attribute_manager = mesh.vertex_attribute_manager()
|
|
792
|
+
values_config = og.AttributeValuesDouble()
|
|
793
|
+
values_config.no_value = -999.0
|
|
794
|
+
attribute_id = attribute_manager.create_attribute_variable_double(
|
|
795
|
+
"variable_double", values_config, og.AttributeProperties()
|
|
796
|
+
)
|
|
797
|
+
attribute = attribute_manager.find_attribute_variable_double(attribute_id)
|
|
798
|
+
attribute.set_value(vertex_0, -999.0)
|
|
799
|
+
attribute.set_value(vertex_1, 42.0)
|
|
800
|
+
|
|
801
|
+
valid_values, has_nan = extract_valid_attribute_values(
|
|
802
|
+
attribute_manager, "variable_double", 0
|
|
803
|
+
)
|
|
804
|
+
assert has_nan is True
|
|
805
|
+
assert valid_values == [42.0]
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
def test_extract_valid_attribute_values_with_non_transferable_attribute() -> None:
|
|
809
|
+
mesh = og.TriangulatedSurface3D.create()
|
|
810
|
+
builder = og.TriangulatedSurfaceBuilder3D.create(mesh)
|
|
811
|
+
vertex_0 = builder.create_point(og.Point3D([0, 0, 0]))
|
|
812
|
+
builder.create_triangle([vertex_0, vertex_0, vertex_0])
|
|
813
|
+
|
|
814
|
+
attribute_manager = mesh.vertex_attribute_manager()
|
|
815
|
+
properties = og.AttributeProperties()
|
|
816
|
+
properties.transferable = False
|
|
817
|
+
attribute_manager.create_attribute_variable_double(
|
|
818
|
+
"internal_attribute", og.AttributeValuesDouble(), properties
|
|
819
|
+
)
|
|
820
|
+
|
|
821
|
+
valid_values, has_nan = extract_valid_attribute_values(
|
|
822
|
+
attribute_manager, "internal_attribute", 0
|
|
823
|
+
)
|
|
824
|
+
assert has_nan is False
|
|
825
|
+
assert valid_values == []
|
|
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.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/app_config.py
RENAMED
|
File without changes
|
{opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/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
|
|
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.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/test_utils.py
RENAMED
|
File without changes
|
{opengeodeweb_back-6.13.0rc2 → opengeodeweb_back-6.13.0rc3}/src/opengeodeweb_back/utils_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|