From 16a273eae693f0e87b040b1cf1761b1bb0d9a9cc Mon Sep 17 00:00:00 2001 From: SpliiT Date: Mon, 18 May 2026 10:21:58 +0200 Subject: [PATCH 1/4] feat(VOITopo): Create a VOI from a topo and curve --- requirements.in | 18 +++++++++--------- requirements.txt | 42 ++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 33 deletions(-) diff --git a/requirements.in b/requirements.in index f2a7cdef..d92be69f 100644 --- a/requirements.in +++ b/requirements.in @@ -1,10 +1,10 @@ -opengeode-core==16.3.2 -opengeode-io==7.4.9 -opengeode-inspector==6.8.18 -opengeode-geosciences==9.5.11 -opengeode-geosciencesio==5.8.11 -geode-common==33.20.0 -geode-viewables==3.3.5 +opengeode-core==17.0.1 +opengeode-io==7.6.2 +opengeode-inspector==6.8.21 +opengeode-geosciences==9.5.14 +opengeode-geosciencesio==5.8.14 +geode-common==33.21.5 +geode-viewables==3.3.8 flask[async]==3.1.2 -flask-cors==6.0.1 -werkzeug==3.1.2 +flask-cors==6.0.2 +werkzeug==3.1.8 diff --git a/requirements.txt b/requirements.txt index 0e5c74cf..bfca5ffc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,37 +1,33 @@ -# -# This file is autogenerated by pip-compile with Python 3.12 -# by the following command: -# -# pip-compile --output-file=./requirements.txt ./requirements.in -# -asgiref>=3 +# This file was autogenerated by uv via the following command: +# uv pip compile requirements.in -o requirements.txt +asgiref==3.11.1 # via flask -blinker>=1 +blinker==1.9.0 # via flask -click>=8 +click==8.4.0 # via flask -flask[async]>=3 +flask==3.1.2 # via # -r requirements.in # flask-cors -flask-cors==6.0.1 +flask-cors==6.0.2 # via -r requirements.in -geode-common==33.20.0 +geode-common==33.21.5 # via # -r requirements.in # geode-viewables -geode-viewables==3.3.5 +geode-viewables==3.3.8 # via -r requirements.in -itsdangerous>=2 +itsdangerous==2.2.0 # via flask -jinja2>=3 +jinja2==3.1.6 # via flask -markupsafe>=3 +markupsafe==3.0.3 # via # flask # jinja2 # werkzeug -opengeode-core==16.3.2 +opengeode-core==17.0.1 # via # -r requirements.in # geode-common @@ -40,24 +36,22 @@ opengeode-core==16.3.2 # opengeode-geosciencesio # opengeode-inspector # opengeode-io -opengeode-geosciences==9.5.11 +opengeode-geosciences==9.5.14 # via # -r requirements.in # geode-viewables # opengeode-geosciencesio -opengeode-geosciencesio==5.8.11 +opengeode-geosciencesio==5.8.14 # via -r requirements.in -opengeode-inspector==6.8.18 +opengeode-inspector==6.8.21 # via -r requirements.in -opengeode-io==7.4.9 +opengeode-io==7.6.2 # via # -r requirements.in # geode-viewables # opengeode-geosciencesio -werkzeug==3.1.2 +werkzeug==3.1.8 # via # -r requirements.in # flask # flask-cors - -opengeodeweb-microservice==1.*,>=1.1.3 From e3c16fe1915f660d65b83d0486367f4942d46e1b Mon Sep 17 00:00:00 2001 From: SpliiT <106495600+SpliiT@users.noreply.github.com> Date: Mon, 18 May 2026 08:27:29 +0000 Subject: [PATCH 2/4] Apply prepare changes --- requirements.txt | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/requirements.txt b/requirements.txt index bfca5ffc..3a4eb2d3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,16 @@ -# This file was autogenerated by uv via the following command: -# uv pip compile requirements.in -o requirements.txt -asgiref==3.11.1 +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --output-file=./requirements.txt ./requirements.in +# +asgiref>=3 # via flask -blinker==1.9.0 +blinker>=1 # via flask -click==8.4.0 +click>=8 # via flask -flask==3.1.2 +flask[async]>=3 # via # -r requirements.in # flask-cors @@ -18,11 +22,11 @@ geode-common==33.21.5 # geode-viewables geode-viewables==3.3.8 # via -r requirements.in -itsdangerous==2.2.0 +itsdangerous>=2 # via flask -jinja2==3.1.6 +jinja2>=3 # via flask -markupsafe==3.0.3 +markupsafe>=3 # via # flask # jinja2 @@ -55,3 +59,4 @@ werkzeug==3.1.8 # -r requirements.in # flask # flask-cors + From 985dd20b7a3e506a2b9fd65c3a05b1ef16e99b82 Mon Sep 17 00:00:00 2001 From: SpliiT Date: Mon, 18 May 2026 10:33:24 +0200 Subject: [PATCH 3/4] tests csv --- tests/data/test.csv | 5 +++++ tests/data/test.csv.json | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 tests/data/test.csv create mode 100644 tests/data/test.csv.json diff --git a/tests/data/test.csv b/tests/data/test.csv new file mode 100644 index 00000000..f745cd00 --- /dev/null +++ b/tests/data/test.csv @@ -0,0 +1,5 @@ +X,Y,Z +0.0,0.0,0.0 +1.0,0.0,0.0 +0.0,1.0,0.0 +0.0,0.0,1.0 diff --git a/tests/data/test.csv.json b/tests/data/test.csv.json new file mode 100644 index 00000000..182e3c0b --- /dev/null +++ b/tests/data/test.csv.json @@ -0,0 +1,13 @@ +{ + "separator": ",", + "header_row": 0, + "first_row": 1, + "x_column": 0, + "y_column": 1, + "z_column": 2, + "headerRow": 0, + "firstRow": 1, + "xColumn": 0, + "yColumn": 1, + "zColumn": 2 +} From 3cdc87ccff6d955a01bd89ffd802a15d210b08be Mon Sep 17 00:00:00 2001 From: SpliiT Date: Mon, 18 May 2026 11:52:45 +0200 Subject: [PATCH 4/4] fix(csv): ensure CSV sidecar is saved as .json, add test sidecar, and export all dataset folder files to fix import/export --- src/opengeodeweb_back/routes/blueprint_routes.py | 14 +++++++++----- tests/data/test.json | 13 +++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 tests/data/test.json diff --git a/src/opengeodeweb_back/routes/blueprint_routes.py b/src/opengeodeweb_back/routes/blueprint_routes.py index ae6cf496..83b3c905 100644 --- a/src/opengeodeweb_back/routes/blueprint_routes.py +++ b/src/opengeodeweb_back/routes/blueprint_routes.py @@ -64,7 +64,10 @@ def upload_file() -> flask.Response: flask.abort(400, "Filename is required") filename = werkzeug.utils.secure_filename(os.path.basename(file.filename)) print(f"{filename=}", flush=True) - file.save(os.path.join(UPLOAD_FOLDER, filename)) + file_path = os.path.join(UPLOAD_FOLDER, filename) + file.save(file_path) + if filename.lower().endswith(".csv.json"): + shutil.copyfile(file_path, os.path.join(UPLOAD_FOLDER, filename[:-9] + ".json")) return flask.make_response({"message": "File uploaded"}, 201) @@ -432,10 +435,11 @@ def export_project() -> flask.Response: for data_id, native_file in rows: base_dir = os.path.join(project_folder, data_id) - - native_path = os.path.join(base_dir, str(native_file)) - if os.path.isfile(native_path): - zip_file.write(native_path, os.path.join(data_id, str(native_file))) + if os.path.isdir(base_dir): + for f_name in os.listdir(base_dir): + file_path = os.path.join(base_dir, f_name) + if os.path.isfile(file_path): + zip_file.write(file_path, os.path.join(data_id, f_name)) zip_file.writestr("snapshot.json", flask.json.dumps(params.snapshot)) diff --git a/tests/data/test.json b/tests/data/test.json new file mode 100644 index 00000000..182e3c0b --- /dev/null +++ b/tests/data/test.json @@ -0,0 +1,13 @@ +{ + "separator": ",", + "header_row": 0, + "first_row": 1, + "x_column": 0, + "y_column": 1, + "z_column": 2, + "headerRow": 0, + "firstRow": 1, + "xColumn": 0, + "yColumn": 1, + "zColumn": 2 +}