fractal-server 2.19.0a1__py3-none-any.whl → 2.19.0a2__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.19.0a1"
1
+ __VERSION__ = "2.19.0a2"
@@ -32,3 +32,5 @@ class WorkflowV2(SQLModel, table=True):
32
32
  default_factory=get_timestamp,
33
33
  sa_column=Column(DateTime(timezone=True), nullable=False),
34
34
  )
35
+
36
+ description: str | None = Field(default=None, nullable=True)
@@ -39,3 +39,6 @@ class WorkflowTaskV2(SQLModel, table=True):
39
39
  task_type: str
40
40
  task_id: int = Field(foreign_key="taskv2.id")
41
41
  task: TaskV2 = Relationship(sa_relationship_kwargs=dict(lazy="selectin"))
42
+
43
+ alias: str | None = Field(default=None, nullable=True)
44
+ description: str | None = Field(default=None, nullable=True)
@@ -216,7 +216,7 @@ async def submit_job(
216
216
  dataset.model_dump_json(exclude={"images", "history"})
217
217
  ),
218
218
  workflow_dump=json.loads(
219
- workflow.model_dump_json(exclude={"task_list"})
219
+ workflow.model_dump_json(exclude={"task_list", "description"})
220
220
  ),
221
221
  project_dump=json.loads(
222
222
  project.model_dump_json(exclude={"resource_id"})
@@ -149,7 +149,7 @@ async def update_workflow(
149
149
  db=db,
150
150
  )
151
151
 
152
- if patch.name:
152
+ if patch.name and patch.name != workflow.name:
153
153
  await _check_workflow_exists(
154
154
  name=patch.name, project_id=project_id, db=db
155
155
  )
@@ -193,13 +193,8 @@ async def update_workflowtask(
193
193
  if not actual_args:
194
194
  actual_args = None
195
195
  setattr(db_wf_task, key, actual_args)
196
- elif key in ["meta_parallel", "meta_non_parallel", "type_filters"]:
197
- setattr(db_wf_task, key, value)
198
196
  else:
199
- raise HTTPException(
200
- status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
201
- detail=f"patch_workflow_task endpoint cannot set {key=}",
202
- )
197
+ setattr(db_wf_task, key, value)
203
198
 
204
199
  await db.commit()
205
200
  await db.refresh(db_wf_task)
@@ -29,6 +29,7 @@ class WorkflowRead(BaseModel):
29
29
  task_list: list[WorkflowTaskRead]
30
30
  project: ProjectRead
31
31
  timestamp_created: AwareDatetime
32
+ description: str | None
32
33
 
33
34
  @field_serializer("timestamp_created")
34
35
  def serialize_datetime(v: datetime) -> str:
@@ -44,6 +45,7 @@ class WorkflowUpdate(BaseModel):
44
45
 
45
46
  name: NonEmptyStr = None
46
47
  reordered_workflowtask_ids: ListUniqueNonNegativeInt | None = None
48
+ description: str | None = None
47
49
 
48
50
 
49
51
  class WorkflowImport(BaseModel):
@@ -49,6 +49,9 @@ class WorkflowTaskRead(BaseModel):
49
49
  task_id: int
50
50
  task: TaskRead
51
51
 
52
+ alias: str | None = None
53
+ description: str | None = None
54
+
52
55
 
53
56
  class WorkflowTaskReadWithWarning(WorkflowTaskRead):
54
57
  warning: str | None = None
@@ -62,6 +65,8 @@ class WorkflowTaskUpdate(BaseModel):
62
65
  args_non_parallel: WorkflowTaskArgument | None = None
63
66
  args_parallel: WorkflowTaskArgument | None = None
64
67
  type_filters: TypeFilters = None
68
+ description: str | None = None
69
+ alias: str | None = None
65
70
 
66
71
 
67
72
  class WorkflowTaskImport(BaseModel):
@@ -0,0 +1,53 @@
1
+ """Add description to workflow and description and alias to workflow task
2
+
3
+ Revision ID: 1bf8785755f9
4
+ Revises: 5fb08bf05b14
5
+ Create Date: 2026-01-26 09:03:18.396841
6
+
7
+ """
8
+
9
+ import sqlalchemy as sa
10
+ import sqlmodel
11
+ from alembic import op
12
+
13
+ # revision identifiers, used by Alembic.
14
+ revision = "1bf8785755f9"
15
+ down_revision = "5fb08bf05b14"
16
+ branch_labels = None
17
+ depends_on = None
18
+
19
+
20
+ def upgrade() -> None:
21
+ # ### commands auto generated by Alembic - please adjust! ###
22
+ with op.batch_alter_table("workflowtaskv2", schema=None) as batch_op:
23
+ batch_op.add_column(
24
+ sa.Column(
25
+ "alias", sqlmodel.sql.sqltypes.AutoString(), nullable=True
26
+ )
27
+ )
28
+ batch_op.add_column(
29
+ sa.Column(
30
+ "description", sqlmodel.sql.sqltypes.AutoString(), nullable=True
31
+ )
32
+ )
33
+
34
+ with op.batch_alter_table("workflowv2", schema=None) as batch_op:
35
+ batch_op.add_column(
36
+ sa.Column(
37
+ "description", sqlmodel.sql.sqltypes.AutoString(), nullable=True
38
+ )
39
+ )
40
+
41
+ # ### end Alembic commands ###
42
+
43
+
44
+ def downgrade() -> None:
45
+ # ### commands auto generated by Alembic - please adjust! ###
46
+ with op.batch_alter_table("workflowv2", schema=None) as batch_op:
47
+ batch_op.drop_column("description")
48
+
49
+ with op.batch_alter_table("workflowtaskv2", schema=None) as batch_op:
50
+ batch_op.drop_column("description")
51
+ batch_op.drop_column("alias")
52
+
53
+ # ### end Alembic commands ###
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fractal-server
3
- Version: 2.19.0a1
3
+ Version: 2.19.0a2
4
4
  Summary: Backend component of the Fractal analytics platform
5
5
  Author: Tommaso Comparin, Marco Franzon, Yuri Chiucconi, Jacopo Nespolo
6
6
  Author-email: Tommaso Comparin <tommaso.comparin@exact-lab.it>, Marco Franzon <marco.franzon@exact-lab.it>, Yuri Chiucconi <yuri.chiucconi@exact-lab.it>, Jacopo Nespolo <jacopo.nespolo@exact-lab.it>
@@ -1,4 +1,4 @@
1
- fractal_server/__init__.py,sha256=LWs6pp7iYucF_bcAJBrLMG4BtvigBBOocgOTVrQBfeU,25
1
+ fractal_server/__init__.py,sha256=24JN71dg1bD_xeK3Em_UI_JrE35J7DZVx6yMWX2xQTg,25
2
2
  fractal_server/__main__.py,sha256=QeKoAgqoiozLJDa8kSVe-Aso1WWgrk1yLUYWS8RxZVM,11405
3
3
  fractal_server/alembic.ini,sha256=MWwi7GzjzawI9cCAK1LW7NxIBQDUqD12-ptJoq5JpP0,3153
4
4
  fractal_server/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -17,8 +17,8 @@ fractal_server/app/models/v2/project.py,sha256=VvLXrgzKYLH585mYg_txrO8q3JoSoSEy4
17
17
  fractal_server/app/models/v2/resource.py,sha256=XaHlJj9CladIahkrpywWXn8JBSx7_qEHp_wnkFuQ0rU,3896
18
18
  fractal_server/app/models/v2/task.py,sha256=v0brBHnAbcHrgDiuRHMWYahklq0fgyezZ0c9krKSA10,1463
19
19
  fractal_server/app/models/v2/task_group.py,sha256=C03LGKIO61Asj7Qz7qeIrZwWdfzoXBliLCeb9jzT5WI,4595
20
- fractal_server/app/models/v2/workflow.py,sha256=AsL7p8UMGbow--21IG2lYZnOjQ--m85dRWaNCHqb35I,1069
21
- fractal_server/app/models/v2/workflowtask.py,sha256=qkTc-hcFLpJUVsEUbnDq2BJL0qg9jagy2doZeusF1ek,1266
20
+ fractal_server/app/models/v2/workflow.py,sha256=VKXIX3L3jP8eCdIQhVf5AhhwKGO_LTxn7uB4_sCirLs,1135
21
+ fractal_server/app/models/v2/workflowtask.py,sha256=jEt81PGHuXSY8MYid0t15CntIIg0Lzq39uvG4X4Mx6s,1391
22
22
  fractal_server/app/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  fractal_server/app/routes/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  fractal_server/app/routes/admin/v2/__init__.py,sha256=VF4wg09fvz6gVgIFe-r7LoCU9tlF9kBcEhkQRQPhatY,1134
@@ -51,7 +51,7 @@ fractal_server/app/routes/api/v2/pre_submission_checks.py,sha256=wqZ44rCJ8f2Wcpy
51
51
  fractal_server/app/routes/api/v2/project.py,sha256=dirGShqcuEnK1sVh-Bl6kemj_z6A32s8ARNqSLIFhM8,5729
52
52
  fractal_server/app/routes/api/v2/sharing.py,sha256=W8Zf_rmTJwbFYz3XCrL9IFN6KXph5c97YS6Ok8oHTHM,9658
53
53
  fractal_server/app/routes/api/v2/status_legacy.py,sha256=qSV1wibqleOR084CTYNlXMuCkieL1aqlQXogTShd-1c,6002
54
- fractal_server/app/routes/api/v2/submit.py,sha256=1J2QABGo8jzMxWqMFTG8nM4Ru-88h8Zjf9rJa3xuaoA,9544
54
+ fractal_server/app/routes/api/v2/submit.py,sha256=-RtAqHDTJ9fV82sn0Rwhg0LWgznhN3t_qgZ6hycfu1I,9559
55
55
  fractal_server/app/routes/api/v2/task.py,sha256=xKeGon7aRBOu1gnYd9EnWW1V-pnIqSVpXkN3dnubH3A,7418
56
56
  fractal_server/app/routes/api/v2/task_collection.py,sha256=IFbFMadudfqBOu7CgMaQUr9dAhev_qiP-e43ZHV0gIE,12322
57
57
  fractal_server/app/routes/api/v2/task_collection_custom.py,sha256=yZ0c3hWkq3nR5CKYP63yU6D1--xWjS2aimqoYWrQT5I,6894
@@ -59,9 +59,9 @@ fractal_server/app/routes/api/v2/task_collection_pixi.py,sha256=qNqKvXAwQg9c6kwI
59
59
  fractal_server/app/routes/api/v2/task_group.py,sha256=Jemgrc_1qA6b8at48BePMLJennterLIpJwoa077jMmc,7632
60
60
  fractal_server/app/routes/api/v2/task_group_lifecycle.py,sha256=GOwIq78_M-HZylHGkGZJcu0yLIyjM4wpDsB8jobpWwI,10471
61
61
  fractal_server/app/routes/api/v2/task_version_update.py,sha256=dFzUetvIkd0RXw-cgOGGQGu8843y62AG30RbCQL15Tc,8506
62
- fractal_server/app/routes/api/v2/workflow.py,sha256=dHNytIVJgMqF-bGEzDrc2xFxgivFpF_xrDdUuYf_tyg,10709
62
+ fractal_server/app/routes/api/v2/workflow.py,sha256=lHssUNN3ekqvXp4wWX8a33-5m2ZwLuLPkoL3keCsFhA,10741
63
63
  fractal_server/app/routes/api/v2/workflow_import.py,sha256=UND3U9zE-2o_85BW0uWNsm3_9125PgDtnUlki13jDT4,8740
64
- fractal_server/app/routes/api/v2/workflowtask.py,sha256=f9tleS7TZlku-Z6G8rsyscXlO-bTF5TBHQbx9tAs1Gc,8226
64
+ fractal_server/app/routes/api/v2/workflowtask.py,sha256=vn3pvaCIC9ydJYwboDAFT61IWRIJ6uYe5p3u4W9iloQ,7962
65
65
  fractal_server/app/routes/auth/__init__.py,sha256=JL4MUBjPiNsNJLlb0lbn6_LbIzdRLosquQNqpn6niFw,2836
66
66
  fractal_server/app/routes/auth/_aux_auth.py,sha256=gKdYTWUzxcU44Iep787zReWwdAs4kW5baNDXCPmiKn8,9195
67
67
  fractal_server/app/routes/auth/current_user.py,sha256=gOLk-jUnkXTrBj8aN_yRlUcvCoJMHxxoWz13M8DBCbg,3502
@@ -96,8 +96,8 @@ fractal_server/app/schemas/v2/status_legacy.py,sha256=ajLm2p0wNfJ_lQX9Oq3NJn0jxQ
96
96
  fractal_server/app/schemas/v2/task.py,sha256=le62bHu4nRrXlN-cCOdpkStLQNLtkR_myqK1j8fLoNs,4260
97
97
  fractal_server/app/schemas/v2/task_collection.py,sha256=ljGnZOmYg9pQ9PbYnNxLJDf4O2BDym-BQ_cXr-NWSd4,4590
98
98
  fractal_server/app/schemas/v2/task_group.py,sha256=sbg6AkvonU7F_-QC4G9kDxO6YVcz7wUPY3k3n9jYkRY,3392
99
- fractal_server/app/schemas/v2/workflow.py,sha256=87Aa92H6ceBbkDUsDhDqVNJyuBZuVRRAgFqNeg_djwE,1738
100
- fractal_server/app/schemas/v2/workflowtask.py,sha256=fxyMApNNEw6OVtyk2Q-HX6oKXIg3x3U4JUB_W-AoqL0,3554
99
+ fractal_server/app/schemas/v2/workflow.py,sha256=m-udZHvOFokjaD3cGdTMHdtC8qHLNlmx7PsCEgcvN7U,1801
100
+ fractal_server/app/schemas/v2/workflowtask.py,sha256=sAzu6ZHWGgwvQgviIZJB3J6X79TxchlClkqzNHMlxTo,3683
101
101
  fractal_server/app/security/__init__.py,sha256=Z-xQjt5jx6ldBBrz1iJ0IQ-SLKbv8Gq7fQ4U18NAxXc,18471
102
102
  fractal_server/app/security/signup_email.py,sha256=R69U5eTi9X7gZHSTfZ26SaHMQAeqReYEpGnB8r3AVig,1992
103
103
  fractal_server/app/shutdown.py,sha256=bfEmf6Xdc906ES0zDDWsihmd6neQpGFyIc7qnadnNu8,2283
@@ -125,6 +125,7 @@ fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_
125
125
  fractal_server/migrations/versions/0f5f85bb2ae7_add_pre_pinned_packages.py,sha256=XH6msE3On7P7S2gz-Xec20bWAI6vR29zRT1ZafFwStI,1056
126
126
  fractal_server/migrations/versions/19eca0dd47a9_user_settings_project_dir.py,sha256=5OzcIQjTfwiqh9vK_yLQHJlNtIHxKiEPr-IjZ9iir-Y,961
127
127
  fractal_server/migrations/versions/1a83a5260664_rename.py,sha256=BGZrM2UfccWc0s0kNlpACEw1LB1K6AemHPR5irkJ1gA,790
128
+ fractal_server/migrations/versions/1bf8785755f9_add_description_to_workflow_and_.py,sha256=OVugy2ftELqAE8_6zTGiwwpDxj1STmf8XNHOa8TBr6o,1507
128
129
  fractal_server/migrations/versions/1eac13a26c83_drop_v1_tables.py,sha256=DGdm1Q58UHfQ-6GAg0ucyKCiMxXb1JzELYQ50d1f5bo,1605
129
130
  fractal_server/migrations/versions/316140ff7ee1_remove_usersettings_cache_dir.py,sha256=5gIIZp3Apc2fTiUoHEvd-k34W-HIq7cjFt7Fwqjq6lE,911
130
131
  fractal_server/migrations/versions/40d6d6511b20_add_index_to_history_models.py,sha256=dZglAP0b3_YAeYc7Pphxs9iI73icSaMkgku7R6MaPL0,1357
@@ -272,8 +273,8 @@ fractal_server/types/validators/_workflow_task_arguments_validators.py,sha256=zt
272
273
  fractal_server/urls.py,sha256=QjIKAC1a46bCdiPMu3AlpgFbcv6a4l3ABcd5xz190Og,471
273
274
  fractal_server/utils.py,sha256=-rjg8QTXQcKweXjn0NcmETFs1_uM9PGnbl0Q7c4ERPM,2181
274
275
  fractal_server/zip_tools.py,sha256=Uhn-ax4_9g1PJ32BdyaX30hFpAeVOv2tZYTUK-zVn1E,5719
275
- fractal_server-2.19.0a1.dist-info/licenses/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
276
- fractal_server-2.19.0a1.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
277
- fractal_server-2.19.0a1.dist-info/entry_points.txt,sha256=3TpdcjmETRYWJxFyAh3z-9955EWua9jdkSnBwxES1uE,60
278
- fractal_server-2.19.0a1.dist-info/METADATA,sha256=rConssE0ikH7AaowdmpjxnYW8MDuZYMcFhw_MSEk2Ls,4183
279
- fractal_server-2.19.0a1.dist-info/RECORD,,
276
+ fractal_server-2.19.0a2.dist-info/licenses/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
277
+ fractal_server-2.19.0a2.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
278
+ fractal_server-2.19.0a2.dist-info/entry_points.txt,sha256=3TpdcjmETRYWJxFyAh3z-9955EWua9jdkSnBwxES1uE,60
279
+ fractal_server-2.19.0a2.dist-info/METADATA,sha256=pNmwzod8BHsHpj9DBHhJtX2JoDiFC5OTAhmlSZjKVZs,4183
280
+ fractal_server-2.19.0a2.dist-info/RECORD,,