OpenGeodeWeb-Back 6.4.0rc2__tar.gz → 6.5.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. {opengeodeweb_back-6.4.0rc2/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.5.0rc1}/PKG-INFO +2 -2
  2. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/requirements.txt +1 -1
  4. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +2 -2
  5. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
  6. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_brep.py +2 -2
  7. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +3 -0
  8. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_model.py +2 -1
  9. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_section.py +2 -2
  10. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +3 -0
  11. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/utils_functions.py +6 -2
  12. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/tests/test_routes.py +3 -9
  13. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/LICENSE +0 -0
  14. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/README.md +0 -0
  15. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/setup.cfg +0 -0
  16. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
  17. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  18. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  19. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  20. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/__init__.py +0 -0
  21. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/app.py +0 -0
  22. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/app_config.py +0 -0
  23. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_functions.py +0 -0
  24. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  25. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
  26. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
  27. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
  28. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
  29. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
  30. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  31. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  32. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  33. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  34. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  35. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  36. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
  37. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
  38. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
  39. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  40. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  41. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  42. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
  43. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
  44. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  45. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  46. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
  47. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
  48. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
  49. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  50. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  51. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  52. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
  53. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/py.typed +0 -0
  54. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  55. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
  56. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
  57. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/create/schemas/point.json +0 -0
  58. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/create/schemas/point.py +0 -0
  59. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
  60. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  61. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  62. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  63. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  64. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
  65. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  66. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
  67. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  68. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  69. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  70. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  71. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  72. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  73. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  74. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  75. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  76. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  77. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  78. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  79. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
  80. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  81. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  82. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  83. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  84. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  85. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  86. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  87. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  88. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  89. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  90. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  91. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
  92. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  93. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  94. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  95. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  96. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  97. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  98. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/src/opengeodeweb_back/test_utils.py +0 -0
  99. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/tests/test_create_routes.py +0 -0
  100. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/tests/test_geode_functions.py +0 -0
  101. {opengeodeweb_back-6.4.0rc2 → opengeodeweb_back-6.5.0rc1}/tests/test_utils_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.4.0rc2
3
+ Version: 6.5.0rc1
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -21,7 +21,7 @@ Requires-Dist: geode-viewables==3.3.5
21
21
  Requires-Dist: itsdangerous>=2
22
22
  Requires-Dist: jinja2>=3
23
23
  Requires-Dist: markupsafe>=3
24
- Requires-Dist: opengeode-core==16.3.0
24
+ Requires-Dist: opengeode-core==16.3.2
25
25
  Requires-Dist: opengeode-geosciences==9.5.11
26
26
  Requires-Dist: opengeode-geosciencesio==5.8.11
27
27
  Requires-Dist: opengeode-inspector==6.8.18
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OpenGeodeWeb-Back"
7
- version = "6.4.0-rc.2"
7
+ version = "6.5.0-rc.1"
8
8
  dynamic = ["dependencies"]
9
9
  authors = [{ name = "Geode-solutions", email = "team-web@geode-solutions.com" }]
10
10
  description = "OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem"
@@ -31,7 +31,7 @@ markupsafe>=3
31
31
  # flask
32
32
  # jinja2
33
33
  # werkzeug
34
- opengeode-core==16.3.0
34
+ opengeode-core==16.3.2
35
35
  # via
36
36
  # -r requirements.in
37
37
  # geode-common
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.4.0rc2
3
+ Version: 6.5.0rc1
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -21,7 +21,7 @@ Requires-Dist: geode-viewables==3.3.5
21
21
  Requires-Dist: itsdangerous>=2
22
22
  Requires-Dist: jinja2>=3
23
23
  Requires-Dist: markupsafe>=3
24
- Requires-Dist: opengeode-core==16.3.0
24
+ Requires-Dist: opengeode-core==16.3.2
25
25
  Requires-Dist: opengeode-geosciences==9.5.11
26
26
  Requires-Dist: opengeode-geosciencesio==5.8.11
27
27
  Requires-Dist: opengeode-inspector==6.8.18
@@ -8,7 +8,7 @@ geode-viewables==3.3.5
8
8
  itsdangerous>=2
9
9
  jinja2>=3
10
10
  markupsafe>=3
11
- opengeode-core==16.3.0
11
+ opengeode-core==16.3.2
12
12
  opengeode-geosciences==9.5.11
13
13
  opengeode-geosciencesio==5.8.11
14
14
  opengeode-inspector==6.8.18
@@ -88,8 +88,8 @@ class GeodeBRep(GeodeModel):
88
88
  def items(self, id: og.uuid) -> list[og.ComponentID]:
89
89
  return self.brep.items(id)
90
90
 
91
- def component_name(self, id: og.uuid) -> str | None:
92
- return self.brep.brep_component(id).name()
91
+ def component(self, id: og.uuid) -> og.Component3D:
92
+ return self.brep.brep_component(id)
93
93
 
94
94
  def inspect(self) -> og_inspector.BRepInspectionResult:
95
95
  return og_inspector.inspect_brep(self.brep)
@@ -76,3 +76,6 @@ class GeodeCrossSection(GeodeSection):
76
76
 
77
77
  def component_name(self, id: og.uuid) -> str | None:
78
78
  return self.cross_section.cross_section_component(id).name()
79
+
80
+ def component(self, id: og.uuid) -> og.Component2D:
81
+ return self.cross_section.cross_section_component(id)
@@ -1,6 +1,7 @@
1
1
  # Standard library imports
2
2
  from __future__ import annotations
3
3
  from abc import abstractmethod
4
+ from typing import Union
4
5
 
5
6
  # Third party imports
6
7
  import opengeode as og
@@ -37,4 +38,4 @@ class GeodeModel(GeodeObject):
37
38
  def items(self, id: og.uuid) -> list[og.ComponentID]: ...
38
39
 
39
40
  @abstractmethod
40
- def component_name(self, id: og.uuid) -> str | None: ...
41
+ def component(self, id: og.uuid) -> og.Component2D | og.Component3D: ...
@@ -90,8 +90,8 @@ class GeodeSection(GeodeModel):
90
90
  def items(self, id: og.uuid) -> list[og.ComponentID]:
91
91
  return self.section.items(id)
92
92
 
93
- def component_name(self, id: og.uuid) -> str | None:
94
- return self.section.section_component(id).name()
93
+ def component(self, id: og.uuid) -> og.Component2D:
94
+ return self.section.section_component(id)
95
95
 
96
96
  def inspect(self) -> og_inspector.SectionInspectionResult:
97
97
  return og_inspector.inspect_section(self.section)
@@ -78,3 +78,6 @@ class GeodeStructuralModel(GeodeBRep):
78
78
 
79
79
  def component_name(self, id: og.uuid) -> str | None:
80
80
  return self.structural_model.structural_model_component(id).name()
81
+
82
+ def component(self, id: og.uuid) -> og.Component3D:
83
+ return self.structural_model.structural_model_component(id)
@@ -213,8 +213,9 @@ def model_components(
213
213
  for mesh_component, ids in model_mesh_components.items():
214
214
  component_type = mesh_component.get()
215
215
  for id in ids:
216
+ component = model.component(id)
216
217
  geode_id = id.string()
217
- component_name = model.component_name(id)
218
+ component_name = component.name()
218
219
  if not component_name:
219
220
  component_name = geode_id
220
221
  viewer_id = uuid_to_flat_index[geode_id]
@@ -229,6 +230,7 @@ def model_components(
229
230
  "type": component_type,
230
231
  "boundaries": boundaries_uuid,
231
232
  "internals": internals_uuid,
233
+ "is_active": component.is_active(),
232
234
  }
233
235
  mesh_components.append(mesh_component_object)
234
236
 
@@ -237,8 +239,9 @@ def model_components(
237
239
  for collection_component, ids in model_collection_components.items():
238
240
  component_type = collection_component.get()
239
241
  for id in ids:
242
+ component = model.component(id)
240
243
  geode_id = id.string()
241
- component_name = model.component_name(id)
244
+ component_name = component.name()
242
245
  if not component_name:
243
246
  component_name = geode_id
244
247
  items = model.items(id)
@@ -248,6 +251,7 @@ def model_components(
248
251
  "name": component_name,
249
252
  "type": component_type,
250
253
  "items": items_uuid,
254
+ "is_active": component.is_active(),
251
255
  }
252
256
  collection_components.append(collection_component_object)
253
257
  return {
@@ -431,33 +431,26 @@ def test_geode_object_inheritance(client: FlaskClient) -> None:
431
431
 
432
432
  def test_model_components(client: FlaskClient) -> None:
433
433
  geode_object_type = "BRep"
434
- filename = "LS2.og_brep"
434
+ filename = "cube.og_brep"
435
435
  response = test_save_viewable_file(client, geode_object_type, filename)
436
436
  assert response.status_code == 200
437
437
  assert "mesh_components" in response.get_json()
438
438
  mesh_components = response.get_json()["mesh_components"]
439
439
  assert isinstance(mesh_components, list)
440
440
  assert len(mesh_components) > 0
441
- name_is_uuid = False
442
- name_is_not_uuid = False
443
441
  for mesh_component in mesh_components:
444
442
  assert isinstance(mesh_component, object)
445
443
  assert isinstance(mesh_component["geode_id"], str)
446
444
  assert isinstance(mesh_component["viewer_id"], int)
447
445
  assert isinstance(mesh_component["name"], str)
448
446
  assert isinstance(mesh_component["type"], str)
449
- if mesh_component["name"] == mesh_component["geode_id"]:
450
- name_is_uuid = True
451
- else:
452
- name_is_not_uuid = True
453
447
  assert isinstance(mesh_component["boundaries"], list)
454
448
  for boundary_uuid in mesh_component["boundaries"]:
455
449
  assert isinstance(boundary_uuid, str)
456
450
  assert isinstance(mesh_component["internals"], list)
457
451
  for internal_uuid in mesh_component["internals"]:
458
452
  assert isinstance(internal_uuid, str)
459
- assert name_is_uuid is True
460
- assert name_is_not_uuid is True
453
+ assert isinstance(mesh_component["is_active"], bool)
461
454
  assert "collection_components" in response.get_json()
462
455
  collection_components = response.get_json()["collection_components"]
463
456
  assert isinstance(collection_components, list)
@@ -468,6 +461,7 @@ def test_model_components(client: FlaskClient) -> None:
468
461
  assert isinstance(collection_component["items"], list)
469
462
  for item_uuid in collection_component["items"]:
470
463
  assert isinstance(item_uuid, str)
464
+ assert isinstance(collection_component["is_active"], bool)
471
465
 
472
466
 
473
467
  def test_export_project_route(client: FlaskClient, tmp_path: Path) -> None: