fractal-server 2.14.0a0__py3-none-any.whl → 2.14.0a1__py3-none-any.whl

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.
@@ -1 +1 @@
1
- __VERSION__ = "2.14.0a0"
1
+ __VERSION__ = "2.14.0a1"
@@ -5,6 +5,7 @@ from fastapi import Depends
5
5
  from fastapi import HTTPException
6
6
  from fastapi import Response
7
7
  from fastapi import status
8
+ from sqlmodel import delete
8
9
  from sqlmodel import select
9
10
 
10
11
  from .....logger import reset_logger_handlers
@@ -12,6 +13,8 @@ from .....logger import set_logger
12
13
  from ....db import AsyncSession
13
14
  from ....db import get_async_db
14
15
  from ....models.v2 import DatasetV2
16
+ from ....models.v2 import HistoryItemV2
17
+ from ....models.v2 import ImageStatus
15
18
  from ....models.v2 import JobV2
16
19
  from ....models.v2 import LinkUserProjectV2
17
20
  from ....models.v2 import ProjectV2
@@ -161,6 +164,22 @@ async def delete_project(
161
164
  for job in jobs:
162
165
  logger.info(f"Setting Job[{job.id}].workflow_id to None.")
163
166
  job.workflow_id = None
167
+ # Cascade operations: set foreign-keys to null for history items
168
+ # which are in relationship with the current workflow
169
+ wft_ids = [wft.id for wft in wf.task_list]
170
+ stm = select(HistoryItemV2).where(
171
+ HistoryItemV2.workflowtask_id.in_(wft_ids)
172
+ )
173
+ res = await db.execute(stm)
174
+ history_items = res.scalars().all()
175
+ for history_item in history_items:
176
+ history_item.workflowtask_id = None
177
+ # Cascade operations: delete all image status which are in relationship
178
+ # with the current workflow
179
+ stm = delete(ImageStatus).where(
180
+ ImageStatus.workflowtask_id.in_(wft_ids)
181
+ )
182
+ await db.execute(stm)
164
183
  # Delete workflow
165
184
  logger.info(f"Adding Workflow[{wf.id}] to deletion.")
166
185
  await db.delete(wf)
@@ -180,6 +199,12 @@ async def delete_project(
180
199
  for job in jobs:
181
200
  logger.info(f"Setting Job[{job.id}].dataset_id to None.")
182
201
  job.dataset_id = None
202
+ # Cascade operations: delete history items and image statuses which are
203
+ # in relationship with the current dataset
204
+ stm = delete(HistoryItemV2).where(HistoryItemV2.dataset_id == ds.id)
205
+ await db.execute(stm)
206
+ stm = delete(ImageStatus).where(ImageStatus.dataset_id == ds.id)
207
+ await db.execute(stm)
183
208
  # Delete dataset
184
209
  logger.info(f"Adding Dataset[{ds.id}] to deletion.")
185
210
  await db.delete(ds)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fractal-server
3
- Version: 2.14.0a0
3
+ Version: 2.14.0a1
4
4
  Summary: Backend component of the Fractal analytics platform
5
5
  Home-page: https://github.com/fractal-analytics-platform/fractal-server
6
6
  License: BSD-3-Clause
@@ -1,4 +1,4 @@
1
- fractal_server/__init__.py,sha256=-BpqXrn9rdBZ9nskTf9w2keznxwwl_s4iKTWVW5MXlA,25
1
+ fractal_server/__init__.py,sha256=i6KRQMtGkZNUkj6PkUVE40hBCnPliGm9eHyaj34caWI,25
2
2
  fractal_server/__main__.py,sha256=igfS2XL3e8JycuhASl2vsYuIPma0MG0cfPPFRuQfh14,6906
3
3
  fractal_server/alembic.ini,sha256=MWwi7GzjzawI9cCAK1LW7NxIBQDUqD12-ptJoq5JpP0,3153
4
4
  fractal_server/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -40,7 +40,7 @@ fractal_server/app/routes/api/v2/dataset.py,sha256=gS5169eJRGHBQNUnkDB75Bv3Kg8Ql
40
40
  fractal_server/app/routes/api/v2/history.py,sha256=Np2TzTLstOKhrbqTsxak8Z1uvafsrGU2EHIflzgHfXQ,8093
41
41
  fractal_server/app/routes/api/v2/images.py,sha256=32sSDSWri_A8uQHcdbVTPvGGEjj9vk5ILj8q0-2jLX8,8507
42
42
  fractal_server/app/routes/api/v2/job.py,sha256=m89FTh9Px25oXCeWj2k2NdGWQaO2oxMh-6lZppcsJOY,5551
43
- fractal_server/app/routes/api/v2/project.py,sha256=3kMp1ValIVwY-qogfRNgWmSMk0jgsk1VJlY8MhwvH1Q,6665
43
+ fractal_server/app/routes/api/v2/project.py,sha256=mYTahW8udrfCbnVYrKPX2VPyT3kFjYScE500jZZz8e4,7827
44
44
  fractal_server/app/routes/api/v2/submit.py,sha256=K4OjcSg476JXIeeMUaYdTDk8Qpj5IO5UULvfErI7Y5Y,8624
45
45
  fractal_server/app/routes/api/v2/task.py,sha256=z3_SxsXoKsbM9GGNJUdIiZisQwAJSBqvCc7thaJIOTU,7191
46
46
  fractal_server/app/routes/api/v2/task_collection.py,sha256=IDNF6sjDuU37HIQ0TuQA-TZIuf7nfHAQXUUNmkrlhLM,12706
@@ -205,8 +205,8 @@ fractal_server/tasks/v2/utils_templates.py,sha256=07TZpJ0Mh_A4lXVXrrH2o1VLFFGwxe
205
205
  fractal_server/urls.py,sha256=QjIKAC1a46bCdiPMu3AlpgFbcv6a4l3ABcd5xz190Og,471
206
206
  fractal_server/utils.py,sha256=PMwrxWFxRTQRl1b9h-NRIbFGPKqpH_hXnkAT3NfZdpY,3571
207
207
  fractal_server/zip_tools.py,sha256=GjDgo_sf6V_DDg6wWeBlZu5zypIxycn_l257p_YVKGc,4876
208
- fractal_server-2.14.0a0.dist-info/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
209
- fractal_server-2.14.0a0.dist-info/METADATA,sha256=mbF86y24zVVZ18m50gnS2ghCXEDjqktpK5DWwv7Tok0,4550
210
- fractal_server-2.14.0a0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
211
- fractal_server-2.14.0a0.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
212
- fractal_server-2.14.0a0.dist-info/RECORD,,
208
+ fractal_server-2.14.0a1.dist-info/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
209
+ fractal_server-2.14.0a1.dist-info/METADATA,sha256=JUF12zuO6tyA45Y1CCKwxWlMbOYLaiLkTcXDbahCyes,4550
210
+ fractal_server-2.14.0a1.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
211
+ fractal_server-2.14.0a1.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
212
+ fractal_server-2.14.0a1.dist-info/RECORD,,