OpenGeodeWeb-Back 6.15.2rc1__tar.gz → 6.16.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.
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/PKG-INFO +9 -9
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/pyproject.toml +1 -1
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/requirements.txt +8 -8
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/OpenGeodeWeb_Back.egg-info/PKG-INFO +9 -9
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +8 -2
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/OpenGeodeWeb_Back.egg-info/requires.txt +8 -8
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_functions.py +6 -3
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_brep.py +11 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/blueprint_routes.py +107 -31
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/__init__.py +4 -1
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.json +10 -3
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.py +2 -1
- opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/apply_time_series.json +29 -0
- opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/apply_time_series.py +31 -0
- opengeodeweb_back-6.15.2rc1/src/opengeodeweb_back/routes/schemas/missing_files.json → opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/data_missing_files.json +2 -2
- opengeodeweb_back-6.15.2rc1/src/opengeodeweb_back/routes/schemas/missing_files.py → opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/data_missing_files.py +6 -6
- opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/time_series_allowed_objects.json +32 -0
- opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/time_series_allowed_objects.py +31 -0
- opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/time_series_missing_files.json +43 -0
- opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/time_series_missing_files.py +33 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/tests/test_routes.py +117 -3
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/LICENSE +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/README.md +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/setup.cfg +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/__init__.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/app.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/app_config.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_horizon_stack3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/py.typed +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/__init__.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/__init__.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/validate.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/validate.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/test_utils.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/typed_route.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/utils_functions.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/tests/test_create_routes.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/tests/test_events.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/tests/test_geode_functions.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/tests/test_typed_routes.py +0 -0
- {opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.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.
|
|
3
|
+
Version: 6.16.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
|
|
@@ -17,17 +17,17 @@ Requires-Dist: click==8.*
|
|
|
17
17
|
Requires-Dist: defusedxml==0.7.1
|
|
18
18
|
Requires-Dist: flask[async]==3.*
|
|
19
19
|
Requires-Dist: flask-cors==6.0.2
|
|
20
|
-
Requires-Dist: geode-common==33.26.
|
|
21
|
-
Requires-Dist: geode-viewables==3.5.
|
|
20
|
+
Requires-Dist: geode-common==33.26.11
|
|
21
|
+
Requires-Dist: geode-viewables==3.5.4
|
|
22
22
|
Requires-Dist: itsdangerous==2.*
|
|
23
23
|
Requires-Dist: jinja2==3.*
|
|
24
24
|
Requires-Dist: markupsafe==3.*
|
|
25
|
-
Requires-Dist: opengeode-core==
|
|
26
|
-
Requires-Dist: opengeode-geosciences==9.8.
|
|
27
|
-
Requires-Dist: opengeode-geosciencesio==5.
|
|
28
|
-
Requires-Dist: opengeode-inspector==6.12.
|
|
29
|
-
Requires-Dist: opengeode-inspector-geosciences==1.2.
|
|
30
|
-
Requires-Dist: opengeode-io==7.11.
|
|
25
|
+
Requires-Dist: opengeode-core==19.0.2
|
|
26
|
+
Requires-Dist: opengeode-geosciences==9.8.3
|
|
27
|
+
Requires-Dist: opengeode-geosciencesio==5.13.1
|
|
28
|
+
Requires-Dist: opengeode-inspector==6.12.4
|
|
29
|
+
Requires-Dist: opengeode-inspector-geosciences==1.2.4
|
|
30
|
+
Requires-Dist: opengeode-io==7.11.2
|
|
31
31
|
Requires-Dist: types-defusedxml==0.7.0.20260504
|
|
32
32
|
Requires-Dist: werkzeug==3.1.8
|
|
33
33
|
Requires-Dist: opengeodeweb-microservice==1.*,>=1.3.2
|
|
@@ -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.16.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"
|
|
@@ -18,11 +18,11 @@ flask[async]==3.*
|
|
|
18
18
|
# flask-cors
|
|
19
19
|
flask-cors==6.0.2
|
|
20
20
|
# via -r requirements.in
|
|
21
|
-
geode-common==33.26.
|
|
21
|
+
geode-common==33.26.11
|
|
22
22
|
# via
|
|
23
23
|
# -r requirements.in
|
|
24
24
|
# geode-viewables
|
|
25
|
-
geode-viewables==3.5.
|
|
25
|
+
geode-viewables==3.5.4
|
|
26
26
|
# via -r requirements.in
|
|
27
27
|
itsdangerous==2.*
|
|
28
28
|
# via flask
|
|
@@ -33,7 +33,7 @@ markupsafe==3.*
|
|
|
33
33
|
# flask
|
|
34
34
|
# jinja2
|
|
35
35
|
# werkzeug
|
|
36
|
-
opengeode-core==
|
|
36
|
+
opengeode-core==19.0.2
|
|
37
37
|
# via
|
|
38
38
|
# -r requirements.in
|
|
39
39
|
# geode-common
|
|
@@ -43,21 +43,21 @@ opengeode-core==18.5.1
|
|
|
43
43
|
# opengeode-inspector
|
|
44
44
|
# opengeode-inspector-geosciences
|
|
45
45
|
# opengeode-io
|
|
46
|
-
opengeode-geosciences==9.8.
|
|
46
|
+
opengeode-geosciences==9.8.3
|
|
47
47
|
# via
|
|
48
48
|
# -r requirements.in
|
|
49
49
|
# geode-viewables
|
|
50
50
|
# opengeode-geosciencesio
|
|
51
51
|
# opengeode-inspector-geosciences
|
|
52
|
-
opengeode-geosciencesio==5.
|
|
52
|
+
opengeode-geosciencesio==5.13.1
|
|
53
53
|
# via -r requirements.in
|
|
54
|
-
opengeode-inspector==6.12.
|
|
54
|
+
opengeode-inspector==6.12.4
|
|
55
55
|
# via
|
|
56
56
|
# -r requirements.in
|
|
57
57
|
# opengeode-inspector-geosciences
|
|
58
|
-
opengeode-inspector-geosciences==1.2.
|
|
58
|
+
opengeode-inspector-geosciences==1.2.4
|
|
59
59
|
# via -r requirements.in
|
|
60
|
-
opengeode-io==7.11.
|
|
60
|
+
opengeode-io==7.11.2
|
|
61
61
|
# via
|
|
62
62
|
# -r requirements.in
|
|
63
63
|
# geode-viewables
|
{opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/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.16.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
|
|
@@ -17,17 +17,17 @@ Requires-Dist: click==8.*
|
|
|
17
17
|
Requires-Dist: defusedxml==0.7.1
|
|
18
18
|
Requires-Dist: flask[async]==3.*
|
|
19
19
|
Requires-Dist: flask-cors==6.0.2
|
|
20
|
-
Requires-Dist: geode-common==33.26.
|
|
21
|
-
Requires-Dist: geode-viewables==3.5.
|
|
20
|
+
Requires-Dist: geode-common==33.26.11
|
|
21
|
+
Requires-Dist: geode-viewables==3.5.4
|
|
22
22
|
Requires-Dist: itsdangerous==2.*
|
|
23
23
|
Requires-Dist: jinja2==3.*
|
|
24
24
|
Requires-Dist: markupsafe==3.*
|
|
25
|
-
Requires-Dist: opengeode-core==
|
|
26
|
-
Requires-Dist: opengeode-geosciences==9.8.
|
|
27
|
-
Requires-Dist: opengeode-geosciencesio==5.
|
|
28
|
-
Requires-Dist: opengeode-inspector==6.12.
|
|
29
|
-
Requires-Dist: opengeode-inspector-geosciences==1.2.
|
|
30
|
-
Requires-Dist: opengeode-io==7.11.
|
|
25
|
+
Requires-Dist: opengeode-core==19.0.2
|
|
26
|
+
Requires-Dist: opengeode-geosciences==9.8.3
|
|
27
|
+
Requires-Dist: opengeode-geosciencesio==5.13.1
|
|
28
|
+
Requires-Dist: opengeode-inspector==6.12.4
|
|
29
|
+
Requires-Dist: opengeode-inspector-geosciences==1.2.4
|
|
30
|
+
Requires-Dist: opengeode-io==7.11.2
|
|
31
31
|
Requires-Dist: types-defusedxml==0.7.0.20260504
|
|
32
32
|
Requires-Dist: werkzeug==3.1.8
|
|
33
33
|
Requires-Dist: opengeodeweb-microservice==1.*,>=1.3.2
|
|
@@ -67,8 +67,12 @@ src/opengeodeweb_back/routes/schemas/allowed_files.json
|
|
|
67
67
|
src/opengeodeweb_back/routes/schemas/allowed_files.py
|
|
68
68
|
src/opengeodeweb_back/routes/schemas/allowed_objects.json
|
|
69
69
|
src/opengeodeweb_back/routes/schemas/allowed_objects.py
|
|
70
|
+
src/opengeodeweb_back/routes/schemas/apply_time_series.json
|
|
71
|
+
src/opengeodeweb_back/routes/schemas/apply_time_series.py
|
|
70
72
|
src/opengeodeweb_back/routes/schemas/cell_attribute_names.json
|
|
71
73
|
src/opengeodeweb_back/routes/schemas/cell_attribute_names.py
|
|
74
|
+
src/opengeodeweb_back/routes/schemas/data_missing_files.json
|
|
75
|
+
src/opengeodeweb_back/routes/schemas/data_missing_files.py
|
|
72
76
|
src/opengeodeweb_back/routes/schemas/edge_attribute_names.json
|
|
73
77
|
src/opengeodeweb_back/routes/schemas/edge_attribute_names.py
|
|
74
78
|
src/opengeodeweb_back/routes/schemas/export_project.json
|
|
@@ -83,8 +87,6 @@ src/opengeodeweb_back/routes/schemas/import_project.json
|
|
|
83
87
|
src/opengeodeweb_back/routes/schemas/import_project.py
|
|
84
88
|
src/opengeodeweb_back/routes/schemas/kill.json
|
|
85
89
|
src/opengeodeweb_back/routes/schemas/kill.py
|
|
86
|
-
src/opengeodeweb_back/routes/schemas/missing_files.json
|
|
87
|
-
src/opengeodeweb_back/routes/schemas/missing_files.py
|
|
88
90
|
src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json
|
|
89
91
|
src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py
|
|
90
92
|
src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json
|
|
@@ -103,6 +105,10 @@ src/opengeodeweb_back/routes/schemas/save_viewable_file.json
|
|
|
103
105
|
src/opengeodeweb_back/routes/schemas/save_viewable_file.py
|
|
104
106
|
src/opengeodeweb_back/routes/schemas/texture_coordinates.json
|
|
105
107
|
src/opengeodeweb_back/routes/schemas/texture_coordinates.py
|
|
108
|
+
src/opengeodeweb_back/routes/schemas/time_series_allowed_objects.json
|
|
109
|
+
src/opengeodeweb_back/routes/schemas/time_series_allowed_objects.py
|
|
110
|
+
src/opengeodeweb_back/routes/schemas/time_series_missing_files.json
|
|
111
|
+
src/opengeodeweb_back/routes/schemas/time_series_missing_files.py
|
|
106
112
|
src/opengeodeweb_back/routes/schemas/upload_file.json
|
|
107
113
|
src/opengeodeweb_back/routes/schemas/upload_file.py
|
|
108
114
|
src/opengeodeweb_back/routes/schemas/validate.json
|
|
@@ -4,17 +4,17 @@ click==8.*
|
|
|
4
4
|
defusedxml==0.7.1
|
|
5
5
|
flask[async]==3.*
|
|
6
6
|
flask-cors==6.0.2
|
|
7
|
-
geode-common==33.26.
|
|
8
|
-
geode-viewables==3.5.
|
|
7
|
+
geode-common==33.26.11
|
|
8
|
+
geode-viewables==3.5.4
|
|
9
9
|
itsdangerous==2.*
|
|
10
10
|
jinja2==3.*
|
|
11
11
|
markupsafe==3.*
|
|
12
|
-
opengeode-core==
|
|
13
|
-
opengeode-geosciences==9.8.
|
|
14
|
-
opengeode-geosciencesio==5.
|
|
15
|
-
opengeode-inspector==6.12.
|
|
16
|
-
opengeode-inspector-geosciences==1.2.
|
|
17
|
-
opengeode-io==7.11.
|
|
12
|
+
opengeode-core==19.0.2
|
|
13
|
+
opengeode-geosciences==9.8.3
|
|
14
|
+
opengeode-geosciencesio==5.13.1
|
|
15
|
+
opengeode-inspector==6.12.4
|
|
16
|
+
opengeode-inspector-geosciences==1.2.4
|
|
17
|
+
opengeode-io==7.11.2
|
|
18
18
|
types-defusedxml==0.7.0.20260504
|
|
19
19
|
werkzeug==3.1.8
|
|
20
20
|
opengeodeweb-microservice==1.*,>=1.3.2
|
{opengeodeweb_back-6.15.2rc1 → opengeodeweb_back-6.16.0rc1}/src/opengeodeweb_back/geode_functions.py
RENAMED
|
@@ -58,9 +58,12 @@ def get_data_info(data_id: str) -> Data:
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
def upload_file_path(filename: str) -> str:
|
|
61
|
-
upload_folder = flask.current_app.config["UPLOAD_FOLDER_PATH"]
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
upload_folder = Path(flask.current_app.config["UPLOAD_FOLDER_PATH"]).resolve()
|
|
62
|
+
segments = [werkzeug.utils.secure_filename(segment) for segment in filename.split("/")]
|
|
63
|
+
safe_segments = [segment for segment in segments if segment]
|
|
64
|
+
if not safe_segments:
|
|
65
|
+
flask.abort(400, f"Invalid filename: {filename}")
|
|
66
|
+
return str(upload_folder.joinpath(*safe_segments))
|
|
64
67
|
|
|
65
68
|
|
|
66
69
|
def geode_object_output_extensions(
|
|
@@ -57,6 +57,17 @@ class GeodeBRep(GeodeModel):
|
|
|
57
57
|
def additional_files(cls, filename: str) -> og.AdditionalFiles:
|
|
58
58
|
return og.brep_additional_files(filename)
|
|
59
59
|
|
|
60
|
+
@classmethod
|
|
61
|
+
def time_series_input_extensions(cls) -> list[str]:
|
|
62
|
+
return og.BRepTimeSeriesInputFactory.list_creators()
|
|
63
|
+
|
|
64
|
+
@classmethod
|
|
65
|
+
def time_series_additional_files(cls, filename: str) -> og.AdditionalFiles:
|
|
66
|
+
return og.brep_time_series_additional_files(filename)
|
|
67
|
+
|
|
68
|
+
def load_time_series(self, filename: str) -> None:
|
|
69
|
+
og.load_brep_time_series(self.brep, filename)
|
|
70
|
+
|
|
60
71
|
@override
|
|
61
72
|
@classmethod
|
|
62
73
|
def is_loadable(cls, filename: str) -> og.Percentage:
|
|
@@ -28,6 +28,7 @@ from sqlalchemy.exc import OperationalError
|
|
|
28
28
|
# Local application imports
|
|
29
29
|
from opengeodeweb_back import geode_functions, utils_functions
|
|
30
30
|
from opengeodeweb_back.geode_objects import geode_objects
|
|
31
|
+
from opengeodeweb_back.geode_objects.geode_brep import GeodeBRep
|
|
31
32
|
from opengeodeweb_back.geode_objects.geode_graph import GeodeGraph
|
|
32
33
|
from opengeodeweb_back.geode_objects.geode_grid2d import GeodeGrid2D
|
|
33
34
|
from opengeodeweb_back.geode_objects.geode_grid3d import GeodeGrid3D
|
|
@@ -42,6 +43,7 @@ from opengeodeweb_back.typed_route import parse_params, raw_route, typed_route
|
|
|
42
43
|
if TYPE_CHECKING:
|
|
43
44
|
from werkzeug.datastructures import FileStorage
|
|
44
45
|
|
|
46
|
+
|
|
45
47
|
ComponentMesh = (
|
|
46
48
|
og.Corner2D,
|
|
47
49
|
og.Corner3D,
|
|
@@ -62,11 +64,14 @@ routes = flask.Blueprint("routes", __name__, url_prefix="/opengeodeweb_back")
|
|
|
62
64
|
|
|
63
65
|
@typed_route(routes, schemas.allowed_files_route)
|
|
64
66
|
def allowed_files(_params: schemas.AllowedFiles) -> schemas.AllowedFilesResponse:
|
|
65
|
-
|
|
67
|
+
data_extensions: set[str] = set()
|
|
66
68
|
for geode_object in geode_objects.values():
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return schemas.AllowedFilesResponse(
|
|
69
|
+
data_extensions.update(geode_object.input_extensions())
|
|
70
|
+
# Time series files are applied on an existing BRep, not imported as data
|
|
71
|
+
return schemas.AllowedFilesResponse(
|
|
72
|
+
data_extensions=list(data_extensions),
|
|
73
|
+
time_series_extensions=GeodeBRep.time_series_input_extensions(),
|
|
74
|
+
)
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
def _write_stream(path: Path, stream: typing.IO[bytes], mode: str = "wb") -> None:
|
|
@@ -101,21 +106,23 @@ def upload_file() -> flask.Response:
|
|
|
101
106
|
file = flask.request.files["file"]
|
|
102
107
|
if file.filename is None:
|
|
103
108
|
flask.abort(400, "Filename is required")
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
# Only the name is kept: some multipart clients send their full local path.
|
|
110
|
+
# Relative paths (folder uploads) go through the raw upload below.
|
|
111
|
+
file_path = Path(geode_functions.upload_file_path(Path(file.filename).name))
|
|
112
|
+
file_path.parent.mkdir(parents=True, exist_ok=True)
|
|
106
113
|
file.save(file_path)
|
|
107
|
-
return _finalize_upload(
|
|
114
|
+
return _finalize_upload(file_path.name)
|
|
108
115
|
|
|
109
116
|
raw_filename = flask.request.args.get("filename")
|
|
110
117
|
if not raw_filename:
|
|
111
118
|
flask.abort(400, "Filename is required")
|
|
112
|
-
|
|
113
|
-
file_path =
|
|
119
|
+
file_path = Path(geode_functions.upload_file_path(raw_filename))
|
|
120
|
+
file_path.parent.mkdir(parents=True, exist_ok=True)
|
|
114
121
|
|
|
115
122
|
total_chunks = flask.request.args.get("total_chunks", type=int)
|
|
116
123
|
if total_chunks is None:
|
|
117
124
|
_write_stream(file_path, flask.request.stream)
|
|
118
|
-
return _finalize_upload(
|
|
125
|
+
return _finalize_upload(file_path.name)
|
|
119
126
|
|
|
120
127
|
chunk_index = flask.request.args.get("chunk_index", type=int)
|
|
121
128
|
if chunk_index is None or not 0 <= chunk_index < total_chunks:
|
|
@@ -127,7 +134,18 @@ def upload_file() -> flask.Response:
|
|
|
127
134
|
return _upload_response("Chunk received", 200)
|
|
128
135
|
|
|
129
136
|
part_path.replace(file_path)
|
|
130
|
-
return _finalize_upload(
|
|
137
|
+
return _finalize_upload(file_path.name)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
@typed_route(routes, schemas.time_series_allowed_objects_route)
|
|
141
|
+
def time_series_allowed_objects(
|
|
142
|
+
params: schemas.TimeSeriesAllowedObjects,
|
|
143
|
+
) -> schemas.TimeSeriesAllowedObjectsResponse:
|
|
144
|
+
extension = utils_functions.extension_from_filename(params.filename)
|
|
145
|
+
is_readable = extension in GeodeBRep.time_series_input_extensions()
|
|
146
|
+
return schemas.TimeSeriesAllowedObjectsResponse(
|
|
147
|
+
allowed_objects=[GeodeBRep.geode_object_type()] if is_readable else []
|
|
148
|
+
)
|
|
131
149
|
|
|
132
150
|
|
|
133
151
|
@typed_route(routes, schemas.allowed_objects_route)
|
|
@@ -149,28 +167,69 @@ def allowed_objects(
|
|
|
149
167
|
return schemas.AllowedObjectsResponse(allowed_objects=allowed_objects)
|
|
150
168
|
|
|
151
169
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
170
|
+
def _check_time_series_extension(filename: str) -> None:
|
|
171
|
+
extension = utils_functions.extension_from_filename(filename)
|
|
172
|
+
if extension not in GeodeBRep.time_series_input_extensions():
|
|
173
|
+
flask.abort(400, f"No time series reader for .{extension}")
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _resolved_path(file_path: str, main_file: Path) -> Path:
|
|
177
|
+
path = Path(file_path)
|
|
178
|
+
if not path.is_absolute():
|
|
179
|
+
path = main_file.parent / path
|
|
180
|
+
return path.resolve()
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def _path_relative_to_main_file(file_path: str, main_file: Path) -> str:
|
|
184
|
+
path = _resolved_path(file_path, main_file)
|
|
185
|
+
if path.is_relative_to(main_file.parent):
|
|
186
|
+
return path.relative_to(main_file.parent).as_posix()
|
|
187
|
+
return path.name
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def _missing_files(additional_files: og.AdditionalFiles, main_file: Path) -> dict[str, typing.Any]:
|
|
191
|
+
return {
|
|
192
|
+
"has_missing_files": any(
|
|
193
|
+
file.is_missing
|
|
194
|
+
for file in additional_files.mandatory_files + additional_files.optional_files
|
|
195
|
+
),
|
|
196
|
+
"mandatory_files": [
|
|
197
|
+
_path_relative_to_main_file(file.filename, main_file)
|
|
198
|
+
for file in additional_files.mandatory_files
|
|
199
|
+
if file.is_missing
|
|
200
|
+
],
|
|
201
|
+
"additional_files": [
|
|
202
|
+
_path_relative_to_main_file(file.filename, main_file)
|
|
203
|
+
for file in additional_files.optional_files
|
|
204
|
+
if file.is_missing
|
|
205
|
+
],
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
@typed_route(routes, schemas.data_missing_files_route)
|
|
210
|
+
def data_missing_files(params: schemas.DataMissingFiles) -> schemas.DataMissingFilesResponse:
|
|
211
|
+
file_path = Path(geode_functions.upload_file_path(params.filename))
|
|
155
212
|
geode_object = geode_functions.geode_object_from_string(params.geode_object_type)
|
|
156
|
-
additional_files = geode_object.additional_files(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
213
|
+
additional_files = geode_object.additional_files(str(file_path))
|
|
214
|
+
return schemas.DataMissingFilesResponse.from_dict(_missing_files(additional_files, file_path))
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
@typed_route(routes, schemas.time_series_missing_files_route)
|
|
218
|
+
def time_series_missing_files(
|
|
219
|
+
params: schemas.TimeSeriesMissingFiles,
|
|
220
|
+
) -> schemas.TimeSeriesMissingFilesResponse:
|
|
221
|
+
file_path = Path(geode_functions.upload_file_path(params.filename))
|
|
222
|
+
_check_time_series_extension(file_path.name)
|
|
223
|
+
additional_files = GeodeBRep.time_series_additional_files(str(file_path))
|
|
224
|
+
# Uploads always land under the time series file's folder:
|
|
225
|
+
# files referenced outside of it could never be provided
|
|
226
|
+
if any(
|
|
227
|
+
not _resolved_path(file.filename, file_path).is_relative_to(file_path.parent)
|
|
161
228
|
for file in additional_files.mandatory_files + additional_files.optional_files
|
|
162
|
-
)
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
additional_files_array = [
|
|
167
|
-
Path(file.filename).name for file in additional_files.optional_files if file.is_missing
|
|
168
|
-
]
|
|
169
|
-
|
|
170
|
-
return schemas.MissingFilesResponse(
|
|
171
|
-
has_missing_files=has_missing_files,
|
|
172
|
-
mandatory_files=mandatory_files,
|
|
173
|
-
additional_files=additional_files_array,
|
|
229
|
+
):
|
|
230
|
+
flask.abort(400, f"{file_path.name} references files outside its folder")
|
|
231
|
+
return schemas.TimeSeriesMissingFilesResponse.from_dict(
|
|
232
|
+
_missing_files(additional_files, file_path)
|
|
174
233
|
)
|
|
175
234
|
|
|
176
235
|
|
|
@@ -235,6 +294,23 @@ def save_viewable_file(
|
|
|
235
294
|
)
|
|
236
295
|
|
|
237
296
|
|
|
297
|
+
@typed_route(routes, schemas.apply_time_series_route)
|
|
298
|
+
def apply_time_series(
|
|
299
|
+
params: schemas.ApplyTimeSeries,
|
|
300
|
+
) -> schemas.ApplyTimeSeriesResponse:
|
|
301
|
+
data = geode_functions.get_data_info(params.id)
|
|
302
|
+
_check_time_series_extension(params.filename)
|
|
303
|
+
if data.geode_object != GeodeBRep.geode_object_type():
|
|
304
|
+
flask.abort(400, f"{data.geode_object} is not a BRep: time series cannot be applied")
|
|
305
|
+
geode_object = GeodeBRep.load(geode_functions.data_file_path(params.id, data.native_file))
|
|
306
|
+
# Applied in memory first: if OpenGeode fails, nothing is written.
|
|
307
|
+
geode_object.load_time_series(geode_functions.upload_file_path(params.filename))
|
|
308
|
+
utils_functions.save_all_viewables_and_return_info(
|
|
309
|
+
geode_object, data, geode_functions.data_file_path(params.id)
|
|
310
|
+
)
|
|
311
|
+
return schemas.ApplyTimeSeriesResponse()
|
|
312
|
+
|
|
313
|
+
|
|
238
314
|
@typed_route(routes, schemas.texture_coordinates_route)
|
|
239
315
|
def texture_coordinates(
|
|
240
316
|
params: schemas.TextureCoordinates,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from .vertex_attribute_names import *
|
|
2
2
|
from .validate import *
|
|
3
3
|
from .upload_file import *
|
|
4
|
+
from .time_series_missing_files import *
|
|
5
|
+
from .time_series_allowed_objects import *
|
|
4
6
|
from .texture_coordinates import *
|
|
5
7
|
from .save_viewable_file import *
|
|
6
8
|
from .polyhedron_attribute_names import *
|
|
@@ -10,7 +12,6 @@ from .model_component_vertex_attribute_names import *
|
|
|
10
12
|
from .model_component_polyhedron_attribute_names import *
|
|
11
13
|
from .model_component_polygon_attribute_names import *
|
|
12
14
|
from .model_component_edge_attribute_names import *
|
|
13
|
-
from .missing_files import *
|
|
14
15
|
from .kill import *
|
|
15
16
|
from .import_project import *
|
|
16
17
|
from .geographic_coordinate_systems import *
|
|
@@ -18,6 +19,8 @@ from .geode_objects_and_output_extensions import *
|
|
|
18
19
|
from .geode_object_inheritance import *
|
|
19
20
|
from .export_project import *
|
|
20
21
|
from .edge_attribute_names import *
|
|
22
|
+
from .data_missing_files import *
|
|
21
23
|
from .cell_attribute_names import *
|
|
24
|
+
from .apply_time_series import *
|
|
22
25
|
from .allowed_objects import *
|
|
23
26
|
from .allowed_files import *
|
|
@@ -10,7 +10,13 @@
|
|
|
10
10
|
"response": {
|
|
11
11
|
"type": "object",
|
|
12
12
|
"properties": {
|
|
13
|
-
"
|
|
13
|
+
"data_extensions": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"time_series_extensions": {
|
|
14
20
|
"type": "array",
|
|
15
21
|
"items": {
|
|
16
22
|
"type": "string"
|
|
@@ -18,8 +24,9 @@
|
|
|
18
24
|
}
|
|
19
25
|
},
|
|
20
26
|
"required": [
|
|
21
|
-
"
|
|
27
|
+
"data_extensions",
|
|
28
|
+
"time_series_extensions"
|
|
22
29
|
],
|
|
23
30
|
"additionalProperties": false
|
|
24
31
|
}
|
|
25
|
-
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/apply_time_series",
|
|
3
|
+
"methods": [
|
|
4
|
+
"POST"
|
|
5
|
+
],
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 32,
|
|
11
|
+
"maxLength": 32
|
|
12
|
+
},
|
|
13
|
+
"filename": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 1
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"id",
|
|
20
|
+
"filename"
|
|
21
|
+
],
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"response": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {},
|
|
26
|
+
"required": [],
|
|
27
|
+
"additionalProperties": false
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from opengeodeweb_microservice.schemas import Route, load_schema
|
|
3
|
+
from dataclasses_json import DataClassJsonMixin
|
|
4
|
+
from opengeodeweb_microservice.schemas import print_dataclass
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class ApplyTimeSeries(DataClassJsonMixin):
|
|
10
|
+
def __post_init__(self) -> None:
|
|
11
|
+
print_dataclass(self)
|
|
12
|
+
|
|
13
|
+
filename: str
|
|
14
|
+
id: str
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class ApplyTimeSeriesResponse(DataClassJsonMixin):
|
|
19
|
+
def __post_init__(self) -> None:
|
|
20
|
+
print_dataclass(self)
|
|
21
|
+
|
|
22
|
+
pass
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
apply_time_series_route = Route(
|
|
26
|
+
schema=load_schema(Path(__file__)),
|
|
27
|
+
params=ApplyTimeSeries,
|
|
28
|
+
response=ApplyTimeSeriesResponse,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
__all__ = ["ApplyTimeSeries", "ApplyTimeSeriesResponse", "apply_time_series_route"]
|
|
@@ -7,7 +7,7 @@ from dataclasses import dataclass
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@dataclass
|
|
10
|
-
class
|
|
10
|
+
class DataMissingFiles(DataClassJsonMixin):
|
|
11
11
|
def __post_init__(self) -> None:
|
|
12
12
|
print_dataclass(self)
|
|
13
13
|
|
|
@@ -16,7 +16,7 @@ class MissingFiles(DataClassJsonMixin):
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
@dataclass
|
|
19
|
-
class
|
|
19
|
+
class DataMissingFilesResponse(DataClassJsonMixin):
|
|
20
20
|
def __post_init__(self) -> None:
|
|
21
21
|
print_dataclass(self)
|
|
22
22
|
|
|
@@ -25,10 +25,10 @@ class MissingFilesResponse(DataClassJsonMixin):
|
|
|
25
25
|
mandatory_files: List[str]
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
data_missing_files_route = Route(
|
|
29
29
|
schema=load_schema(Path(__file__)),
|
|
30
|
-
params=
|
|
31
|
-
response=
|
|
30
|
+
params=DataMissingFiles,
|
|
31
|
+
response=DataMissingFilesResponse,
|
|
32
32
|
)
|
|
33
33
|
|
|
34
|
-
__all__ = ["
|
|
34
|
+
__all__ = ["DataMissingFiles", "DataMissingFilesResponse", "data_missing_files_route"]
|
opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/time_series_allowed_objects.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route": "/time_series_allowed_objects",
|
|
3
|
+
"methods": [
|
|
4
|
+
"POST"
|
|
5
|
+
],
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"filename": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": [
|
|
14
|
+
"filename"
|
|
15
|
+
],
|
|
16
|
+
"additionalProperties": false,
|
|
17
|
+
"response": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"allowed_objects": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "string"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"allowed_objects"
|
|
29
|
+
],
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
}
|
|
32
|
+
}
|
opengeodeweb_back-6.16.0rc1/src/opengeodeweb_back/routes/schemas/time_series_allowed_objects.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from opengeodeweb_microservice.schemas import Route, load_schema
|
|
3
|
+
from typing import List
|
|
4
|
+
from dataclasses_json import DataClassJsonMixin
|
|
5
|
+
from opengeodeweb_microservice.schemas import print_dataclass
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class TimeSeriesAllowedObjects(DataClassJsonMixin):
|
|
11
|
+
def __post_init__(self) -> None:
|
|
12
|
+
print_dataclass(self)
|
|
13
|
+
|
|
14
|
+
filename: str
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class TimeSeriesAllowedObjectsResponse(DataClassJsonMixin):
|
|
19
|
+
def __post_init__(self) -> None:
|
|
20
|
+
print_dataclass(self)
|
|
21
|
+
|
|
22
|
+
allowed_objects: List[str]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
time_series_allowed_objects_route = Route(
|
|
26
|
+
schema=load_schema(Path(__file__)),
|
|
27
|
+
params=TimeSeriesAllowedObjects,
|
|
28
|
+
response=TimeSeriesAllowedObjectsResponse,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
__all__ = ["TimeSeriesAllowedObjects", "TimeSeriesAllowedObjectsResponse", "time_series_allowed_objects_route"]
|