From 745e71c948d9fd4ab7fea35f23b538044f1971a4 Mon Sep 17 00:00:00 2001 From: SilvinWillemsen Date: Mon, 13 Apr 2026 14:35:44 +0200 Subject: [PATCH 1/4] Updated the schema files to work with new requirements. Removed all specific versions from the requirements file (so that in the future we won't have conflicts with DeepONet dependencies). Finally, changed some path names for local simulation method finding (in config.py). Used to be in app/simulation-backend, now in ../simulation-backend. --- app/schemas/auralization_schema.py | 2 +- app/schemas/file_schema.py | 4 +- app/schemas/geometry_schema.py | 2 +- app/schemas/material_schema.py | 2 +- app/schemas/mesh_schema.py | 2 +- app/schemas/model_schema.py | 2 +- app/schemas/project_schema.py | 2 +- config.py | 8 +- requirements.txt | 286 ++++++++++++++--------------- 9 files changed, 153 insertions(+), 157 deletions(-) diff --git a/app/schemas/auralization_schema.py b/app/schemas/auralization_schema.py index adeb528..7e8d24f 100644 --- a/app/schemas/auralization_schema.py +++ b/app/schemas/auralization_schema.py @@ -19,7 +19,7 @@ class AuralizationSchema(Schema): id = fields.Integer() simulationId = fields.Integer() audioFileId = fields.Integer() - status = fields.Enum(Status, default=Status.Uncreated) + status = fields.Enum(Status, dump_default=Status.Uncreated) createdAt = fields.String() updatedAt = fields.String() diff --git a/app/schemas/file_schema.py b/app/schemas/file_schema.py index b39b10a..4e98a65 100644 --- a/app/schemas/file_schema.py +++ b/app/schemas/file_schema.py @@ -2,10 +2,10 @@ class FileSchema(Schema): - id = fields.Number() + id = fields.Integer() fileName = fields.Str() slot = fields.Str() - size = fields.Number() + size = fields.Integer() class GetSlotSchema(Schema): diff --git a/app/schemas/geometry_schema.py b/app/schemas/geometry_schema.py index b4c2829..1957de7 100644 --- a/app/schemas/geometry_schema.py +++ b/app/schemas/geometry_schema.py @@ -16,7 +16,7 @@ class GeometrySchema(Schema): class GeometryStartQuerySchema(Schema): - fileUploadId = fields.Number(required=True) + fileUploadId = fields.Integer(required=True) class GeometryGetQuerySchema(Schema): diff --git a/app/schemas/material_schema.py b/app/schemas/material_schema.py index 92cd80d..2b0665c 100644 --- a/app/schemas/material_schema.py +++ b/app/schemas/material_schema.py @@ -14,7 +14,7 @@ class MaterialUpdateSchema(Schema): absorptionCoefficients = fields.List(fields.Float()) class MaterialSchema(MaterialCreateSchema): - id = fields.Number() + id = fields.Integer() origin = fields.String() createdAt = fields.String() updatedAt = fields.String() diff --git a/app/schemas/mesh_schema.py b/app/schemas/mesh_schema.py index 631e58f..4f52404 100644 --- a/app/schemas/mesh_schema.py +++ b/app/schemas/mesh_schema.py @@ -10,7 +10,7 @@ class MeshSchema(Schema): - id = fields.Number() + id = fields.Integer() taskId = fields.Integer() createdAt = fields.Str() diff --git a/app/schemas/model_schema.py b/app/schemas/model_schema.py index 3b557ff..0f23ed9 100644 --- a/app/schemas/model_schema.py +++ b/app/schemas/model_schema.py @@ -4,7 +4,7 @@ class ModelSchema(Schema): - id = fields.Number() + id = fields.Integer() name = fields.Str(required=True) sourceFileId = fields.Integer() outputFileId = fields.Integer() diff --git a/app/schemas/project_schema.py b/app/schemas/project_schema.py index 26e272f..6adaff9 100644 --- a/app/schemas/project_schema.py +++ b/app/schemas/project_schema.py @@ -6,7 +6,7 @@ class ProjectSchema(Schema): - id = fields.Number() + id = fields.Integer() name = fields.Str(required=True) description = fields.Str(required=True) group = fields.Str(required=True) diff --git a/config.py b/config.py index 2743e88..d579336 100644 --- a/config.py +++ b/config.py @@ -71,14 +71,14 @@ class DefaultConfig: #SETTINGS_FILE_FOLDER = "/app/simulation-backend/example_settings" SETTINGS_FILE_FOLDER = os.environ.get( "SETTINGS_FILE_FOLDER", - "/app/simulation-backend/example_settings" + "../simulation-backend/example_settings" ) - #METHODS_CONFIG_PATH = "/app/simulation-backend/methods-config.json" + # METHODS_CONFIG_PATH = "/app/simulation-backend/methods-config.json" METHODS_CONFIG_PATH = os.environ.get( "METHODS_CONFIG_PATH", - "/app/simulation-backend/methods-config.json" -) + "../simulation-backend/methods-config.json" + ) USER_MODEL_IMAGE_FOLDER_NAME = os.path.join(UPLOAD_FOLDER_NAME, "model_images") diff --git a/requirements.txt b/requirements.txt index d1727ab..bd8a108 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,144 +1,144 @@ -alabaster==0.7.16 -alembic==1.10.2 -amqp==5.2.0 -apispec==6.3.0 -asgiref==3.7.2 -asttokens==2.2.1 -attrs==23.2.0 -Babel==2.15.0 -backcall==0.2.0 -billiard==4.2.0 -black==25.1.0 -blinker==1.5 -celery==5.4.0 -certifi==2023.5.7 -cfgv==3.4.0 -charset-normalizer==3.3.2 -click==8.1.3 -click-didyoumean==0.3.1 -click-plugins==1.1.1 -click-repl==0.3.0 -colorama==0.4.6 -comm==0.1.2 -contourpy==1.2.1 -coverage==7.2.7 -cycler==0.12.1 -debugpy==1.6.4 -decorator==5.1.1 -distlib==0.3.6 -Django==4.2.6 -dnspython==2.6.1 -docutils==0.21.2 -entrypoints==0.4 -eventlet==0.36.1 -executing==1.2.0 -filelock==3.12.2 -flake8==6.1.0 -Flask==2.2.5 -Flask-Cors==3.0.10 -Flask-JWT-Extended==4.4.4 -Flask-Migrate==4.0.4 -Flask-Script==2.0.5 -flask-smorest==0.40.0 -Flask-SQLAlchemy==3.0.3 -fonttools==4.53.1 -gmsh==4.13.1 -greenlet==2.0.2 -gunicorn==21.2.0 -identify==2.6.0 -idna==3.7 -imagesize==1.4.1 -importlib-metadata==6.7.0 -ipykernel==6.19.2 -ipython==8.10.0 -isort==5.12.0 -itsdangerous==2.1.2 -jedi==0.18.2 -Jinja2==3.1.2 -jsonschema==4.22.0 -jsonschema-specifications==2023.12.1 -jupyter_client==7.4.8 -jupyter_core==5.1.0 -kiwisolver==1.4.5 -kombu==5.3.7 -Mako==1.2.4 -markdown-it-py==3.0.0 -MarkupSafe==2.1.2 -marshmallow==3.19.0 -mccabe==0.7.0 -mdurl==0.1.2 -meshio==5.3.5 -mypy-extensions==1.0.0 -nest-asyncio==1.5.6 -networkx==3.3 -nodeenv==1.9.1 +alabaster +alembic +amqp +apispec +asgiref +asttokens +attrs +Babel +backcall +billiard +black +blinker +celery +certifi +cfgv +charset-normalizer +click +click-didyoumean +click-plugins +click-repl +colorama +comm +contourpy +coverage +cycler +debugpy +decorator +distlib +Django +dnspython +docutils +entrypoints +eventlet +executing +filelock +flake8 +Flask +Flask-Cors +Flask-JWT-Extended +Flask-Migrate +Flask-Script +flask-smorest +Flask-SQLAlchemy +fonttools +gmsh +greenlet +gunicorn +identify +idna +imagesize +importlib-metadata +ipykernel +ipython +isort +itsdangerous +jedi +Jinja2 +jsonschema +jsonschema-specifications +jupyter_client +jupyter_core +kiwisolver +kombu +Mako +markdown-it-py +MarkupSafe +marshmallow +mccabe +mdurl +meshio +mypy-extensions +nest-asyncio +networkx +nodeenv numpy -numpy-stl==3.1.1 -openpyxl==3.1.5 -packaging==22.0 -pandas==2.2.3 -parso==0.8.3 -passlib==1.7.4 -pathspec==0.12.1 -pexpect==4.8.0 -pickleshare==0.7.5 -pillow==10.3.0 -pipenv==2023.7.3 -platformdirs==3.8.0 -pre-commit==3.8.0 -prompt-toolkit==3.0.36 -psutil==5.9.4 -psycopg2-binary==2.9.6 -ptyprocess==0.7.0 -pure-eval==0.2.2 -pycodestyle==2.11.1 -pyflakes==3.1.0 -pyglet==1.5.29 -Pygments==2.18.0 -PyJWT==2.6.0 -pyparsing==3.1.2 -python-dateutil==2.8.2 -python-dotenv==1.0.0 -python-utils==3.8.2 -pytz==2023.3 -# pywin32==306 -PyYAML==6.0.2 -pyzmq==24.0.1 -referencing==0.35.1 -requests==2.32.3 -rhino3dm==8.6.1 -rich==13.7.1 -rpds-py==0.18.1 -scipy==1.14.0 -six==1.16.0 -snowballstemmer==2.2.0 -soundfile==0.13.1 -Sphinx==7.3.7 # Docs -sphinxcontrib-applehelp==1.0.8 # docs, potentially secondary requirement -sphinxcontrib-devhelp==1.0.6 # docs, potentially secondary requirement -sphinxcontrib-htmlhelp==2.0.5 # docs, potentially secondary requirement -sphinxcontrib-jsmath==1.0.1 # docs, potentially secondary requirement -sphinxcontrib-qthelp==1.0.7 # docs, potentially secondary requirement -sphinxcontrib-serializinghtml==1.1.10 # docs, potentially secondary requirement -SQLAlchemy==2.0.7 -sqlparse==0.4.4 -stack-data==0.6.2 -tomli==2.0.1 -tornado==6.3.2 -traitlets==5.7.1 -trimesh==4.4.1 +numpy-stl +openpyxl +packaging +pandas +parso +passlib +pathspec +pexpect +pickleshare +pillow +pipenv +platformdirs +pre-commit +prompt-toolkit +psutil +psycopg2-binary +ptyprocess +pure-eval +pycodestyle +pyflakes +pyglet +Pygments +PyJWT +pyparsing +python-dateutil +python-dotenv +python-utils +pytz +# pywin32 +PyYAML +pyzmq +referencing +requests +rhino3dm +rich +rpds-py +scipy +six +snowballstemmer +soundfile +Sphinx # Docs +sphinxcontrib-applehelp # docs, potentially secondary requirement +sphinxcontrib-devhelp # docs, potentially secondary requirement +sphinxcontrib-htmlhelp # docs, potentially secondary requirement +sphinxcontrib-jsmath # docs, potentially secondary requirement +sphinxcontrib-qthelp # docs, potentially secondary requirement +sphinxcontrib-serializinghtml # docs, potentially secondary requirement +SQLAlchemy +sqlparse +stack-data +tomli +tornado +traitlets +trimesh typing_extensions -tzdata==2023.3 -urllib3==2.2.2 -vine==5.1.0 -virtualenv==20.23.1 -virtualenv-clone==0.5.7 -watchdog==4.0.1 -wcwidth==0.2.5 -webargs==8.2.0 -Werkzeug==2.2.3 -wincertstore==0.2 -zipp==3.15.0 +tzdata +urllib3 +vine +virtualenv +virtualenv-clone +watchdog +wcwidth +webargs +Werkzeug +wincertstore +zipp pytest locust ezdxf @@ -149,11 +149,7 @@ sphinx-design # Docs, required for tabs and other design elements sphinx-copybutton # Docs, required for copy buttons in code blocks sphinx-gallery # Docs, required for example gallery matplotlib # Docs, required for plot directive -pyroomacoustics +# pyroomacoustics docker pathlib -paramiko -git+https://github.com/Building-acoustics-TU-Eindhoven/acousticDE.git@d32afb2498e27bd996fc7356d57dc4f1ed76aa44#egg=acousticDE -# git+https://github.com/dtu-act/deeponet-acoustic-wave-prop.git@3d3fc5ee952756eedcd4fec3c3674ad829825c7e#egg=deeponet-acoustics -git+https://github.com/Building-acoustics-TU-Eindhoven/edg-acoustics.git@08cac98da98ed14ba1366741b1c0644001503b82#egg=edg-acoustics - +paramiko \ No newline at end of file From 5e5d309a5c64867df8dc49a2988a95e45ebdfe4b Mon Sep 17 00:00:00 2001 From: SilvinWillemsen Date: Mon, 13 Apr 2026 17:52:56 +0200 Subject: [PATCH 2/4] Re-added app/ as this is needed for the docker containers working properly. Should figure out a way to have docker and local setups coexist. Also re-added acousticDE as a requirement as we need for the generate_mesh function (we should decouple it at some point though) --- config.py | 4 ++-- requirements.txt | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/config.py b/config.py index d579336..064ad3d 100644 --- a/config.py +++ b/config.py @@ -71,13 +71,13 @@ class DefaultConfig: #SETTINGS_FILE_FOLDER = "/app/simulation-backend/example_settings" SETTINGS_FILE_FOLDER = os.environ.get( "SETTINGS_FILE_FOLDER", - "../simulation-backend/example_settings" + "/app/simulation-backend/example_settings" ) # METHODS_CONFIG_PATH = "/app/simulation-backend/methods-config.json" METHODS_CONFIG_PATH = os.environ.get( "METHODS_CONFIG_PATH", - "../simulation-backend/methods-config.json" + "/app/simulation-backend/methods-config.json" ) diff --git a/requirements.txt b/requirements.txt index bd8a108..e0e9d14 100644 --- a/requirements.txt +++ b/requirements.txt @@ -152,4 +152,6 @@ matplotlib # Docs, required for plot directive # pyroomacoustics docker pathlib -paramiko \ No newline at end of file +paramiko + +acousticDE # Needed for generate_mesh function (should decouple at some point) \ No newline at end of file From e63e990f7a5bfb9698b3c4944766b9af6f490581 Mon Sep 17 00:00:00 2001 From: SilvinWillemsen Date: Mon, 4 May 2026 11:25:55 +0200 Subject: [PATCH 3/4] Added mimimum required marshmallow version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e0e9d14..b10435b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -64,7 +64,7 @@ kombu Mako markdown-it-py MarkupSafe -marshmallow +marshmallow>=3.13.0 mccabe mdurl meshio From 43206ee6066a5e604230108841b0df66ab44a152 Mon Sep 17 00:00:00 2001 From: SilvinWillemsen <32464520+SilvinWillemsen@users.noreply.github.com> Date: Mon, 4 May 2026 11:26:53 +0200 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: Marco Berzborn --- config.py | 4 ++-- requirements.txt | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/config.py b/config.py index 064ad3d..2743e88 100644 --- a/config.py +++ b/config.py @@ -74,11 +74,11 @@ class DefaultConfig: "/app/simulation-backend/example_settings" ) - # METHODS_CONFIG_PATH = "/app/simulation-backend/methods-config.json" + #METHODS_CONFIG_PATH = "/app/simulation-backend/methods-config.json" METHODS_CONFIG_PATH = os.environ.get( "METHODS_CONFIG_PATH", "/app/simulation-backend/methods-config.json" - ) +) USER_MODEL_IMAGE_FOLDER_NAME = os.path.join(UPLOAD_FOLDER_NAME, "model_images") diff --git a/requirements.txt b/requirements.txt index b10435b..b4bd1b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -149,7 +149,6 @@ sphinx-design # Docs, required for tabs and other design elements sphinx-copybutton # Docs, required for copy buttons in code blocks sphinx-gallery # Docs, required for example gallery matplotlib # Docs, required for plot directive -# pyroomacoustics docker pathlib paramiko