OpenGeodeWeb-Back 6.9.2rc1__tar.gz → 6.9.2rc2__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.9.2rc1/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.9.2rc2}/PKG-INFO +1 -1
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/pyproject.toml +1 -1
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +1 -1
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/app.py +65 -29
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/app_config.py +10 -8
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_functions.py +1 -1
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/blueprint_routes.py +15 -8
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/tests/test_utils_functions.py +8 -6
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/LICENSE +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/README.md +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/requirements.txt +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/setup.cfg +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/OpenGeodeWeb_Back.egg-info/requires.txt +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/__init__.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/py.typed +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/blueprint_create.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/create/schemas/polygonal_surface.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_edge_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/model_component_vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/test_utils.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/utils_functions.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/tests/test_create_routes.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/tests/test_geode_functions.py +0 -0
- {opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/tests/test_routes.py +0 -0
{opengeodeweb_back-6.9.2rc1/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.9.2rc2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenGeodeWeb-Back
|
|
3
|
-
Version: 6.9.
|
|
3
|
+
Version: 6.9.2rc2
|
|
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.9.2-rc.
|
|
7
|
+
version = "6.9.2-rc.2"
|
|
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.9.2rc1 → opengeodeweb_back-6.9.2rc2/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.9.
|
|
3
|
+
Version: 6.9.2rc2
|
|
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
|
|
@@ -18,15 +18,6 @@ from opengeodeweb_microservice.database import connection
|
|
|
18
18
|
def create_app(name: str) -> flask.Flask:
|
|
19
19
|
app = flask.Flask(name)
|
|
20
20
|
|
|
21
|
-
""" Config variables """
|
|
22
|
-
FLASK_DEBUG = (
|
|
23
|
-
True if os.environ.get("FLASK_DEBUG", default=None) == "True" else False
|
|
24
|
-
)
|
|
25
|
-
if FLASK_DEBUG == False:
|
|
26
|
-
app.config.from_object(app_config.ProdConfig)
|
|
27
|
-
else:
|
|
28
|
-
app.config.from_object(app_config.DevConfig)
|
|
29
|
-
|
|
30
21
|
@app.before_request
|
|
31
22
|
def before_request() -> flask.Response | None:
|
|
32
23
|
if flask.request.method == "OPTIONS":
|
|
@@ -102,14 +93,12 @@ def run_server(app: Flask) -> None:
|
|
|
102
93
|
parser.add_argument(
|
|
103
94
|
"--host",
|
|
104
95
|
type=str,
|
|
105
|
-
default=app.config.get("DEFAULT_HOST"),
|
|
106
96
|
help="Host to run on",
|
|
107
97
|
)
|
|
108
98
|
parser.add_argument(
|
|
109
99
|
"-p",
|
|
110
100
|
"--port",
|
|
111
|
-
type=
|
|
112
|
-
default=app.config.get("DEFAULT_PORT"),
|
|
101
|
+
type=str,
|
|
113
102
|
help="Port to listen on",
|
|
114
103
|
)
|
|
115
104
|
parser.add_argument(
|
|
@@ -119,55 +108,102 @@ def run_server(app: Flask) -> None:
|
|
|
119
108
|
help="Whether to run in debug mode",
|
|
120
109
|
action="store_true",
|
|
121
110
|
)
|
|
111
|
+
parser.add_argument(
|
|
112
|
+
"-pfp",
|
|
113
|
+
"--project_folder_path",
|
|
114
|
+
type=str,
|
|
115
|
+
help="Path to the folder where the project is stored",
|
|
116
|
+
)
|
|
122
117
|
parser.add_argument(
|
|
123
118
|
"-dfp",
|
|
124
119
|
"--data_folder_path",
|
|
125
120
|
type=str,
|
|
126
|
-
|
|
127
|
-
help="Path to the folder where data is stored",
|
|
121
|
+
help="Path to the folder where the data is stored",
|
|
128
122
|
)
|
|
129
123
|
parser.add_argument(
|
|
130
124
|
"-ufp",
|
|
131
125
|
"--upload_folder_path",
|
|
132
126
|
type=str,
|
|
133
|
-
default=app.config.get("UPLOAD_FOLDER"),
|
|
134
127
|
help="Path to the folder where uploads are stored",
|
|
135
128
|
)
|
|
136
129
|
parser.add_argument(
|
|
137
130
|
"-origins",
|
|
138
131
|
"--allowed_origins",
|
|
139
132
|
nargs="+",
|
|
140
|
-
default=app.config.get("ORIGINS"),
|
|
141
133
|
help="Origins that are allowed to connect to the server",
|
|
142
134
|
)
|
|
143
135
|
parser.add_argument(
|
|
144
136
|
"-t",
|
|
145
137
|
"--timeout",
|
|
146
|
-
default=app.config.get("MINUTES_BEFORE_TIMEOUT"),
|
|
147
138
|
help="Number of minutes before the server times out",
|
|
148
139
|
)
|
|
149
140
|
args, _ = parser.parse_known_args()
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
141
|
+
|
|
142
|
+
if args.project_folder_path is None:
|
|
143
|
+
raise ValueError("project_folder_path must be provided")
|
|
144
|
+
else:
|
|
145
|
+
args.project_folder_path = os.path.abspath(args.project_folder_path)
|
|
146
|
+
|
|
147
|
+
if args.debug:
|
|
148
|
+
app.config.from_object(app_config.DevConfig(args.project_folder_path))
|
|
149
|
+
else:
|
|
150
|
+
app.config.from_object(app_config.ProdConfig(args.project_folder_path))
|
|
151
|
+
|
|
152
|
+
if args.host is not None:
|
|
153
|
+
app.config.update(HOST=args.host)
|
|
154
|
+
else:
|
|
155
|
+
args.host = app.config.get("HOST")
|
|
156
|
+
|
|
157
|
+
if args.port is not None:
|
|
158
|
+
app.config.update(PORT=args.port)
|
|
159
|
+
else:
|
|
160
|
+
args.port = app.config.get("PORT")
|
|
161
|
+
|
|
162
|
+
if args.debug is not None:
|
|
163
|
+
app.config.update(FLASK_DEBUG=args.debug)
|
|
164
|
+
else:
|
|
165
|
+
args.debug = app.config.get("FLASK_DEBUG")
|
|
166
|
+
|
|
167
|
+
if args.data_folder_path is not None:
|
|
168
|
+
app.config.update(DATA_FOLDER_PATH=args.data_folder_path)
|
|
169
|
+
else:
|
|
170
|
+
args.data_folder_path = app.config.get("DATA_FOLDER_PATH")
|
|
171
|
+
|
|
172
|
+
if args.upload_folder_path is not None:
|
|
173
|
+
app.config.update(UPLOAD_FOLDER_PATH=args.upload_folder_path)
|
|
174
|
+
else:
|
|
175
|
+
args.upload_folder_path = app.config.get("UPLOAD_FOLDER_PATH")
|
|
176
|
+
|
|
177
|
+
if args.allowed_origins is not None:
|
|
178
|
+
app.config.update(ALLOWED_ORIGINS=args.allowed_origins)
|
|
179
|
+
else:
|
|
180
|
+
args.allowed_origins = app.config.get("ALLOWED_ORIGINS")
|
|
181
|
+
|
|
182
|
+
if args.timeout is not None:
|
|
183
|
+
app.config.update(MINUTES_BEFORE_TIMEOUT=args.timeout)
|
|
184
|
+
else:
|
|
185
|
+
args.timeout = app.config.get("MINUTES_BEFORE_TIMEOUT")
|
|
186
|
+
|
|
157
187
|
print(f"{args=}", flush=True)
|
|
158
188
|
|
|
159
|
-
db_filename
|
|
160
|
-
|
|
189
|
+
db_filename = app.config.get("DATABASE_FILENAME")
|
|
190
|
+
if not isinstance(db_filename, str):
|
|
191
|
+
raise TypeError(
|
|
192
|
+
f"DATABASE_FILENAME config must be a string, got {db_filename!r}"
|
|
193
|
+
)
|
|
194
|
+
db_path = os.path.join(str(app.config.get("DATA_FOLDER_PATH")), db_filename)
|
|
161
195
|
os.makedirs(os.path.dirname(db_path), exist_ok=True)
|
|
162
196
|
app.config["SQLALCHEMY_DATABASE_URI"] = f"sqlite:///{db_path}"
|
|
163
197
|
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
|
|
164
198
|
|
|
165
199
|
connection.init_database(db_path)
|
|
166
200
|
print(f"Database initialized at: {db_path}", flush=True)
|
|
201
|
+
|
|
202
|
+
flask_cors.CORS(app, origins=args.allowed_origins)
|
|
167
203
|
app.run(
|
|
168
|
-
debug=
|
|
169
|
-
host=
|
|
170
|
-
port=
|
|
204
|
+
debug=app.config.get("FLASK_DEBUG"),
|
|
205
|
+
host=app.config.get("HOST"),
|
|
206
|
+
port=app.config.get("PORT"),
|
|
171
207
|
ssl_context=app.config.get("SSL"),
|
|
172
208
|
)
|
|
173
209
|
|
{opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/app_config.py
RENAMED
|
@@ -5,26 +5,31 @@ import time
|
|
|
5
5
|
# Third party imports
|
|
6
6
|
# Local application imports
|
|
7
7
|
|
|
8
|
+
base_dir = os.path.dirname(os.path.abspath(__file__))
|
|
9
|
+
|
|
8
10
|
|
|
9
11
|
class Config(object):
|
|
10
12
|
FLASK_DEBUG = os.environ.get("FLASK_DEBUG", default=False)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
HOST = "localhost"
|
|
14
|
+
PORT = "5000"
|
|
13
15
|
CORS_HEADERS = "Content-Type"
|
|
14
|
-
UPLOAD_FOLDER = "./uploads"
|
|
15
16
|
REQUEST_COUNTER = 0
|
|
16
17
|
LAST_REQUEST_TIME = time.time()
|
|
17
18
|
LAST_PING_TIME = time.time()
|
|
18
19
|
DATABASE_FILENAME = "project.db"
|
|
19
20
|
|
|
21
|
+
def __init__(self, project_folder_path: str):
|
|
22
|
+
self.PROJECT_FOLDER_PATH = project_folder_path
|
|
23
|
+
self.DATA_FOLDER_PATH = os.path.join(project_folder_path, "data")
|
|
24
|
+
self.EXTENSIONS_FOLDER_PATH = os.path.join(project_folder_path, "extensions")
|
|
25
|
+
self.UPLOAD_FOLDER_PATH = os.path.join(project_folder_path, "uploads")
|
|
26
|
+
|
|
20
27
|
|
|
21
28
|
class ProdConfig(Config):
|
|
22
29
|
SSL = None
|
|
23
30
|
ORIGINS = ""
|
|
24
31
|
MINUTES_BEFORE_TIMEOUT = "1"
|
|
25
32
|
SECONDS_BETWEEN_SHUTDOWNS = "10"
|
|
26
|
-
DATA_FOLDER_PATH = "/data"
|
|
27
|
-
EXTENSIONS_FOLDER_PATH = os.path.join(DATA_FOLDER_PATH, "extensions")
|
|
28
33
|
|
|
29
34
|
|
|
30
35
|
class DevConfig(Config):
|
|
@@ -32,6 +37,3 @@ class DevConfig(Config):
|
|
|
32
37
|
ORIGINS = "*"
|
|
33
38
|
MINUTES_BEFORE_TIMEOUT = "1"
|
|
34
39
|
SECONDS_BETWEEN_SHUTDOWNS = "10"
|
|
35
|
-
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
36
|
-
DATA_FOLDER_PATH = os.path.join(BASE_DIR, "data")
|
|
37
|
-
EXTENSIONS_FOLDER_PATH = os.path.join(DATA_FOLDER_PATH, "extensions")
|
{opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/geode_functions.py
RENAMED
|
@@ -46,7 +46,7 @@ def get_data_info(data_id: str) -> Data:
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
def upload_file_path(filename: str) -> str:
|
|
49
|
-
upload_folder = flask.current_app.config["
|
|
49
|
+
upload_folder = flask.current_app.config["UPLOAD_FOLDER_PATH"]
|
|
50
50
|
secure_filename = werkzeug.utils.secure_filename(filename)
|
|
51
51
|
return os.path.abspath(os.path.join(upload_folder, secure_filename))
|
|
52
52
|
|
|
@@ -66,20 +66,22 @@ def allowed_files() -> flask.Response:
|
|
|
66
66
|
methods=schemas_dict["upload_file"]["methods"],
|
|
67
67
|
)
|
|
68
68
|
def upload_file() -> flask.Response:
|
|
69
|
-
|
|
70
|
-
print(f"{
|
|
71
|
-
if not os.path.exists(
|
|
72
|
-
os.makedirs(
|
|
69
|
+
UPLOAD_FOLDER_PATH = flask.current_app.config["UPLOAD_FOLDER_PATH"]
|
|
70
|
+
print(f"{UPLOAD_FOLDER_PATH=}", flush=True)
|
|
71
|
+
if not os.path.exists(UPLOAD_FOLDER_PATH):
|
|
72
|
+
os.makedirs(UPLOAD_FOLDER_PATH, exist_ok=True)
|
|
73
73
|
|
|
74
74
|
file = flask.request.files["file"]
|
|
75
75
|
if file.filename is None:
|
|
76
76
|
flask.abort(400, "Filename is required")
|
|
77
77
|
filename = werkzeug.utils.secure_filename(os.path.basename(file.filename))
|
|
78
78
|
print(f"{filename=}", flush=True)
|
|
79
|
-
file_path = os.path.join(
|
|
79
|
+
file_path = os.path.join(UPLOAD_FOLDER_PATH, filename)
|
|
80
80
|
file.save(file_path)
|
|
81
81
|
if filename.lower().endswith(".csv.json"):
|
|
82
|
-
shutil.copyfile(
|
|
82
|
+
shutil.copyfile(
|
|
83
|
+
file_path, os.path.join(UPLOAD_FOLDER_PATH, filename[:-9] + ".json")
|
|
84
|
+
)
|
|
83
85
|
return flask.make_response({"message": "File uploaded"}, 201)
|
|
84
86
|
|
|
85
87
|
|
|
@@ -585,8 +587,13 @@ def import_project() -> flask.Response:
|
|
|
585
587
|
|
|
586
588
|
try:
|
|
587
589
|
if os.path.exists(data_folder_path):
|
|
588
|
-
|
|
589
|
-
|
|
590
|
+
for item in os.scandir(data_folder_path):
|
|
591
|
+
if item.is_dir(follow_symlinks=False):
|
|
592
|
+
shutil.rmtree(item.path)
|
|
593
|
+
else:
|
|
594
|
+
os.remove(item.path)
|
|
595
|
+
else:
|
|
596
|
+
os.makedirs(data_folder_path, exist_ok=True)
|
|
590
597
|
except PermissionError:
|
|
591
598
|
flask.abort(423, "Project files are locked; cannot overwrite")
|
|
592
599
|
|
|
@@ -232,7 +232,7 @@ def test_generate_native_viewable_and_light_viewable_from_file_with_multi_dots(
|
|
|
232
232
|
def test_send_file_multiple_returns_zip(client: FlaskClient, tmp_path: Path) -> None:
|
|
233
233
|
app = client.application
|
|
234
234
|
with app.app_context():
|
|
235
|
-
app.config["
|
|
235
|
+
app.config["UPLOAD_FOLDER_PATH"] = str(tmp_path)
|
|
236
236
|
file_paths = []
|
|
237
237
|
for i, content in [(1, b"hello 1"), (2, b"hello 2")]:
|
|
238
238
|
file_path = tmp_path / f"tmp_send_file_{i}.txt"
|
|
@@ -240,13 +240,13 @@ def test_send_file_multiple_returns_zip(client: FlaskClient, tmp_path: Path) ->
|
|
|
240
240
|
file_paths.append(str(file_path))
|
|
241
241
|
with app.test_request_context():
|
|
242
242
|
response = utils_functions.send_file(
|
|
243
|
-
app.config["
|
|
243
|
+
app.config["UPLOAD_FOLDER_PATH"], file_paths, "bundle"
|
|
244
244
|
)
|
|
245
245
|
assert response.status_code == 200
|
|
246
246
|
assert response.mimetype == "application/zip"
|
|
247
247
|
new_file_name = response.headers.get("new-file-name")
|
|
248
248
|
assert new_file_name == "bundle.zip"
|
|
249
|
-
zip_path = os.path.join(app.config["
|
|
249
|
+
zip_path = os.path.join(app.config["UPLOAD_FOLDER_PATH"], new_file_name)
|
|
250
250
|
with zipfile.ZipFile(zip_path, "r") as zip_file:
|
|
251
251
|
zip_entries = zip_file.namelist()
|
|
252
252
|
assert "tmp_send_file_1.txt" in zip_entries
|
|
@@ -259,18 +259,20 @@ def test_send_file_single_returns_octet_binary(
|
|
|
259
259
|
) -> None:
|
|
260
260
|
app = client.application
|
|
261
261
|
with app.app_context():
|
|
262
|
-
app.config["
|
|
262
|
+
app.config["UPLOAD_FOLDER_PATH"] = str(tmp_path)
|
|
263
263
|
file_path = tmp_path / "tmp_send_file_1.txt"
|
|
264
264
|
file_path.write_bytes(b"hello 1")
|
|
265
265
|
with app.test_request_context():
|
|
266
266
|
response = utils_functions.send_file(
|
|
267
|
-
app.config["
|
|
267
|
+
app.config["UPLOAD_FOLDER_PATH"],
|
|
268
|
+
[str(file_path)],
|
|
269
|
+
"tmp_send_file_1.txt",
|
|
268
270
|
)
|
|
269
271
|
assert response.status_code == 200
|
|
270
272
|
assert response.mimetype == "application/octet-binary"
|
|
271
273
|
new_file_name = response.headers.get("new-file-name")
|
|
272
274
|
assert new_file_name == "tmp_send_file_1.txt"
|
|
273
|
-
zip_path = os.path.join(app.config["
|
|
275
|
+
zip_path = os.path.join(app.config["UPLOAD_FOLDER_PATH"], new_file_name)
|
|
274
276
|
with open(zip_path, "rb") as f:
|
|
275
277
|
file_bytes = f.read()
|
|
276
278
|
assert file_bytes == b"hello 1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/test_utils.py
RENAMED
|
File without changes
|
{opengeodeweb_back-6.9.2rc1 → opengeodeweb_back-6.9.2rc2}/src/opengeodeweb_back/utils_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|