Skip to content

Commit 999b39d

Browse files
committed
float and type attribute_metadata
1 parent ddd2667 commit 999b39d

2 files changed

Lines changed: 13 additions & 10 deletions

File tree

src/opengeodeweb_back/routes/blueprint_routes.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import flask
99
import werkzeug
1010
import zipfile
11+
import opengeode as og
1112
import opengeode_io as og_io
1213
import opengeode_geosciences as og_geosciences
1314
import opengeode_geosciencesio as og_geosciencesio
@@ -264,25 +265,27 @@ def texture_coordinates() -> flask.Response:
264265
return flask.make_response({"texture_coordinates": texture_coordinates}, 200)
265266

266267

267-
def attributes_metadata(manager: Any) -> dict[str, Any]:
268-
metadata: dict[str, Any] = {}
268+
def attributes_metadata(manager: og.AttributeManager) -> dict[str, list[float]]:
269+
metadata: dict[str, list[float]] = {}
269270
for name in manager.attribute_names():
270271
attribute = manager.find_generic_attribute(name)
271272
if not attribute.is_genericable():
272-
metadata[name] = [-1, -1]
273+
metadata[name] = [-1.0, -1.0]
273274
continue
274275
min_value = None
275276
max_value = None
276277
nb_items = attribute.nb_items()
277278
for i in range(nb_items):
278279
generic_value = attribute.generic_value(i)
279-
if not isinstance(generic_value, (int, float)):
280-
continue
281280
if min_value is None or generic_value < min_value:
282281
min_value = generic_value
283282
if max_value is None or generic_value > max_value:
284283
max_value = generic_value
285-
metadata[name] = [min_value, max_value] if min_value is not None else [-1, -1]
284+
metadata[name] = (
285+
[min_value, max_value]
286+
if min_value is not None and max_value is not None
287+
else [-1.0, -1.0]
288+
)
286289
return metadata
287290

288291

@@ -364,11 +367,11 @@ def polyhedron_attribute_names() -> flask.Response:
364367
geode_object = geode_functions.load_geode_object(params.id)
365368
if not isinstance(geode_object, GeodeSolidMesh3D):
366369
flask.abort(400, f"{params.id} is not a GeodeSolidMesh")
367-
attributemanager = geode_object.polyhedron_attribute_manager()
370+
attribute_manager = geode_object.polyhedron_attribute_manager()
368371
return flask.make_response(
369372
{
370-
"polyhedron_attribute_names": attributemanager.attribute_names(),
371-
"polyhedron_attribute_metadata": attributes_metadata(attributemanager),
373+
"polyhedron_attribute_names": attribute_manager.attribute_names(),
374+
"polyhedron_attribute_metadata": attributes_metadata(attribute_manager),
372375
},
373376
200,
374377
)

tests/test_routes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def test_polyhedron_attribute_names(client: FlaskClient, test_id: str) -> None:
341341
assert polyhedron_attribute_name in polyhedron_attribute_metadata
342342

343343
if "Range" in polyhedron_attribute_metadata:
344-
assert polyhedron_attribute_metadata["Range"] == [0, 579]
344+
assert polyhedron_attribute_metadata["Range"] == [0.0, 579.0]
345345

346346

347347
def test_edge_attribute_names(client: FlaskClient, test_id: str) -> None:

0 commit comments

Comments
 (0)