OpenGeodeWeb-Back 5.10.2__tar.gz → 5.10.3rc2__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.

Potentially problematic release.


This version of OpenGeodeWeb-Back might be problematic. Click here for more details.

Files changed (44) hide show
  1. {opengeodeweb_back-5.10.2/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-5.10.3rc2}/PKG-INFO +9 -20
  2. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/pyproject.toml +4 -2
  3. opengeodeweb_back-5.10.3rc2/requirements.txt +11 -0
  4. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +9 -20
  5. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +2 -0
  6. opengeodeweb_back-5.10.3rc2/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +2 -0
  7. opengeodeweb_back-5.10.3rc2/src/OpenGeodeWeb_Back.egg-info/requires.txt +11 -0
  8. opengeodeweb_back-5.10.3rc2/src/opengeodeweb_back/app.py +156 -0
  9. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/app_config.py +1 -10
  10. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/utils_functions.py +0 -5
  11. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/tests/test_geode_functions.py +1 -1
  12. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/tests/test_models_routes.py +3 -3
  13. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/tests/test_routes.py +16 -14
  14. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/tests/test_utils_functions.py +1 -1
  15. opengeodeweb_back-5.10.2/requirements.txt +0 -92
  16. opengeodeweb_back-5.10.2/src/OpenGeodeWeb_Back.egg-info/requires.txt +0 -22
  17. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/LICENSE +0 -0
  18. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/README.md +0 -0
  19. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/setup.cfg +0 -0
  20. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  21. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  22. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/__init__.py +0 -0
  23. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/geode_functions.py +0 -0
  24. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/geode_objects.py +0 -0
  25. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/py.typed +0 -0
  26. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  27. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/models/blueprint_models.py +0 -0
  28. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/models/schemas/mesh_components.json +0 -0
  29. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/models/schemas/vtm_component_indices.json +0 -0
  30. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  31. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  32. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/create_point.json +0 -0
  33. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  34. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  35. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  36. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  37. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  38. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  39. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  40. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  41. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  42. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  43. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  44. {opengeodeweb_back-5.10.2 → opengeodeweb_back-5.10.3rc2}/src/opengeodeweb_back/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.10.2
3
+ Version: 5.10.3rc2
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
@@ -11,28 +11,17 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: <3.13,>=3.9
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: asgiref~=3.9
15
- Requires-Dist: blinker~=1.9
16
- Requires-Dist: click~=8.3
17
- Requires-Dist: fastjsonschema~=2.21
18
- Requires-Dist: flask[async]~=3.1
19
- Requires-Dist: flask-cors==6.0.1
20
- Requires-Dist: flask-sqlalchemy==3.1.1
21
- Requires-Dist: geode-common==33.11.0
22
- Requires-Dist: geode-viewables==3.3.0
23
- Requires-Dist: greenlet~=3.2
24
- Requires-Dist: itsdangerous~=2.2
25
- Requires-Dist: jinja2~=3.1
26
- Requires-Dist: markupsafe~=3.0
27
14
  Requires-Dist: opengeode-core==15.27.4
15
+ Requires-Dist: opengeode-io==7.4.0
16
+ Requires-Dist: opengeode-inspector==6.8.1
28
17
  Requires-Dist: opengeode-geosciences==9.4.1
29
18
  Requires-Dist: opengeode-geosciencesio==5.8.0
30
- Requires-Dist: opengeode-inspector==6.8.1
31
- Requires-Dist: opengeode-io==7.4.0
32
- Requires-Dist: opengeodeweb-microservice>=1.0.3,~=1.0
33
- Requires-Dist: sqlalchemy~=2.0
34
- Requires-Dist: typing-extensions~=4.15
35
- Requires-Dist: werkzeug~=3.1
19
+ Requires-Dist: geode-common==33.11.0
20
+ Requires-Dist: geode-viewables==3.3.0
21
+ Requires-Dist: flask[async]==3.1.2
22
+ Requires-Dist: flask-cors==6.0.1
23
+ Requires-Dist: werkzeug==3.1.2
24
+ Requires-Dist: flask-sqlalchemy==3.1.1
36
25
  Dynamic: license-file
37
26
 
38
27
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -2,10 +2,9 @@
2
2
  requires = ["setuptools"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
-
6
5
  [project]
7
6
  name = "OpenGeodeWeb-Back"
8
- version = "5.10.2"
7
+ version = "5.10.3-rc.2"
9
8
  dynamic = ["dependencies"]
10
9
  authors = [{ name = "Geode-solutions", email = "team-web@geode-solutions.com" }]
11
10
  description = "OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem"
@@ -21,6 +20,9 @@ classifiers = [
21
20
  "Homepage" = "https://github.com/Geode-solutions/OpenGeodeWeb-Back"
22
21
  "Bug Tracker" = "https://github.com/Geode-solutions/OpenGeodeWeb-Back/issues"
23
22
 
23
+ [project.scripts]
24
+ opengeodeweb-back = "opengeodeweb_back.app:run_server"
25
+
24
26
  [tool.setuptools.dynamic]
25
27
  dependencies = { file = ["requirements.txt"] }
26
28
 
@@ -0,0 +1,11 @@
1
+ opengeode-core==15.27.4
2
+ opengeode-io==7.4.0
3
+ opengeode-inspector==6.8.1
4
+ opengeode-geosciences==9.4.1
5
+ opengeode-geosciencesio==5.8.0
6
+ geode-common==33.11.0
7
+ geode-viewables==3.3.0
8
+ flask[async]==3.1.2
9
+ flask-cors==6.0.1
10
+ werkzeug==3.1.2
11
+ flask-sqlalchemy==3.1.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.10.2
3
+ Version: 5.10.3rc2
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
@@ -11,28 +11,17 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: <3.13,>=3.9
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: asgiref~=3.9
15
- Requires-Dist: blinker~=1.9
16
- Requires-Dist: click~=8.3
17
- Requires-Dist: fastjsonschema~=2.21
18
- Requires-Dist: flask[async]~=3.1
19
- Requires-Dist: flask-cors==6.0.1
20
- Requires-Dist: flask-sqlalchemy==3.1.1
21
- Requires-Dist: geode-common==33.11.0
22
- Requires-Dist: geode-viewables==3.3.0
23
- Requires-Dist: greenlet~=3.2
24
- Requires-Dist: itsdangerous~=2.2
25
- Requires-Dist: jinja2~=3.1
26
- Requires-Dist: markupsafe~=3.0
27
14
  Requires-Dist: opengeode-core==15.27.4
15
+ Requires-Dist: opengeode-io==7.4.0
16
+ Requires-Dist: opengeode-inspector==6.8.1
28
17
  Requires-Dist: opengeode-geosciences==9.4.1
29
18
  Requires-Dist: opengeode-geosciencesio==5.8.0
30
- Requires-Dist: opengeode-inspector==6.8.1
31
- Requires-Dist: opengeode-io==7.4.0
32
- Requires-Dist: opengeodeweb-microservice>=1.0.3,~=1.0
33
- Requires-Dist: sqlalchemy~=2.0
34
- Requires-Dist: typing-extensions~=4.15
35
- Requires-Dist: werkzeug~=3.1
19
+ Requires-Dist: geode-common==33.11.0
20
+ Requires-Dist: geode-viewables==3.3.0
21
+ Requires-Dist: flask[async]==3.1.2
22
+ Requires-Dist: flask-cors==6.0.1
23
+ Requires-Dist: werkzeug==3.1.2
24
+ Requires-Dist: flask-sqlalchemy==3.1.1
36
25
  Dynamic: license-file
37
26
 
38
27
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -5,9 +5,11 @@ requirements.txt
5
5
  src/OpenGeodeWeb_Back.egg-info/PKG-INFO
6
6
  src/OpenGeodeWeb_Back.egg-info/SOURCES.txt
7
7
  src/OpenGeodeWeb_Back.egg-info/dependency_links.txt
8
+ src/OpenGeodeWeb_Back.egg-info/entry_points.txt
8
9
  src/OpenGeodeWeb_Back.egg-info/requires.txt
9
10
  src/OpenGeodeWeb_Back.egg-info/top_level.txt
10
11
  src/opengeodeweb_back/__init__.py
12
+ src/opengeodeweb_back/app.py
11
13
  src/opengeodeweb_back/app_config.py
12
14
  src/opengeodeweb_back/geode_functions.py
13
15
  src/opengeodeweb_back/geode_objects.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ opengeodeweb-back = opengeodeweb_back.app:run_server
@@ -0,0 +1,11 @@
1
+ opengeode-core==15.27.4
2
+ opengeode-io==7.4.0
3
+ opengeode-inspector==6.8.1
4
+ opengeode-geosciences==9.4.1
5
+ opengeode-geosciencesio==5.8.0
6
+ geode-common==33.11.0
7
+ geode-viewables==3.3.0
8
+ flask[async]==3.1.2
9
+ flask-cors==6.0.1
10
+ werkzeug==3.1.2
11
+ flask-sqlalchemy==3.1.1
@@ -0,0 +1,156 @@
1
+ """Packages"""
2
+
3
+ import argparse
4
+ import os
5
+ import time
6
+ from typing import Any
7
+
8
+ import flask
9
+ import flask_cors # type: ignore
10
+ from flask import Flask, Response
11
+ from flask_cors import cross_origin
12
+ from werkzeug.exceptions import HTTPException
13
+
14
+ from opengeodeweb_back import utils_functions, app_config
15
+ from opengeodeweb_back.routes import blueprint_routes
16
+ from opengeodeweb_back.routes.models import blueprint_models
17
+ from opengeodeweb_microservice.database.connection import init_database
18
+
19
+
20
+ """ Global config """
21
+ app: Flask = flask.Flask(__name__)
22
+
23
+ """ Config variables """
24
+ FLASK_DEBUG = True if os.environ.get("FLASK_DEBUG", default=None) == "True" else False
25
+
26
+ if FLASK_DEBUG == False:
27
+ app.config.from_object(app_config.ProdConfig)
28
+ else:
29
+ app.config.from_object(app_config.DevConfig)
30
+
31
+ DEFAULT_HOST: str = app.config.get("DEFAULT_HOST") or "localhost"
32
+ DEFAULT_PORT: int = int(app.config.get("DEFAULT_PORT") or 5000)
33
+ DEFAULT_DATA_FOLDER_PATH: str = app.config.get("DEFAULT_DATA_FOLDER_PATH") or "./data"
34
+ ORIGINS: Any = app.config.get("ORIGINS")
35
+ TIMEOUT: int = int(app.config.get("MINUTES_BEFORE_TIMEOUT") or 30)
36
+ SSL: Any = app.config.get("SSL")
37
+ SECONDS_BETWEEN_SHUTDOWNS: float = float(
38
+ app.config.get("SECONDS_BETWEEN_SHUTDOWNS") or 60.0
39
+ )
40
+
41
+
42
+ app.register_blueprint(
43
+ blueprint_routes.routes,
44
+ url_prefix="/opengeodeweb_back",
45
+ name="opengeodeweb_back",
46
+ )
47
+
48
+ app.register_blueprint(
49
+ blueprint_models.routes,
50
+ url_prefix="/opengeodeweb_back/models",
51
+ name="opengeodeweb_models",
52
+ )
53
+
54
+ if FLASK_DEBUG == False:
55
+ utils_functions.set_interval(
56
+ utils_functions.kill_task, SECONDS_BETWEEN_SHUTDOWNS, app
57
+ )
58
+
59
+
60
+ @app.errorhandler(HTTPException)
61
+ def errorhandler(e: HTTPException) -> tuple[dict[str, Any], int] | Response:
62
+ return utils_functions.handle_exception(e)
63
+
64
+
65
+ @app.route(
66
+ "/error",
67
+ methods=["POST"],
68
+ )
69
+ def return_error() -> Response:
70
+ flask.abort(500, f"Test")
71
+ return flask.make_response({}, 500)
72
+
73
+
74
+ @app.route("/", methods=["POST"])
75
+ @cross_origin()
76
+ def root() -> Response:
77
+ return flask.make_response({}, 200)
78
+
79
+
80
+ @app.route("/kill", methods=["POST"])
81
+ @cross_origin()
82
+ def kill() -> None:
83
+ print("Manual server kill, shutting down...", flush=True)
84
+ os._exit(0)
85
+
86
+
87
+ def run_server() -> None:
88
+ parser = argparse.ArgumentParser(
89
+ prog="OpenGeodeWeb-Back", description="Backend server for OpenGeodeWeb"
90
+ )
91
+ parser.add_argument("--host", type=str, default=DEFAULT_HOST, help="Host to run on")
92
+ parser.add_argument(
93
+ "-p", "--port", type=int, default=DEFAULT_PORT, help="Port to listen on"
94
+ )
95
+ parser.add_argument(
96
+ "-d",
97
+ "--debug",
98
+ default=FLASK_DEBUG,
99
+ help="Whether to run in debug mode",
100
+ action="store_true",
101
+ )
102
+ parser.add_argument(
103
+ "-dfp",
104
+ "--data_folder_path",
105
+ type=str,
106
+ default=DEFAULT_DATA_FOLDER_PATH,
107
+ help="Path to the folder where data is stored",
108
+ )
109
+ parser.add_argument(
110
+ "-ufp",
111
+ "--upload_folder_path",
112
+ type=str,
113
+ default=DEFAULT_DATA_FOLDER_PATH,
114
+ help="Path to the folder where uploads are stored",
115
+ )
116
+ parser.add_argument(
117
+ "-origins",
118
+ "--allowed_origins",
119
+ default=ORIGINS,
120
+ help="Origins that are allowed to connect to the server",
121
+ )
122
+ parser.add_argument(
123
+ "-t",
124
+ "--timeout",
125
+ default=TIMEOUT,
126
+ help="Number of minutes before the server times out",
127
+ )
128
+ args = parser.parse_args()
129
+
130
+ app.config.update(DATA_FOLDER_PATH=args.data_folder_path)
131
+ app.config.update(UPLOAD_FOLDER=args.upload_folder_path)
132
+ app.config.update(MINUTES_BEFORE_TIMEOUT=args.timeout)
133
+
134
+ flask_cors.CORS(app, origins=args.allowed_origins)
135
+
136
+ print(
137
+ f"Host: {args.host}, Port: {args.port}, Debug: {args.debug}, "
138
+ f"Data folder path: {args.data_folder_path}, Timeout: {args.timeout}, "
139
+ f"Origins: {args.allowed_origins}",
140
+ flush=True,
141
+ )
142
+
143
+ db_filename: str = app.config.get("DATABASE_FILENAME") or "database.db"
144
+ db_path = os.path.join(args.data_folder_path, db_filename)
145
+ os.makedirs(os.path.dirname(db_path), exist_ok=True)
146
+ app.config["SQLALCHEMY_DATABASE_URI"] = f"sqlite:///{db_path}"
147
+ app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
148
+ init_database(app, db_filename)
149
+ print(f"Database initialized at: {db_path}", flush=True)
150
+
151
+ app.run(debug=args.debug, host=args.host, port=args.port, ssl_context=SSL)
152
+
153
+
154
+ # ''' Main '''
155
+ if __name__ == "__main__":
156
+ run_server()
@@ -4,9 +4,6 @@ import time
4
4
 
5
5
  # Third party imports
6
6
  # Local application imports
7
- from opengeodeweb_microservice.database.connection import get_database
8
-
9
- DATABASE_FILENAME = "project.db"
10
7
 
11
8
 
12
9
  class Config(object):
@@ -18,7 +15,7 @@ class Config(object):
18
15
  REQUEST_COUNTER = 0
19
16
  LAST_REQUEST_TIME = time.time()
20
17
  LAST_PING_TIME = time.time()
21
- SQLALCHEMY_TRACK_MODIFICATIONS = False
18
+ DATABASE_FILENAME = "project.db"
22
19
 
23
20
 
24
21
  class ProdConfig(Config):
@@ -27,9 +24,6 @@ class ProdConfig(Config):
27
24
  MINUTES_BEFORE_TIMEOUT = "1"
28
25
  SECONDS_BETWEEN_SHUTDOWNS = "10"
29
26
  DATA_FOLDER_PATH = "/data"
30
- SQLALCHEMY_DATABASE_URI = f"sqlite:///{os.path.abspath(
31
- os.path.join(DATA_FOLDER_PATH, DATABASE_FILENAME)
32
- )}"
33
27
 
34
28
 
35
29
  class DevConfig(Config):
@@ -39,6 +33,3 @@ class DevConfig(Config):
39
33
  SECONDS_BETWEEN_SHUTDOWNS = "10"
40
34
  BASE_DIR = os.path.dirname(os.path.abspath(__file__))
41
35
  DATA_FOLDER_PATH = os.path.join(BASE_DIR, "data")
42
- SQLALCHEMY_DATABASE_URI = f"sqlite:///{os.path.join(
43
- BASE_DIR, DATA_FOLDER_PATH, DATABASE_FILENAME
44
- )}"
@@ -88,7 +88,6 @@ def validate_request(request: flask.Request, schema: dict[str, str]) -> None:
88
88
 
89
89
  if json_data is None:
90
90
  json_data = {}
91
-
92
91
  try:
93
92
  validate = fastjsonschema.compile(schema)
94
93
  validate(json_data)
@@ -259,10 +258,6 @@ def generate_native_viewable_and_light_viewable_from_file(
259
258
 
260
259
  data = geode_functions.load(geode_object, copied_full_path)
261
260
 
262
- # Remplacer :
263
- # database.session.delete(temp_data_entry)
264
- # database.session.flush()
265
- # Par :
266
261
  session = get_session()
267
262
  if session:
268
263
  session.delete(temp_data_entry)
@@ -5,7 +5,7 @@ import uuid
5
5
  # Third party imports
6
6
 
7
7
  # Local application imports
8
- from src.opengeodeweb_back import geode_functions, geode_objects
8
+ from opengeodeweb_back import geode_functions, geode_objects
9
9
 
10
10
 
11
11
  data_folder = os.path.join(os.path.dirname(__file__), "data")
@@ -2,13 +2,13 @@ import os
2
2
  import shutil
3
3
  import flask
4
4
 
5
- from src.opengeodeweb_back import geode_functions
5
+ from opengeodeweb_back import geode_functions
6
6
  from opengeodeweb_microservice.database.data import Data
7
7
  from opengeodeweb_microservice.database.connection import get_session
8
8
 
9
9
 
10
10
  def test_model_mesh_components(client, test_id):
11
- route = f"/models/vtm_component_indices"
11
+ route = "/opengeodeweb_back/models/vtm_component_indices"
12
12
 
13
13
  with client.application.app_context():
14
14
  data_path = geode_functions.data_file_path(test_id, "viewable.vtm")
@@ -29,7 +29,7 @@ def test_model_mesh_components(client, test_id):
29
29
 
30
30
 
31
31
  def test_extract_brep_uuids(client, test_id):
32
- route = "/models/mesh_components"
32
+ route = "/opengeodeweb_back/models/mesh_components"
33
33
  brep_filename = "cube.og_brep"
34
34
 
35
35
  with client.application.app_context():
@@ -8,11 +8,11 @@ from werkzeug.datastructures import FileStorage
8
8
  # Local application imports
9
9
  from opengeodeweb_microservice.database.data import Data
10
10
  from opengeodeweb_microservice.database.connection import get_session
11
- from src.opengeodeweb_back import geode_functions, test_utils
11
+ from opengeodeweb_back import geode_functions, test_utils
12
12
 
13
13
 
14
14
  def test_allowed_files(client):
15
- route = f"/allowed_files"
15
+ route = f"/opengeodeweb_back/allowed_files"
16
16
  get_full_data = lambda: {"supported_feature": "None"}
17
17
  json = get_full_data()
18
18
  response = client.post(route, json=json)
@@ -27,7 +27,7 @@ def test_allowed_files(client):
27
27
 
28
28
 
29
29
  def test_allowed_objects(client):
30
- route = f"/allowed_objects"
30
+ route = f"/opengeodeweb_back/allowed_objects"
31
31
 
32
32
  def get_full_data():
33
33
  return {
@@ -49,14 +49,14 @@ def test_allowed_objects(client):
49
49
 
50
50
  def test_upload_file(client, filename="test.og_brep"):
51
51
  response = client.put(
52
- f"/upload_file",
52
+ f"/opengeodeweb_back/upload_file",
53
53
  data={"file": FileStorage(open(f"./tests/data/{filename}", "rb"))},
54
54
  )
55
55
  assert response.status_code == 201
56
56
 
57
57
 
58
58
  def test_missing_files(client):
59
- route = f"/missing_files"
59
+ route = f"/opengeodeweb_back/missing_files"
60
60
 
61
61
  def get_full_data():
62
62
  return {
@@ -79,7 +79,7 @@ def test_missing_files(client):
79
79
 
80
80
 
81
81
  def test_geographic_coordinate_systems(client):
82
- route = f"/geographic_coordinate_systems"
82
+ route = f"/opengeodeweb_back/geographic_coordinate_systems"
83
83
  get_full_data = lambda: {"input_geode_object": "BRep"}
84
84
  # Normal test with geode_object 'BRep'
85
85
  response = client.post(route, json=get_full_data())
@@ -94,7 +94,7 @@ def test_geographic_coordinate_systems(client):
94
94
 
95
95
 
96
96
  def test_inspect_file(client):
97
- route = f"/inspect_file"
97
+ route = f"/opengeodeweb_back/inspect_file"
98
98
 
99
99
  def get_full_data():
100
100
  return {
@@ -115,7 +115,7 @@ def test_inspect_file(client):
115
115
 
116
116
 
117
117
  def test_geode_objects_and_output_extensions(client):
118
- route = "/geode_objects_and_output_extensions"
118
+ route = "/opengeodeweb_back/geode_objects_and_output_extensions"
119
119
 
120
120
  def get_full_data():
121
121
  return {
@@ -142,7 +142,7 @@ def test_geode_objects_and_output_extensions(client):
142
142
 
143
143
  def test_save_viewable_file(client):
144
144
  test_upload_file(client, filename="corbi.og_brep")
145
- route = f"/save_viewable_file"
145
+ route = f"/opengeodeweb_back/save_viewable_file"
146
146
 
147
147
  def get_full_data():
148
148
  return {
@@ -181,7 +181,9 @@ def test_texture_coordinates(client, test_id):
181
181
  os.makedirs(os.path.dirname(data_path), exist_ok=True)
182
182
  shutil.copy("./tests/data/hat.vtp", data_path)
183
183
  assert os.path.exists(data_path), f"File not found at {data_path}"
184
- response = client.post("/texture_coordinates", json={"id": data.id})
184
+ response = client.post(
185
+ "/opengeodeweb_back/texture_coordinates", json={"id": data.id}
186
+ )
185
187
  assert response.status_code == 200
186
188
  texture_coordinates = response.json["texture_coordinates"]
187
189
  assert type(texture_coordinates) is list
@@ -190,7 +192,7 @@ def test_texture_coordinates(client, test_id):
190
192
 
191
193
 
192
194
  def test_vertex_attribute_names(client, test_id):
193
- route = f"/vertex_attribute_names"
195
+ route = f"/opengeodeweb_back/vertex_attribute_names"
194
196
 
195
197
  with client.application.app_context():
196
198
  data = Data.create(geode_object="PolygonalSurface3D", input_file="test.vtp")
@@ -212,7 +214,7 @@ def test_vertex_attribute_names(client, test_id):
212
214
 
213
215
 
214
216
  def test_polygon_attribute_names(client, test_id):
215
- route = f"/polygon_attribute_names"
217
+ route = f"/opengeodeweb_back/polygon_attribute_names"
216
218
 
217
219
  with client.application.app_context():
218
220
  data = Data.create(geode_object="PolygonalSurface3D", input_file="test.vtp")
@@ -234,7 +236,7 @@ def test_polygon_attribute_names(client, test_id):
234
236
 
235
237
 
236
238
  def test_polyhedron_attribute_names(client, test_id):
237
- route = f"/polyhedron_attribute_names"
239
+ route = f"/opengeodeweb_back/polyhedron_attribute_names"
238
240
 
239
241
  with client.application.app_context():
240
242
  data = Data.create(geode_object="PolyhedralSolid3D", input_file="test.vtu")
@@ -257,7 +259,7 @@ def test_polyhedron_attribute_names(client, test_id):
257
259
 
258
260
 
259
261
  def test_create_point(client):
260
- route = f"/create_point"
262
+ route = f"/opengeodeweb_back/create_point"
261
263
  get_full_data = lambda: {"title": "test_point", "x": 1, "y": 2, "z": 3}
262
264
 
263
265
  # Normal test with all keys
@@ -10,7 +10,7 @@ import uuid
10
10
  # Local application imports
11
11
  from opengeodeweb_microservice.database.data import Data
12
12
  from opengeodeweb_microservice.database.connection import get_session
13
- from src.opengeodeweb_back import geode_functions, utils_functions
13
+ from opengeodeweb_back import geode_functions, utils_functions
14
14
 
15
15
 
16
16
  def test_increment_request_counter(app_context):
@@ -1,92 +0,0 @@
1
- #
2
- # This file is autogenerated by pip-compile with Python 3.12
3
- # by the following command:
4
- #
5
- # pip-compile --output-file=./requirements.txt ./requirements-internal.in ./requirements.in
6
- #
7
- asgiref~=3.9
8
- # via flask
9
- blinker~=1.9
10
- # via
11
- # flask
12
- # opengeodeweb-microservice
13
- click~=8.3
14
- # via
15
- # flask
16
- # opengeodeweb-microservice
17
- fastjsonschema~=2.21
18
- # via opengeodeweb-microservice
19
- flask[async]~=3.1
20
- # via
21
- # -r requirements.in
22
- # flask-cors
23
- # flask-sqlalchemy
24
- # opengeodeweb-microservice
25
- flask-cors==6.0.1
26
- # via -r requirements.in
27
- flask-sqlalchemy==3.1.1
28
- # via
29
- # -r requirements.in
30
- # opengeodeweb-microservice
31
- geode-common==33.11.0
32
- # via
33
- # -r requirements.in
34
- # geode-viewables
35
- geode-viewables==3.3.0
36
- # via -r requirements.in
37
- greenlet~=3.2
38
- # via
39
- # opengeodeweb-microservice
40
- # sqlalchemy
41
- itsdangerous~=2.2
42
- # via
43
- # flask
44
- # opengeodeweb-microservice
45
- jinja2~=3.1
46
- # via
47
- # flask
48
- # opengeodeweb-microservice
49
- markupsafe~=3.0
50
- # via
51
- # flask
52
- # jinja2
53
- # opengeodeweb-microservice
54
- # werkzeug
55
- opengeode-core==15.27.4
56
- # via
57
- # -r requirements.in
58
- # geode-common
59
- # geode-viewables
60
- # opengeode-geosciences
61
- # opengeode-geosciencesio
62
- # opengeode-inspector
63
- # opengeode-io
64
- opengeode-geosciences==9.4.1
65
- # via
66
- # -r requirements.in
67
- # geode-viewables
68
- # opengeode-geosciencesio
69
- opengeode-geosciencesio==5.8.0
70
- # via -r requirements.in
71
- opengeode-inspector==6.8.1
72
- # via -r requirements.in
73
- opengeode-io==7.4.0
74
- # via
75
- # -r requirements.in
76
- # geode-viewables
77
- # opengeode-geosciencesio
78
- opengeodeweb-microservice~=1.0,>=1.0.3
79
- # via -r requirements-internal.in
80
- sqlalchemy~=2.0
81
- # via
82
- # flask-sqlalchemy
83
- # opengeodeweb-microservice
84
- typing-extensions~=4.15
85
- # via
86
- # opengeodeweb-microservice
87
- # sqlalchemy
88
- werkzeug~=3.1
89
- # via
90
- # flask
91
- # flask-cors
92
- # opengeodeweb-microservice
@@ -1,22 +0,0 @@
1
- asgiref~=3.9
2
- blinker~=1.9
3
- click~=8.3
4
- fastjsonschema~=2.21
5
- flask[async]~=3.1
6
- flask-cors==6.0.1
7
- flask-sqlalchemy==3.1.1
8
- geode-common==33.11.0
9
- geode-viewables==3.3.0
10
- greenlet~=3.2
11
- itsdangerous~=2.2
12
- jinja2~=3.1
13
- markupsafe~=3.0
14
- opengeode-core==15.27.4
15
- opengeode-geosciences==9.4.1
16
- opengeode-geosciencesio==5.8.0
17
- opengeode-inspector==6.8.1
18
- opengeode-io==7.4.0
19
- opengeodeweb-microservice>=1.0.3,~=1.0
20
- sqlalchemy~=2.0
21
- typing-extensions~=4.15
22
- werkzeug~=3.1