OpenGeodeWeb-Back 5.10.3rc18__tar.gz → 5.10.4rc2__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 (43) hide show
  1. {opengeodeweb_back-5.10.3rc18/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-5.10.4rc2}/PKG-INFO +2 -2
  2. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/pyproject.toml +1 -1
  3. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/requirements.txt +1 -1
  4. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +2 -2
  5. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
  6. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/app.py +12 -2
  7. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -14
  8. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/utils_functions.py +17 -12
  9. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/tests/test_utils_functions.py +3 -10
  10. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/LICENSE +0 -0
  11. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/README.md +0 -0
  12. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/setup.cfg +0 -0
  13. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
  14. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  15. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  16. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  17. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/__init__.py +0 -0
  18. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/app_config.py +0 -0
  19. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/geode_functions.py +0 -0
  20. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/geode_objects.py +0 -0
  21. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/py.typed +0 -0
  22. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/models/blueprint_models.py +0 -0
  23. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/models/schemas/mesh_components.json +0 -0
  24. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/models/schemas/vtm_component_indices.json +0 -0
  25. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  26. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  27. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/create_point.json +0 -0
  28. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  29. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  30. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  31. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  32. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  33. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  34. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  35. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  36. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  37. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  38. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  39. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  40. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/src/opengeodeweb_back/test_utils.py +0 -0
  41. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/tests/test_geode_functions.py +0 -0
  42. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/tests/test_models_routes.py +0 -0
  43. {opengeodeweb_back-5.10.3rc18 → opengeodeweb_back-5.10.4rc2}/tests/test_routes.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.10.3rc18
3
+ Version: 5.10.4rc2
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
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.0
27
27
  Requires-Dist: opengeode-inspector==6.8.1
28
28
  Requires-Dist: opengeode-io==7.4.0
29
29
  Requires-Dist: werkzeug==3.1.2
30
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.4rc9
30
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.4
31
31
  Dynamic: license-file
32
32
 
33
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OpenGeodeWeb-Back"
7
- version = "5.10.3-rc.18"
7
+ version = "5.10.4-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"
@@ -60,4 +60,4 @@ werkzeug==3.1.2
60
60
  # flask
61
61
  # flask-cors
62
62
 
63
- opengeodeweb-microservice==1.*,>=1.0.4rc9
63
+ opengeodeweb-microservice==1.*,>=1.0.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.10.3rc18
3
+ Version: 5.10.4rc2
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
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.0
27
27
  Requires-Dist: opengeode-inspector==6.8.1
28
28
  Requires-Dist: opengeode-io==7.4.0
29
29
  Requires-Dist: werkzeug==3.1.2
30
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.4rc9
30
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.4
31
31
  Dynamic: license-file
32
32
 
33
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -14,4 +14,4 @@ opengeode-geosciencesio==5.8.0
14
14
  opengeode-inspector==6.8.1
15
15
  opengeode-io==7.4.0
16
16
  werkzeug==3.1.2
17
- opengeodeweb-microservice==1.*,>=1.0.4rc9
17
+ opengeodeweb-microservice==1.*,>=1.0.4
@@ -14,7 +14,7 @@ from werkzeug.exceptions import HTTPException
14
14
  from opengeodeweb_back import utils_functions, app_config
15
15
  from opengeodeweb_back.routes import blueprint_routes
16
16
  from opengeodeweb_back.routes.models import blueprint_models
17
- from opengeodeweb_microservice.database.connection import init_database
17
+ from opengeodeweb_microservice.database import connection
18
18
 
19
19
 
20
20
  """ Global config """
@@ -39,6 +39,16 @@ SECONDS_BETWEEN_SHUTDOWNS: float = float(
39
39
  )
40
40
 
41
41
 
42
+ @app.before_request
43
+ def before_request() -> None:
44
+ utils_functions.before_request(flask.current_app)
45
+
46
+
47
+ @app.teardown_request
48
+ def teardown_request(exception: BaseException | None) -> None:
49
+ utils_functions.teardown_request(flask.current_app, exception)
50
+
51
+
42
52
  app.register_blueprint(
43
53
  blueprint_routes.routes,
44
54
  url_prefix="/opengeodeweb_back",
@@ -146,7 +156,7 @@ def run_server() -> None:
146
156
  app.config["SQLALCHEMY_DATABASE_URI"] = f"sqlite:///{db_path}"
147
157
  app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
148
158
 
149
- init_database(db_path)
159
+ connection.init_database(db_path)
150
160
  print(f"Database initialized at: {db_path}", flush=True)
151
161
 
152
162
  app.run(debug=args.debug, host=args.host, port=args.port, ssl_context=SSL)
@@ -16,20 +16,6 @@ from .models import blueprint_models
16
16
  routes = flask.Blueprint("routes", __name__, url_prefix="/opengeodeweb_back")
17
17
 
18
18
 
19
- @routes.before_request
20
- def before_request():
21
- if "ping" not in flask.request.path:
22
- utils_functions.increment_request_counter(flask.current_app)
23
-
24
-
25
- @routes.teardown_request
26
- def teardown_request(exception):
27
-
28
- if "ping" not in flask.request.path:
29
- utils_functions.decrement_request_counter(flask.current_app)
30
- utils_functions.update_last_request_time(flask.current_app)
31
-
32
-
33
19
  routes.register_blueprint(
34
20
  blueprint_models.routes,
35
21
  url_prefix=blueprint_models.routes.url_prefix,
@@ -41,13 +41,28 @@ def update_last_request_time(current_app: flask.Flask) -> None:
41
41
  current_app.config.update(LAST_REQUEST_TIME=LAST_REQUEST_TIME)
42
42
 
43
43
 
44
+ def terminate_session(exception: BaseException | None) -> None:
45
+ session = flask.g.pop("session", None)
46
+ if session is None:
47
+ return
48
+ if exception is None:
49
+ session.commit()
50
+ else:
51
+ session.rollback()
52
+ session.close()
53
+
54
+
44
55
  def before_request(current_app: flask.Flask) -> None:
45
56
  increment_request_counter(current_app)
57
+ flask.g.session = get_session()
46
58
 
47
59
 
48
- def teardown_request(current_app: flask.Flask) -> None:
60
+ def teardown_request(
61
+ current_app: flask.Flask, exception: BaseException | None = None
62
+ ) -> None:
49
63
  decrement_request_counter(current_app)
50
64
  update_last_request_time(current_app)
65
+ terminate_session(exception)
51
66
 
52
67
 
53
68
  def kill_task(current_app: flask.Flask) -> None:
@@ -202,10 +217,6 @@ def save_all_viewables_and_return_info(
202
217
  data_entry.viewable_file_name = os.path.basename(saved_viewable_file_path)
203
218
  data_entry.light_viewable = os.path.basename(saved_light_viewable_file_path)
204
219
 
205
- session = get_session()
206
- if session:
207
- session.commit()
208
-
209
220
  return {
210
221
  "native_file_name": data_entry.native_file_name,
211
222
  "viewable_file_name": data_entry.viewable_file_name,
@@ -213,7 +224,7 @@ def save_all_viewables_and_return_info(
213
224
  "object_type": geode_functions.get_object_type(geode_object),
214
225
  "binary_light_viewable": binary_light_viewable.decode("utf-8"),
215
226
  "geode_object": data_entry.geode_object,
216
- "input_files": data_entry.input_file,
227
+ "input_file": data_entry.input_file,
217
228
  "additional_files": data_entry.additional_files,
218
229
  }
219
230
 
@@ -228,7 +239,6 @@ def generate_native_viewable_and_light_viewable_from_file(
228
239
  geode_object: str, input_filename: str
229
240
  ) -> dict[str, Any]:
230
241
 
231
- session = get_session()
232
242
  temp_data_entry = Data.create(
233
243
  geode_object=geode_object,
234
244
  input_file=input_filename,
@@ -260,11 +270,6 @@ def generate_native_viewable_and_light_viewable_from_file(
260
270
 
261
271
  data = geode_functions.load(geode_object, copied_full_path)
262
272
 
263
- if session:
264
- session.delete(temp_data_entry)
265
- session.flush()
266
- session.commit()
267
-
268
273
  return save_all_viewables_and_return_info(
269
274
  geode_object,
270
275
  data,
@@ -116,7 +116,7 @@ def test_save_all_viewables_and_return_info(client):
116
116
  assert isinstance(result["object_type"], str)
117
117
  assert isinstance(result["binary_light_viewable"], str)
118
118
  assert result["geode_object"] == geode_object
119
- assert result["input_files"] == input_file
119
+ assert result["input_file"] == input_file
120
120
 
121
121
  db_entry = Data.get(result["id"])
122
122
  assert db_entry is not None
@@ -143,13 +143,6 @@ def test_save_all_viewables_commits_to_db(client):
143
143
  db_entry_before = Data.get(data_id)
144
144
  assert db_entry_before is not None
145
145
  assert db_entry_before.native_file_name == result["native_file_name"]
146
- session = get_session()
147
- session.rollback()
148
- db_entry_after = Data.get(data_id)
149
- assert (
150
- db_entry_after is not None
151
- ), "database.session.commit() was not called - entry missing after rollback"
152
- assert db_entry_after.native_file_name == result["native_file_name"]
153
146
 
154
147
 
155
148
  def test_generate_native_viewable_and_light_viewable_from_object(client):
@@ -173,7 +166,7 @@ def test_generate_native_viewable_and_light_viewable_from_object(client):
173
166
  assert re.match(r"[0-9a-f]{32}", result["id"])
174
167
  assert isinstance(result["object_type"], str)
175
168
  assert isinstance(result["binary_light_viewable"], str)
176
- assert result["input_files"] == ""
169
+ assert result["input_file"] == ""
177
170
 
178
171
 
179
172
  def test_generate_native_viewable_and_light_viewable_from_file(client):
@@ -195,4 +188,4 @@ def test_generate_native_viewable_and_light_viewable_from_file(client):
195
188
  assert re.match(r"[0-9a-f]{32}", result["id"])
196
189
  assert isinstance(result["object_type"], str)
197
190
  assert isinstance(result["binary_light_viewable"], str)
198
- assert isinstance(result["input_files"], str)
191
+ assert isinstance(result["input_file"], str)