fractal-server 2.18.0a4__py3-none-any.whl → 2.18.0a6__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.
Files changed (81) hide show
  1. fractal_server/__init__.py +1 -1
  2. fractal_server/app/models/v2/job.py +13 -2
  3. fractal_server/app/models/v2/resource.py +13 -0
  4. fractal_server/app/routes/admin/v2/__init__.py +10 -12
  5. fractal_server/app/routes/admin/v2/job.py +15 -15
  6. fractal_server/app/routes/admin/v2/task.py +7 -7
  7. fractal_server/app/routes/admin/v2/task_group.py +11 -11
  8. fractal_server/app/routes/admin/v2/task_group_lifecycle.py +20 -20
  9. fractal_server/app/routes/api/v2/__init__.py +47 -49
  10. fractal_server/app/routes/api/v2/_aux_functions.py +22 -47
  11. fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +4 -4
  12. fractal_server/app/routes/api/v2/_aux_functions_tasks.py +2 -2
  13. fractal_server/app/routes/api/v2/dataset.py +62 -82
  14. fractal_server/app/routes/api/v2/history.py +7 -5
  15. fractal_server/app/routes/api/v2/job.py +12 -12
  16. fractal_server/app/routes/api/v2/project.py +11 -11
  17. fractal_server/app/routes/api/v2/status_legacy.py +15 -29
  18. fractal_server/app/routes/api/v2/submit.py +65 -66
  19. fractal_server/app/routes/api/v2/task.py +15 -17
  20. fractal_server/app/routes/api/v2/task_collection.py +18 -18
  21. fractal_server/app/routes/api/v2/task_collection_custom.py +11 -13
  22. fractal_server/app/routes/api/v2/task_collection_pixi.py +9 -9
  23. fractal_server/app/routes/api/v2/task_group.py +18 -18
  24. fractal_server/app/routes/api/v2/task_group_lifecycle.py +26 -26
  25. fractal_server/app/routes/api/v2/task_version_update.py +5 -5
  26. fractal_server/app/routes/api/v2/workflow.py +18 -18
  27. fractal_server/app/routes/api/v2/workflow_import.py +11 -11
  28. fractal_server/app/routes/api/v2/workflowtask.py +10 -10
  29. fractal_server/app/routes/auth/_aux_auth.py +99 -0
  30. fractal_server/app/routes/auth/users.py +9 -0
  31. fractal_server/app/schemas/user.py +1 -1
  32. fractal_server/app/schemas/v2/__init__.py +48 -48
  33. fractal_server/app/schemas/v2/dataset.py +35 -13
  34. fractal_server/app/schemas/v2/dumps.py +9 -9
  35. fractal_server/app/schemas/v2/job.py +11 -11
  36. fractal_server/app/schemas/v2/project.py +3 -3
  37. fractal_server/app/schemas/v2/resource.py +13 -4
  38. fractal_server/app/schemas/v2/status_legacy.py +3 -3
  39. fractal_server/app/schemas/v2/task.py +6 -6
  40. fractal_server/app/schemas/v2/task_collection.py +4 -4
  41. fractal_server/app/schemas/v2/task_group.py +16 -16
  42. fractal_server/app/schemas/v2/workflow.py +16 -16
  43. fractal_server/app/schemas/v2/workflowtask.py +14 -14
  44. fractal_server/app/shutdown.py +6 -6
  45. fractal_server/config/_main.py +1 -1
  46. fractal_server/data_migrations/2_18_0.py +2 -1
  47. fractal_server/images/models.py +1 -2
  48. fractal_server/main.py +20 -13
  49. fractal_server/migrations/versions/88270f589c9b_add_prevent_new_submissions.py +39 -0
  50. fractal_server/migrations/versions/f0702066b007_one_submitted_job_per_dataset.py +40 -0
  51. fractal_server/runner/v2/_local.py +3 -2
  52. fractal_server/runner/v2/_slurm_ssh.py +3 -2
  53. fractal_server/runner/v2/_slurm_sudo.py +3 -2
  54. fractal_server/runner/v2/runner.py +36 -17
  55. fractal_server/runner/v2/runner_functions.py +11 -14
  56. fractal_server/runner/v2/submit_workflow.py +22 -9
  57. fractal_server/tasks/v2/local/_utils.py +2 -2
  58. fractal_server/tasks/v2/local/collect.py +5 -6
  59. fractal_server/tasks/v2/local/collect_pixi.py +5 -6
  60. fractal_server/tasks/v2/local/deactivate.py +7 -7
  61. fractal_server/tasks/v2/local/deactivate_pixi.py +3 -3
  62. fractal_server/tasks/v2/local/delete.py +5 -5
  63. fractal_server/tasks/v2/local/reactivate.py +5 -5
  64. fractal_server/tasks/v2/local/reactivate_pixi.py +5 -5
  65. fractal_server/tasks/v2/ssh/collect.py +5 -5
  66. fractal_server/tasks/v2/ssh/collect_pixi.py +5 -5
  67. fractal_server/tasks/v2/ssh/deactivate.py +7 -7
  68. fractal_server/tasks/v2/ssh/deactivate_pixi.py +2 -2
  69. fractal_server/tasks/v2/ssh/delete.py +5 -5
  70. fractal_server/tasks/v2/ssh/reactivate.py +5 -5
  71. fractal_server/tasks/v2/ssh/reactivate_pixi.py +5 -5
  72. fractal_server/tasks/v2/utils_background.py +7 -7
  73. fractal_server/tasks/v2/utils_database.py +5 -5
  74. fractal_server/types/__init__.py +13 -4
  75. fractal_server/types/validators/__init__.py +3 -1
  76. fractal_server/types/validators/_common_validators.py +23 -1
  77. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/METADATA +1 -1
  78. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/RECORD +81 -79
  79. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/WHEEL +0 -0
  80. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/entry_points.txt +0 -0
  81. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/licenses/LICENSE +0 -0
@@ -5,8 +5,8 @@ from tempfile import TemporaryDirectory
5
5
  from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
9
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
8
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
9
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
10
10
  from fractal_server.logger import reset_logger_handlers
11
11
  from fractal_server.logger import set_logger
12
12
  from fractal_server.ssh._fabric import SingleUseFractalSSH
@@ -150,7 +150,7 @@ def reactivate_ssh_pixi(
150
150
  logger.info("installing - START")
151
151
 
152
152
  # Set status to ONGOING and refresh logs
153
- activity.status = TaskGroupActivityStatusV2.ONGOING
153
+ activity.status = TaskGroupActivityStatus.ONGOING
154
154
  activity.log = get_current_log(log_file_path)
155
155
  activity = add_commit_refresh(obj=activity, db=db)
156
156
 
@@ -164,7 +164,7 @@ def reactivate_ssh_pixi(
164
164
  script_dir_remote=script_dir_remote,
165
165
  prefix=(
166
166
  f"{int(time.time())}_"
167
- f"{TaskGroupActivityActionV2.REACTIVATE}"
167
+ f"{TaskGroupActivityAction.REACTIVATE}"
168
168
  ),
169
169
  logger_name=LOGGER_NAME,
170
170
  fractal_ssh=fractal_ssh,
@@ -247,7 +247,7 @@ def reactivate_ssh_pixi(
247
247
  activity = add_commit_refresh(obj=activity, db=db)
248
248
 
249
249
  # Finalize (write metadata to DB)
250
- activity.status = TaskGroupActivityStatusV2.OK
250
+ activity.status = TaskGroupActivityStatus.OK
251
251
  activity.timestamp_ended = get_timestamp()
252
252
  activity = add_commit_refresh(obj=activity, db=db)
253
253
  task_group.active = True
@@ -6,10 +6,10 @@ from sqlalchemy.orm import Session as DBSyncSession
6
6
 
7
7
  from fractal_server.app.models.v2 import TaskGroupActivityV2
8
8
  from fractal_server.app.models.v2 import TaskGroupV2
9
- from fractal_server.app.schemas.v2 import TaskCreateV2
10
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
9
+ from fractal_server.app.schemas.v2 import TaskCreate
10
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
11
11
  from fractal_server.app.schemas.v2.manifest import ManifestV2
12
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityActionV2
12
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityAction
13
13
  from fractal_server.exceptions import UnreachableBranchError
14
14
  from fractal_server.logger import get_logger
15
15
  from fractal_server.logger import reset_logger_handlers
@@ -66,11 +66,11 @@ def fail_and_cleanup(
66
66
  f"Original error: {str(exception)}"
67
67
  )
68
68
 
69
- task_group_activity.status = TaskGroupActivityStatusV2.FAILED
69
+ task_group_activity.status = TaskGroupActivityStatus.FAILED
70
70
  task_group_activity.timestamp_ended = get_timestamp()
71
71
  task_group_activity.log = get_current_log(log_file_path)
72
72
  task_group_activity = add_commit_refresh(obj=task_group_activity, db=db)
73
- if task_group_activity.action == TaskGroupActivityActionV2.COLLECT:
73
+ if task_group_activity.action == TaskGroupActivityAction.COLLECT:
74
74
  db.delete(task_group)
75
75
  db.commit()
76
76
  reset_logger_handlers(logger)
@@ -83,7 +83,7 @@ def prepare_tasks_metadata(
83
83
  python_bin: Path | None = None,
84
84
  project_python_wrapper: Path | None = None,
85
85
  package_version: str | None = None,
86
- ) -> list[TaskCreateV2]:
86
+ ) -> list[TaskCreate]:
87
87
  """
88
88
  Based on the package manifest and additional info, prepare the task list.
89
89
 
@@ -129,7 +129,7 @@ def prepare_tasks_metadata(
129
129
  )
130
130
  task_attributes["command_parallel"] = cmd_parallel
131
131
  # Create object
132
- task_obj = TaskCreateV2(
132
+ task_obj = TaskCreate(
133
133
  **_task.model_dump(
134
134
  exclude={
135
135
  "executable_non_parallel",
@@ -3,13 +3,13 @@ from sqlalchemy.orm import Session as DBSyncSession
3
3
 
4
4
  from fractal_server.app.models.v2 import TaskGroupV2
5
5
  from fractal_server.app.models.v2 import TaskV2
6
- from fractal_server.app.schemas.v2 import TaskCreateV2
6
+ from fractal_server.app.schemas.v2 import TaskCreate
7
7
 
8
8
 
9
9
  def create_db_tasks_and_update_task_group_sync(
10
10
  *,
11
11
  task_group_id: int,
12
- task_list: list[TaskCreateV2],
12
+ task_list: list[TaskCreate],
13
13
  db: DBSyncSession,
14
14
  ) -> TaskGroupV2:
15
15
  """
@@ -17,7 +17,7 @@ def create_db_tasks_and_update_task_group_sync(
17
17
 
18
18
  Args:
19
19
  task_group_id: ID of an existing `TaskGroupV2` object.
20
- task_list: List of `TaskCreateV2` objects to be inserted into the db.
20
+ task_list: List of `TaskCreate` objects to be inserted into the db.
21
21
  db: Synchronous database session
22
22
 
23
23
  Returns:
@@ -36,7 +36,7 @@ def create_db_tasks_and_update_task_group_sync(
36
36
  async def create_db_tasks_and_update_task_group_async(
37
37
  *,
38
38
  task_group_id: int,
39
- task_list: list[TaskCreateV2],
39
+ task_list: list[TaskCreate],
40
40
  db: AsyncSession,
41
41
  ) -> TaskGroupV2:
42
42
  """
@@ -44,7 +44,7 @@ async def create_db_tasks_and_update_task_group_async(
44
44
 
45
45
  Args:
46
46
  task_group_id: ID of an existing `TaskGroupV2` object.
47
- task_list: List of `TaskCreateV2` objects to be inserted into the db.
47
+ task_list: List of `TaskCreate` objects to be inserted into the db.
48
48
  db: Synchronous database session
49
49
 
50
50
  Returns:
@@ -9,8 +9,10 @@ from pydantic.types import StringConstraints
9
9
  from fractal_server.urls import normalize_url
10
10
 
11
11
  from .validators import val_absolute_path
12
- from .validators import val_canonical_path
13
12
  from .validators import val_http_url
13
+ from .validators import val_no_dotdot_in_path
14
+ from .validators import val_non_absolute_path
15
+ from .validators import val_os_path_normpath
14
16
  from .validators import val_unique_list
15
17
  from .validators import valdict_keys
16
18
  from .validators import validate_attribute_filters
@@ -28,7 +30,8 @@ A non-empty string, with no leading/trailing whitespaces.
28
30
  AbsolutePathStr = Annotated[
29
31
  NonEmptyStr,
30
32
  AfterValidator(val_absolute_path),
31
- AfterValidator(val_canonical_path),
33
+ AfterValidator(val_no_dotdot_in_path),
34
+ AfterValidator(val_os_path_normpath),
32
35
  ]
33
36
  """
34
37
  String representing an absolute path.
@@ -37,6 +40,12 @@ Validation fails if the path is not absolute or if it contains a
37
40
  parent-directory reference "/../".
38
41
  """
39
42
 
43
+ RelativePathStr = Annotated[
44
+ NonEmptyStr,
45
+ AfterValidator(val_no_dotdot_in_path),
46
+ AfterValidator(val_os_path_normpath),
47
+ AfterValidator(val_non_absolute_path),
48
+ ]
40
49
 
41
50
  HttpUrlStr = Annotated[
42
51
  NonEmptyStr,
@@ -49,7 +58,7 @@ String representing an URL.
49
58
 
50
59
  ZarrUrlStr = Annotated[
51
60
  NonEmptyStr,
52
- AfterValidator(val_canonical_path),
61
+ AfterValidator(val_no_dotdot_in_path),
53
62
  AfterValidator(normalize_url),
54
63
  ]
55
64
  """
@@ -62,7 +71,7 @@ parent-directory reference "/../".
62
71
 
63
72
  ZarrDirStr = Annotated[
64
73
  NonEmptyStr,
65
- AfterValidator(val_canonical_path),
74
+ AfterValidator(val_no_dotdot_in_path),
66
75
  AfterValidator(normalize_url),
67
76
  ]
68
77
  """
@@ -1,7 +1,9 @@
1
1
  from ._common_validators import val_absolute_path # noqa F401
2
- from ._common_validators import val_canonical_path # noqa F401
2
+ from ._common_validators import val_no_dotdot_in_path # noqa F401
3
+ from ._common_validators import val_os_path_normpath # noqa F401
3
4
  from ._common_validators import val_http_url # noqa F401
4
5
  from ._common_validators import val_unique_list # noqa F401
5
6
  from ._common_validators import valdict_keys # noqa F401
7
+ from ._common_validators import val_non_absolute_path # noqa F401
6
8
  from ._filter_validators import validate_attribute_filters # noqa F401
7
9
  from ._workflow_task_arguments_validators import validate_wft_args # noqa F401
@@ -30,7 +30,18 @@ def val_absolute_path(path: str) -> str:
30
30
  return path
31
31
 
32
32
 
33
- def val_canonical_path(path: str) -> str:
33
+ def val_non_absolute_path(path: str) -> str:
34
+ """
35
+ Check that a string attribute is not an absolute path
36
+ """
37
+ if os.path.isabs(path):
38
+ raise ValueError(
39
+ f"String must not be an absolute path (given '{path}')."
40
+ )
41
+ return path
42
+
43
+
44
+ def val_no_dotdot_in_path(path: str) -> str:
34
45
  """
35
46
  Check that a string attribute has no '/../' in it
36
47
  """
@@ -39,6 +50,17 @@ def val_canonical_path(path: str) -> str:
39
50
  return path
40
51
 
41
52
 
53
+ def val_os_path_normpath(path: str) -> str:
54
+ """
55
+ Apply `os.path.normpath` to `path`.
56
+
57
+ Note: we keep this separate from `fractal_server.urls.normalize_url`,
58
+ because this function only applies to on-disk paths, while `normalize_url`
59
+ may apply to s3 URLs as well.
60
+ """
61
+ return os.path.normpath(path)
62
+
63
+
42
64
  def val_unique_list(must_be_unique: list) -> list:
43
65
  if len(set(must_be_unique)) != len(must_be_unique):
44
66
  raise ValueError("List has repetitions")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fractal-server
3
- Version: 2.18.0a4
3
+ Version: 2.18.0a6
4
4
  Summary: Backend component of the Fractal analytics platform
5
5
  License-Expression: BSD-3-Clause
6
6
  License-File: LICENSE
@@ -1,4 +1,4 @@
1
- fractal_server/__init__.py,sha256=dEaK7hqivr0iLK1WLf_fIS92RHC6IiLLQdCJtk49s8c,25
1
+ fractal_server/__init__.py,sha256=fTObeLfpNEyrq6zP1iDNcN07ZgPGhNMwYCYjIVQ95yM,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
@@ -11,64 +11,64 @@ fractal_server/app/models/v2/__init__.py,sha256=xL05Mvdx0dqUFhJf694oPfuqkUQxZbxO
11
11
  fractal_server/app/models/v2/accounting.py,sha256=VNweFARrvY3mj5LI0834Ku061S2aGC61kuVHzi_tZhc,1187
12
12
  fractal_server/app/models/v2/dataset.py,sha256=BL5elDU0UXnUSwvuXSO4JeKa9gje0QFerU_LP7sI754,1273
13
13
  fractal_server/app/models/v2/history.py,sha256=869RQzBssHFYnBLBvCGlKrLV_HAXwsdO5DgwG9U8D-U,2339
14
- fractal_server/app/models/v2/job.py,sha256=OFSNALm4xRvZ7nlojrbff-HcILYKY2gahlLxEbRsCDE,2074
14
+ fractal_server/app/models/v2/job.py,sha256=IwlOPgx4FU-6PsPd_aBJRGsp5qVXddRBv6xxSMdh524,2360
15
15
  fractal_server/app/models/v2/profile.py,sha256=YajSmV4J_-zC4RX917s-A_lJt4mxYdPRVS3RH_uvJ48,1006
16
16
  fractal_server/app/models/v2/project.py,sha256=VvLXrgzKYLH585mYg_txrO8q3JoSoSEy4XkWjex4sDU,585
17
- fractal_server/app/models/v2/resource.py,sha256=IHZR7D2K1zpbL1I66vAGqm1RGE8WOH9Q6dNQ-qGcH9g,3549
17
+ fractal_server/app/models/v2/resource.py,sha256=XaHlJj9CladIahkrpywWXn8JBSx7_qEHp_wnkFuQ0rU,3896
18
18
  fractal_server/app/models/v2/task.py,sha256=iBIQB8POQE5MyKvLZhw7jZWlBhbrThzCDzRTcgiAczQ,1493
19
19
  fractal_server/app/models/v2/task_group.py,sha256=ud5c_Cncp3hz7_FLiEUvO2VD8h9KtBQljyjR6GQK0D0,4674
20
20
  fractal_server/app/models/v2/workflow.py,sha256=AsL7p8UMGbow--21IG2lYZnOjQ--m85dRWaNCHqb35I,1069
21
21
  fractal_server/app/models/v2/workflowtask.py,sha256=qkTc-hcFLpJUVsEUbnDq2BJL0qg9jagy2doZeusF1ek,1266
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
- fractal_server/app/routes/admin/v2/__init__.py,sha256=l3BVqu5f_KXW-8KCpmnI9QS_sZJTXygIz7Z_WawCGDA,1170
24
+ fractal_server/app/routes/admin/v2/__init__.py,sha256=VF4wg09fvz6gVgIFe-r7LoCU9tlF9kBcEhkQRQPhatY,1134
25
25
  fractal_server/app/routes/admin/v2/_aux_functions.py,sha256=fqA5sUCFuD2iVANQt2WUUfVOEVz5egQA7inzUKYGCw0,1684
26
26
  fractal_server/app/routes/admin/v2/accounting.py,sha256=xNXyQYpa0K0bOjd5WNVKfU6zBhvT2-Xgrx2F4vdS9C0,3512
27
27
  fractal_server/app/routes/admin/v2/impersonate.py,sha256=ictDjuvBr3iLv3YtwkVRMNQRq5qtPAeAXbbC7STSsEg,1125
28
- fractal_server/app/routes/admin/v2/job.py,sha256=PKiZx0kzD9nteyqV0BUDlNdlH6pmRD8EzrJmpZCzlMs,10460
28
+ fractal_server/app/routes/admin/v2/job.py,sha256=nishNH472KMmz9Au8_w6xOOAXEN3tqVSUX1IraO1Hr0,10430
29
29
  fractal_server/app/routes/admin/v2/profile.py,sha256=DwLlA9K3hkl9BqzyifIDiaWeHOM_N_17kqB5CSJOhSI,3165
30
30
  fractal_server/app/routes/admin/v2/resource.py,sha256=c2z6b_D_W6_dqVnxNF8F8OdlI5Z4asex8Zgfwzjbi2Q,6330
31
31
  fractal_server/app/routes/admin/v2/sharing.py,sha256=x7RtbDPapyENEU_s4-glPoEeEOxxj2VBgduVQ1V7wkE,3796
32
- fractal_server/app/routes/admin/v2/task.py,sha256=DMGMUY2uF55wrCkPr3u8qBLp4UWZbAEk2W5sbYMQS-Q,6101
33
- fractal_server/app/routes/admin/v2/task_group.py,sha256=CodDIzTBbTOOdLbXr7qAv6VZydpA6xl0be0W_cw42tE,9330
34
- fractal_server/app/routes/admin/v2/task_group_lifecycle.py,sha256=3LtyLDLFDEWSx9e4huXV_uBUdoDuIWib7IzMjlD1OMI,9975
32
+ fractal_server/app/routes/admin/v2/task.py,sha256=M4cetPkzn73-6faftk49AU_PeaPLqKE_dZxrrQ_x_98,6087
33
+ fractal_server/app/routes/admin/v2/task_group.py,sha256=k2F0NZADEonGK47m4E4h8TpY3E6FOTFqTDLOBf7rCWY,9308
34
+ fractal_server/app/routes/admin/v2/task_group_lifecycle.py,sha256=LkHSQVXRRUkicpIDQpc7dwT944uabtCTTrZCoESHjik,9935
35
35
  fractal_server/app/routes/api/__init__.py,sha256=GaNOm1elJLldHNWZ482qlvETLAXhdJ8u_X6kGxMmwQs,1409
36
- fractal_server/app/routes/api/v2/__init__.py,sha256=lOSRxe408B3dUfd1FtpfynEWBwKDVFlUt3I4NpIQTRo,2938
37
- fractal_server/app/routes/api/v2/_aux_functions.py,sha256=df6-Eep_402StSOiGeDHfKWZb7E1yJkFyHdi_EThRgE,15921
36
+ fractal_server/app/routes/api/v2/__init__.py,sha256=_J8ekQqNGJ3DC1mKum8m8SNOcv66oZ7A260MFjcEtGE,2710
37
+ fractal_server/app/routes/api/v2/_aux_functions.py,sha256=pxXcauCMZEVKkft8nOCK_Nq5m7hkx7BVUXch_j2KVtg,15131
38
38
  fractal_server/app/routes/api/v2/_aux_functions_history.py,sha256=RhKheO2mdSpA0PYGPuDfr8XTaE4e8LkuKeVJlilNtko,5683
39
39
  fractal_server/app/routes/api/v2/_aux_functions_sharing.py,sha256=IvDII3Sl00eypdD3QRELQ4SLyC3gq6-HsXhuCx5Bp5I,2995
40
- fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py,sha256=u7KO6VXBJhPhlUZlIt-mqmWzhfR-btrQdb5HNvPR5OY,8537
40
+ fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py,sha256=qTJdKC3nKLwLYfuKbzJW6tREmzy-dNk57xcmvgi_UDA,8529
41
41
  fractal_server/app/routes/api/v2/_aux_functions_task_version_update.py,sha256=PKjV7r8YsPRXoNiVSnOK4KBYVV3l_Yb_ZPrqAkMkXrQ,1182
42
- fractal_server/app/routes/api/v2/_aux_functions_tasks.py,sha256=jg1QUQhDmeTw6c36-gBOVqOiBgI9kqBiuU77hHaJ_ag,13627
42
+ fractal_server/app/routes/api/v2/_aux_functions_tasks.py,sha256=Hrumknv0vH5VX7SFp8WZDzsJv_z7quvFyNoDYmYoD7A,13623
43
43
  fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py,sha256=vdvMTa3San1HMTzctN5Vk7zxpqe4ccByrFBQyHfgWW8,4889
44
- fractal_server/app/routes/api/v2/dataset.py,sha256=oDS8_2nzG923VnvspSud94OC1CKgqA2yPcvY5pd_aX4,9477
45
- fractal_server/app/routes/api/v2/history.py,sha256=BYsfBlvcBGbJCL47KlMpZDktXAHB8ft2nIaOQMMjqPA,18183
44
+ fractal_server/app/routes/api/v2/dataset.py,sha256=HZGJezPqzbU1PYlFZfQSOj-ONmhtitCv6I7SDORGiPg,8515
45
+ fractal_server/app/routes/api/v2/history.py,sha256=5IYb6m6vmXjNU7uatEmgdXhehyKdbK98T5wAjQpNH4g,18266
46
46
  fractal_server/app/routes/api/v2/images.py,sha256=k9wd44iwjCtEWSH9j6X6zToBwuOOo6J4FxSW7AGbPHA,8266
47
- fractal_server/app/routes/api/v2/job.py,sha256=vRN3Ovwami_4CpZw8zJN1azltMCh2ed42dlOfVHHG6Q,7274
47
+ fractal_server/app/routes/api/v2/job.py,sha256=05_uzX11wYWpGZLN159-7CFXGB9gnSDYdeLEvDAefpY,7250
48
48
  fractal_server/app/routes/api/v2/pre_submission_checks.py,sha256=Cs_ODoRWmkbSJJhlIE7pQh9JuJGXZTAr-EVF6wqKNGA,5215
49
- fractal_server/app/routes/api/v2/project.py,sha256=TlcixNdrss6-0jSiFGnlLP-qCsuX8_nhUyagG5tip3c,5833
49
+ fractal_server/app/routes/api/v2/project.py,sha256=z_IMJ7uDpRDXdoNF0qWMpft2lnsX6pfP244cQlyH2CU,5811
50
50
  fractal_server/app/routes/api/v2/sharing.py,sha256=MvegcF3xaT9nztVwLiUisp4B8IrKRa2LVlSR2GGTqYk,9398
51
- fractal_server/app/routes/api/v2/status_legacy.py,sha256=zP5YheZBoeffanUpVZvKYL4kYIiGIkGtR9W9GX0pXVE,6599
52
- fractal_server/app/routes/api/v2/submit.py,sha256=FpdMRCRDLGEXWPIDC6m9EcvrhysQo43fmMRMJ6UAKQY,9566
53
- fractal_server/app/routes/api/v2/task.py,sha256=gekExcUmk-A8psT0_D356U-j8k38aw_wrCO8kWgG2Tw,7536
54
- fractal_server/app/routes/api/v2/task_collection.py,sha256=x6TMI3JeeIJQJS7bIbn3fnRZaxIxQlp-SQHr2ZVDLBw,12384
55
- fractal_server/app/routes/api/v2/task_collection_custom.py,sha256=9Ycm8-C_bgsEgjqyRLqa64e0HwMVYZWPYr--r-oomB4,6948
56
- fractal_server/app/routes/api/v2/task_collection_pixi.py,sha256=oAKO4dr0wMjOn3hC73YczLFrl-DznffGPgiZUmnyFAY,7190
57
- fractal_server/app/routes/api/v2/task_group.py,sha256=a9YzcXMwkoa_2x6mCz3U_qctE_BvyPIzaGFalF5Otus,8350
58
- fractal_server/app/routes/api/v2/task_group_lifecycle.py,sha256=g20Egnwlw8Qvm1PzKK_64Fv9UKELmPy1Vt-sItNvQRk,10575
59
- fractal_server/app/routes/api/v2/task_version_update.py,sha256=p0Bk8B7EZi9T0IWeDPqH7U7JNcjMGj1x72-ngZGgTOU,8497
60
- fractal_server/app/routes/api/v2/workflow.py,sha256=EW6u-_O6ox3DVBYgrllMfCMHC-DNetUNT6OZudbThko,10830
61
- fractal_server/app/routes/api/v2/workflow_import.py,sha256=zSCWKFzwIX2fWpxZJKXHbFk11nuUrgJL50-P0E_vYTc,9668
62
- fractal_server/app/routes/api/v2/workflowtask.py,sha256=t4h7l63Kfr0vrD6OsN39YSDBXQyoyPqFX3hX7mYXk3U,8274
51
+ fractal_server/app/routes/api/v2/status_legacy.py,sha256=XfU7sJS3luPziGzGxjiLmrLe4P-8OyBU7hTdcYmcyB8,6026
52
+ fractal_server/app/routes/api/v2/submit.py,sha256=YCeMLXhHzouQbjR_Rh3Rdw-htBGOpznEeWIdAVf3AIk,9570
53
+ fractal_server/app/routes/api/v2/task.py,sha256=FBELoBA136r_vOQfwllLkGQ1byOc82raTCEyUrf8P4Q,7500
54
+ fractal_server/app/routes/api/v2/task_collection.py,sha256=DC_qI7cv-4eT2be8opcU3LfkzXjNvLoo4FPCfT77UM0,12348
55
+ fractal_server/app/routes/api/v2/task_collection_custom.py,sha256=gzllPiZp94rNfmAZMegS0B6wZZa-JPvqrapsWb9dyeY,6920
56
+ fractal_server/app/routes/api/v2/task_collection_pixi.py,sha256=wed_nciaJrDFfjhUiORTnsStWUSk3wfQUehsZUurwgk,7172
57
+ fractal_server/app/routes/api/v2/task_group.py,sha256=yU7RFDBGAQy698nHzLiujWuYOHxhtO1Vx1Cz4IyGPSE,8314
58
+ fractal_server/app/routes/api/v2/task_group_lifecycle.py,sha256=T0nDJpqZl1SEzp-Jtwf8YY0rJVTNis4Lv7CQXY8CH-Y,10523
59
+ fractal_server/app/routes/api/v2/task_version_update.py,sha256=W6UXmh2ngqMBkSSHyP3eOyakd6y7rBFTbDq4jd45QaM,8487
60
+ fractal_server/app/routes/api/v2/workflow.py,sha256=VR4zdtJpkBcYg6uh8dcVeeV742y3WoCP4t09qrSLSHo,10794
61
+ fractal_server/app/routes/api/v2/workflow_import.py,sha256=mf5u2q9XRDOGa0-gbDmJKNsJj9zbBdzkJvrWRz2CEyY,9646
62
+ fractal_server/app/routes/api/v2/workflowtask.py,sha256=a2RJ4Ln9H9qplQVgPEiifSc5YWIcmqTQW2wZDojEyNA,8254
63
63
  fractal_server/app/routes/auth/__init__.py,sha256=RghfjGuu0RTW8RxBCvaePx9KErO4rTkI96XgbtbeSJU,2337
64
- fractal_server/app/routes/auth/_aux_auth.py,sha256=s_boxuhPC60j74NmE8FopYPv_Fc4hiADvL0beWPcuE0,5474
64
+ fractal_server/app/routes/auth/_aux_auth.py,sha256=kgMdmZZvGebWEtmotiuc4nQMTjQcF5aX9LTDcYaIpfA,9135
65
65
  fractal_server/app/routes/auth/current_user.py,sha256=uDWttWo9isG69Jv1EGnnr2Ki5ZGd0D76jgjVDQMkn8c,3251
66
66
  fractal_server/app/routes/auth/group.py,sha256=uR98vdQHH-7BFl-Czj85ESPxT2yQymy4qtagaMrnUPU,6491
67
67
  fractal_server/app/routes/auth/login.py,sha256=buVa5Y8T0cd_SW1CqC-zMv-3SfPxGJknf7MYlUyKOl0,567
68
68
  fractal_server/app/routes/auth/oauth.py,sha256=NxrwOWBGPe7hLPEnD66nfWPGMWzDM80LIrwtmONVw-4,2731
69
69
  fractal_server/app/routes/auth/register.py,sha256=IiUJhgY0ZrTs0RlBRRjoTv4wF5Gb3eXTInFV-dXkpsE,615
70
70
  fractal_server/app/routes/auth/router.py,sha256=Zip_fw9qJWtoXWjluznschyrCKb2n_rf3xWarSXMkgI,692
71
- fractal_server/app/routes/auth/users.py,sha256=2E1TEWRGprp-TyF39VJ3Bu6p9tyy37xObG0Ijqa1aHg,7089
71
+ fractal_server/app/routes/auth/users.py,sha256=5BagdH1dz-ZoXdvTgIo9QWBNFPW3p1pIZfY9BBu4eds,7397
72
72
  fractal_server/app/routes/auth/viewer_paths.py,sha256=pzlZ1Gd_CDHVCD9ysJPfJwSbwemSab2wuEfHg0dKnxI,1616
73
73
  fractal_server/app/routes/aux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
74
  fractal_server/app/routes/aux/_job.py,sha256=n-UhONvomKyKkQDDqd0lFh2kCMhlCGXpfdMNW39R1E4,644
@@ -76,46 +76,46 @@ fractal_server/app/routes/aux/_runner.py,sha256=-SvcXCVEV7Mb6q4PbbxuTCCruX6sAlR5
76
76
  fractal_server/app/routes/aux/validate_user_profile.py,sha256=fGqJDdAFkbQoEIjqZ5F9-SDY_4os63R2EUMqODC7eBg,1969
77
77
  fractal_server/app/routes/pagination.py,sha256=C4XW6cnyDfyu1XMHXRN4wgk72lsS0UtlINZmwGZFb4Y,1174
78
78
  fractal_server/app/schemas/__init__.py,sha256=VIWJCaqokte3OljDLX00o-EC2d12rFoPb5HOLKQI94Y,86
79
- fractal_server/app/schemas/user.py,sha256=6-UoImeMCcmu6-CJ4CYNNCVuB3s99wpRYn5PFgIc6Bg,3265
79
+ fractal_server/app/schemas/user.py,sha256=qixLVZWeANxX5TIWoruLjYE_oh4DMZ2q3vMgMBsnzQE,3294
80
80
  fractal_server/app/schemas/user_group.py,sha256=irel29GbffKCXNcyrAYbNSN3pCgmoUQ1wG32_s6jvos,1082
81
- fractal_server/app/schemas/v2/__init__.py,sha256=mMhdt4Jo-lyG8bITGAbpuyhDJx4MNgk-VSTKqcE6Ymo,4101
81
+ fractal_server/app/schemas/v2/__init__.py,sha256=6W1uSthuLGXs9oOYnjmScoqJYkWyUTT-9cNHFZoTmkM,4005
82
82
  fractal_server/app/schemas/v2/accounting.py,sha256=6EVUdPTkFY6Wb9-Vc0cIEZYVXwGEvJ3tP4YOXYE1hao,546
83
- fractal_server/app/schemas/v2/dataset.py,sha256=cBsEkny-EgNqFETMGRbJu5ChfYOnsKhkivqXK5dEOxQ,1938
84
- fractal_server/app/schemas/v2/dumps.py,sha256=NrQYrfu3ze317DC7wDwjJYv6gYfkWWze25HmQmYJNhQ,2294
83
+ fractal_server/app/schemas/v2/dataset.py,sha256=SBS3TwHxPRHtLvFu-Bm4eQlI96DIkCiFF7oKvfcfTOc,2736
84
+ fractal_server/app/schemas/v2/dumps.py,sha256=UPtb1Rqkd48AFpWsVfcHcAjKGzF2ZoHLdYrAJzPdsSM,2276
85
85
  fractal_server/app/schemas/v2/history.py,sha256=pZiMKfh6nMWbTp5MUtrnGySPKbeRFf5tM1VLFaTgGcw,1784
86
- fractal_server/app/schemas/v2/job.py,sha256=BuiNzAX2Kl-b7LJnAiqCGDC9h6bGEjKvsHQIgf5mjHQ,3330
86
+ fractal_server/app/schemas/v2/job.py,sha256=YnnxnrbI_l7EgZNzk_KgnuEuh0COg-RPoph2foHUvZo,3308
87
87
  fractal_server/app/schemas/v2/manifest.py,sha256=I8KyVZvW6r6_DrcKX5aZ9zJwa-Kk_u3gCKlz6HVPF5o,6655
88
88
  fractal_server/app/schemas/v2/profile.py,sha256=CB44vkjRzcxAhw_6J67dYcVKKbYKJS6MdmZAXKF1ous,3299
89
- fractal_server/app/schemas/v2/project.py,sha256=7UC0aZLgtmkaAiPykeUj-9OZXhMkoyi3V-475UW_EQs,654
90
- fractal_server/app/schemas/v2/resource.py,sha256=MSwMKEmX9qdmYg-_2VGELlmCobJ3Ih2ldG6-R16WDBg,6230
89
+ fractal_server/app/schemas/v2/project.py,sha256=jTc4jhwdkO1Ht2K27AguA0z9wWX0CYKvV_sg0sNcf-E,648
90
+ fractal_server/app/schemas/v2/resource.py,sha256=LPi1D67vGngOn5BWNicqAIHCKExaf2XyzuZKByo7wfc,6841
91
91
  fractal_server/app/schemas/v2/sharing.py,sha256=wHBiEmqhU53NokQ2rmm6xkH3lumBR6TdWw4nvDz6uww,1818
92
- fractal_server/app/schemas/v2/status_legacy.py,sha256=eQT1zGxbkzSwd0EqclsOdZ60n1x6J3DB1CZ3m4LYyxc,955
93
- fractal_server/app/schemas/v2/task.py,sha256=WkjliM8zujapC9CHTFme5ByjPCiln6qYKWJ_9gbcGOk,4363
94
- fractal_server/app/schemas/v2/task_collection.py,sha256=QUiMAwckHSzjXlC_cyNSR1QX0fpxG1wKPcd95SE2qKo,4598
95
- fractal_server/app/schemas/v2/task_group.py,sha256=4hNZUXnWYSozpLXR3JqBvGzfZBG2TbjqydckHHu2Aq0,3506
96
- fractal_server/app/schemas/v2/workflow.py,sha256=L-dW6SzCH_VNoH6ENip44lTgGGqVYHHBk_3PtM-Ooy8,1772
97
- fractal_server/app/schemas/v2/workflowtask.py,sha256=ckfPmbPTAn0lzbiaWQItdGxEUuWsRxiWBj898VEb1gw,3640
92
+ fractal_server/app/schemas/v2/status_legacy.py,sha256=ajLm2p0wNfJ_lQX9Oq3NJn0jxQj50U3eZxuRjOIdOpg,949
93
+ fractal_server/app/schemas/v2/task.py,sha256=Fd4n6vitliOuQyoofQ0daFy25QzIoWe9NPbXanNyrrE,4351
94
+ fractal_server/app/schemas/v2/task_collection.py,sha256=ljGnZOmYg9pQ9PbYnNxLJDf4O2BDym-BQ_cXr-NWSd4,4590
95
+ fractal_server/app/schemas/v2/task_group.py,sha256=HYwgv8KQWr1A8ihdz_FTmKAymlHh4AEPyfmYOhafE24,3472
96
+ fractal_server/app/schemas/v2/workflow.py,sha256=87Aa92H6ceBbkDUsDhDqVNJyuBZuVRRAgFqNeg_djwE,1738
97
+ fractal_server/app/schemas/v2/workflowtask.py,sha256=1k56KHwzZDZGjl7FG1yslj-MKtKKR5fZ5RKGlJbopNc,3608
98
98
  fractal_server/app/security/__init__.py,sha256=sblIH9DFCt_iyk22WzV6k4LuKdbvNPtS1HqPCHIiBJ4,18363
99
99
  fractal_server/app/security/signup_email.py,sha256=ZnwwjpL6jyIkegHBebTqYYGGVtllLI0_x48K-yJtkNk,1969
100
- fractal_server/app/shutdown.py,sha256=QU4DfNvqwUXlHiLORtYJit4DxlFQo014SKTfs4dcE2U,2295
100
+ fractal_server/app/shutdown.py,sha256=bfEmf6Xdc906ES0zDDWsihmd6neQpGFyIc7qnadnNu8,2283
101
101
  fractal_server/config/__init__.py,sha256=WvcoE3qiY1qnkumv3qspcemCFw5iFG5NkSFR78vN4ks,562
102
102
  fractal_server/config/_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
103
  fractal_server/config/_database.py,sha256=0_FvboMkQEKKRxvr9uFdp98oiQwMTFbdCW3loTZNSY0,1846
104
104
  fractal_server/config/_email.py,sha256=vMwLHN9-beYp_-up-WkTpeyNUZk4EHwt3N2l6-PYnx4,4364
105
- fractal_server/config/_main.py,sha256=H2VbUsQEb4lnwe-ReHqHrb3IVbTdxxBUtbXkVlQ6JzY,2478
105
+ fractal_server/config/_main.py,sha256=6splUmAPRD1J9HXkeZ-Vqif7Nw4ljJXIugpvRrcwPeI,2476
106
106
  fractal_server/config/_oauth.py,sha256=UTmlFppDZcOQhr3RvkiG5XMqvr54XRAQ_Y-iR0V8N-8,2024
107
107
  fractal_server/config/_settings_config.py,sha256=tsyXQOnn9QKCFJD6hRo_dJXlQQyl70DbqgHMJoZ1xnY,144
108
- fractal_server/data_migrations/2_18_0.py,sha256=swGQGMOh5HzB09CVWVpk_a0OoksuYKQq-_MuWK89WME,815
108
+ fractal_server/data_migrations/2_18_0.py,sha256=GSTs69gLnMJ0XSf59dIOARYu5aP4SSAG5Eid670yCgk,854
109
109
  fractal_server/data_migrations/README.md,sha256=_3AEFvDg9YkybDqCLlFPdDmGJvr6Tw7HRI14aZ3LOIw,398
110
110
  fractal_server/data_migrations/tools.py,sha256=LeMeASwYGtEqd-3wOLle6WARdTGAimoyMmRbbJl-hAM,572
111
111
  fractal_server/exceptions.py,sha256=l6aZDk_6u_9PwDaQSoIFdI40ekpzqOJaxjx5rhW-HVI,141
112
112
  fractal_server/gunicorn_fractal.py,sha256=u6U01TLGlXgq1v8QmEpLih3QnsInZD7CqphgJ_GrGzc,1230
113
113
  fractal_server/images/__init__.py,sha256=-_wjoKtSX02P1KjDxDP_EXKvmbONTRmbf7iGVTsyBpM,154
114
- fractal_server/images/models.py,sha256=dNcCW7XzRRbqL86LJ5aGc6LUAqIPsZXMq67IZyGbIpQ,1242
114
+ fractal_server/images/models.py,sha256=5wtUmX3hRy8vyOb4SgezuIWcwUaB69HyXHg4zFMJkvk,1198
115
115
  fractal_server/images/status_tools.py,sha256=Is2QWThbLCrVJuI0NpGv7TcWs1T8z8q_8Qsidr3TdBU,4932
116
116
  fractal_server/images/tools.py,sha256=37jVIU6RiAGbiyucNDlKe9J3yN3Y47NOvv-RJor9Jm0,4154
117
117
  fractal_server/logger.py,sha256=9EhRdgPnGdbJ51vxhOD42K0iaDRhKx7wuikpHoh9kzY,5302
118
- fractal_server/main.py,sha256=CrPlBe95ng1nYiVRRl_F5qe6h0W_YTVt_H0zXXJJf8c,6255
118
+ fractal_server/main.py,sha256=vCDvUndmLIkxUX8EAtyA4Wu9YiIHGZge5J37Yn2U5R4,6537
119
119
  fractal_server/migrations/env.py,sha256=nfyBpMIOT3kny6t-b-tUjyRjZ4k906bb1_wCQ7me1BI,1353
120
120
  fractal_server/migrations/naming_convention.py,sha256=bSEMiMZeArmWKrUk-12lhnOw1pAFMg6LEl7yucohPqc,263
121
121
  fractal_server/migrations/versions/034a469ec2eb_task_groups.py,sha256=uuf0sJibC4Am1HDb_dX_Jdj2oinptlg2ojiHwCpjDCY,6155
@@ -141,6 +141,7 @@ fractal_server/migrations/versions/7910eed4cf97_user_project_dirs_and_usergroup_
141
141
  fractal_server/migrations/versions/791ce783d3d8_add_indices.py,sha256=IeWDVBRryFcFYIJVXhj-QJ6jczGnN_41K7sh6RYF0C4,1154
142
142
  fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py,sha256=bLFmGJF7jLkices6PJFO1pmit_4-bu8rwykR6ZWDiCQ,6378
143
143
  fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py,sha256=mOlqERL0MrF6Inp4onoSB2mAnyGeh4gW_IysCeCHTj4,2685
144
+ fractal_server/migrations/versions/88270f589c9b_add_prevent_new_submissions.py,sha256=POieZSMOgznkvEIIEmNznVN50cDZCAjGnFyLsfBckEg,980
144
145
  fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py,sha256=Sm4IFSsAi0zM9HypNkbDQSAWzhrRWFjhGIjp6Lz9VLw,1081
145
146
  fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py,sha256=PevYomdu8_lfxfSO5gSbaByDXLdj9AzsHy5WgsOtsJk,1115
146
147
  fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py,sha256=UJnpLSGTahYqujwXrKFVnXxsggh27EONfsyWb3H9qmM,1509
@@ -167,6 +168,7 @@ fractal_server/migrations/versions/e0e717ae2f26_delete_linkuserproject_ondelete_
167
168
  fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py,sha256=x6eCYsx_Cb7yDC5K_gV2RNHeCF_K-964NtZF1mmxUb0,964
168
169
  fractal_server/migrations/versions/e81103413827_add_job_type_filters.py,sha256=w0HYX1645_JXsfUB259OrmXLUasOgRnpKvJJaF44GpQ,890
169
170
  fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py,sha256=3ppXZxLsljAlN5Def9lHuEZlf_7hMXaIIeTV2N5zUXY,1222
171
+ fractal_server/migrations/versions/f0702066b007_one_submitted_job_per_dataset.py,sha256=BtkgkFuitYuJ0TbRBPbVMEtaj3YPa5P-LnjvT4xhz5U,1064
170
172
  fractal_server/migrations/versions/f37aceb45062_make_historyunit_logfile_required.py,sha256=z18Qyts6_49uVhgaXWGQNzF4adnDmVLv3hKHeE9qD9E,1007
171
173
  fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py,sha256=TjAkD_275nDVSURAC5wzJbHDBG0yY2_vkLvw4iHeYoc,747
172
174
  fractal_server/migrations/versions/fbce16ff4e47_new_history_items.py,sha256=Fr6USeI6LAK9vqbRFvCBmFAiERaEDuZXgSfjUvlc3EU,3885
@@ -203,15 +205,15 @@ fractal_server/runner/filenames.py,sha256=lPnxKHtdRizr6FqG3zOdjDPyWA7GoaJGTtiuJV
203
205
  fractal_server/runner/set_start_and_last_task_index.py,sha256=NsioSzfEpGyo9ZKrV5KsbxeI7d5V3tE678Y3IAo5rHM,1218
204
206
  fractal_server/runner/task_files.py,sha256=n54A1x0MQRGSgqhzOTE-TPzEGJymUhQIUV9ApcVCV9M,4318
205
207
  fractal_server/runner/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
206
- fractal_server/runner/v2/_local.py,sha256=BzHnl6vc9KlHEEW_ObaBtP33JS1NXVu-KF6pmsodVgI,3839
207
- fractal_server/runner/v2/_slurm_ssh.py,sha256=8MLn5ux2IQ_a4Sti0pajBkduSp0pwxvEJckoUXqfBZY,4530
208
- fractal_server/runner/v2/_slurm_sudo.py,sha256=mMGqlhhbQLHwniiTzJwxUCLKPEMbYASQ4DL-exszQ2Y,4425
208
+ fractal_server/runner/v2/_local.py,sha256=aSnniBh_qPti94ShAOFqIAEJ_BRO0_2D_yrv1i1pRs4,3870
209
+ fractal_server/runner/v2/_slurm_ssh.py,sha256=r9QgBOrW9PqWc-8lUNLpX6M5pH3aFnoMazHlGovJxnQ,4561
210
+ fractal_server/runner/v2/_slurm_sudo.py,sha256=UsB1P6AZB0L1QrBvR2Lq9FoJaxnhbakLAKK63E1KKtU,4456
209
211
  fractal_server/runner/v2/db_tools.py,sha256=twqFWVENkxWCYglb__BAXASDuJppwHE-VxdEUC67mq0,3317
210
212
  fractal_server/runner/v2/deduplicate_list.py,sha256=TWxHDucal0VZPswy_H7IFaEb4ddGnpl_QBwJ8g9Ybug,668
211
213
  fractal_server/runner/v2/merge_outputs.py,sha256=0ahaSwdMFAoEhxVaEaO9nSJuKIcWg9pDZ356ktSHcC0,897
212
- fractal_server/runner/v2/runner.py,sha256=zX_gResJlzfdyBkcmadhaRAYWhgfNbCqm3jF0l3lbGo,20178
213
- fractal_server/runner/v2/runner_functions.py,sha256=308EwXZ2hBAnavokaywkVcaDkywQIillGibCvJB5y_E,19634
214
- fractal_server/runner/v2/submit_workflow.py,sha256=tNJmlgSNOCjesN8tEGtq3sz1RYB67lP-tgRcKKTTSvs,11453
214
+ fractal_server/runner/v2/runner.py,sha256=hP3zxGPlrHcNQAYNa808ARAwXWPTea8QsJINSXu9dRE,20958
215
+ fractal_server/runner/v2/runner_functions.py,sha256=1wW2ByskwPtx_mhyJiCpKMXDnDyZ_y5fDWv8hktFZXI,19564
216
+ fractal_server/runner/v2/submit_workflow.py,sha256=o6JIBzcholzzWE5WuRN0nYgUR_Pj5cKRE2cs9OuQiyw,11882
215
217
  fractal_server/runner/v2/task_interface.py,sha256=ftPPpOU16rbJD8q-QV7o_3ey8W7MQTFuWJiYUr4OmF4,2532
216
218
  fractal_server/runner/versions.py,sha256=uz59Dxj7BphnFnr-p0kyaZRH0h4w5Xkd0UJNVGtt4ds,474
217
219
  fractal_server/ssh/__init__.py,sha256=sVUmzxf7_DuXG1xoLQ1_00fo5NPhi2LJipSmU5EAkPs,124
@@ -225,24 +227,24 @@ fractal_server/tasks/config/_python.py,sha256=lvjIzuV9mMyDmRadx2yTTKu1abx1EE_gnZ
225
227
  fractal_server/tasks/utils.py,sha256=izZthoEmt5NcnC8ktTmbMtNnrCD8zKir37NyCfPJDX4,290
226
228
  fractal_server/tasks/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
229
  fractal_server/tasks/v2/local/__init__.py,sha256=2dJqJIwn9UEANg8lPFprxVLk3ug-4xYIb5pvIsqPb5s,353
228
- fractal_server/tasks/v2/local/_utils.py,sha256=J9E3EhY8VKe7aaHRJqv5aT7MOTFPZ-7lDCFqUXXAw1E,3491
229
- fractal_server/tasks/v2/local/collect.py,sha256=vtDGEwLoKrvZG-lFnOUbtQabM-1ob16hzLYv440hQ58,12146
230
- fractal_server/tasks/v2/local/collect_pixi.py,sha256=XJZpjmXZwpKc6IPU43EMtQlncPnSHi0OA9wpE_P4hiw,11518
231
- fractal_server/tasks/v2/local/deactivate.py,sha256=jBkgDOp8vHQCSpDaM5jH7YhYGZor25rQtSsVkvn2rHM,9960
232
- fractal_server/tasks/v2/local/deactivate_pixi.py,sha256=p5_TVz5p-4yvH6TeZ0KtgEPnBGQ0Lxs46ls0AkBx3JA,3715
233
- fractal_server/tasks/v2/local/delete.py,sha256=BhIfPQ-Ylfq3D5969GFe_eMTQm6oCEiz2ghwThqZVKY,2951
234
- fractal_server/tasks/v2/local/reactivate.py,sha256=7USin1BRWmmN9OZnRYiTa3gPN5B_xdEeV8A91bA1YIc,6075
235
- fractal_server/tasks/v2/local/reactivate_pixi.py,sha256=SOblcb_IlRTCyaVvhW-KIxHw2GbVKMtx8VPauhFHvbs,8221
230
+ fractal_server/tasks/v2/local/_utils.py,sha256=2MerOEGvr9zR4ATUBAV4MSS-ixODqiRpS5S--r2mSMM,3487
231
+ fractal_server/tasks/v2/local/collect.py,sha256=Vu64E_BhP4Pzut8Fhs0tDy91-Z9HB6Ezj1qA57W2KA8,12108
232
+ fractal_server/tasks/v2/local/collect_pixi.py,sha256=uhfXd4U8tfCwItzhIizeY52EAwijbuws4a0Pw5LwuV4,11480
233
+ fractal_server/tasks/v2/local/deactivate.py,sha256=GWB3Krx7-FJTLa2yCUHFyQMq202_MizoPl6wcuc33D8,9946
234
+ fractal_server/tasks/v2/local/deactivate_pixi.py,sha256=VgageDeNHaOsMR7ANpac2QtzMnaagzGzSP9jY2EHY0k,3709
235
+ fractal_server/tasks/v2/local/delete.py,sha256=PeLbAkNEsknClZeM9Dg8rYbemmNetr6wZ7TLGLO8x-k,2941
236
+ fractal_server/tasks/v2/local/reactivate.py,sha256=c8uyAKBJbAhMt2y0-GILe7IIUxbhtihh_HLxytsJr1g,6065
237
+ fractal_server/tasks/v2/local/reactivate_pixi.py,sha256=cWLe-lrwQlpQhPtKrMg5ClGVd5LVYzRpgLZQ2aC3PKU,8211
236
238
  fractal_server/tasks/v2/ssh/__init__.py,sha256=dPK6BtEZVh1GiFP05j1RKTEnZvjJez8o2KkMC2hWXaw,339
237
239
  fractal_server/tasks/v2/ssh/_pixi_slurm_ssh.py,sha256=3iixFaS5Uqhh28qAv_yBSW4YvffqIhE0LK0gQee9qjI,7448
238
240
  fractal_server/tasks/v2/ssh/_utils.py,sha256=a2oM8zh68zmcUuRLY_5y_9wA9MNd3NOM-w-P7RgwX2E,6112
239
- fractal_server/tasks/v2/ssh/collect.py,sha256=KHhpTGURX1H0A1O4asoH-idTgHpW2-Vx1fsQPhi5RlY,14497
240
- fractal_server/tasks/v2/ssh/collect_pixi.py,sha256=Pg9o1qnBFRpBwpt7abjrewDjPURDCwoaKraEq8AcOk0,15871
241
- fractal_server/tasks/v2/ssh/deactivate.py,sha256=nbm9lnWtegql8rITeM5-VmsL6RD7TiKZKvdzl39Shwk,12689
242
- fractal_server/tasks/v2/ssh/deactivate_pixi.py,sha256=6p2quZe8Kg0gK_zoF21-F8guFBjrmNvOZCRaUOYUb3E,4952
243
- fractal_server/tasks/v2/ssh/delete.py,sha256=63qUL9p54Qjw0FSSuKossimON6rTJb9Ak8imVN3JhM0,4469
244
- fractal_server/tasks/v2/ssh/reactivate.py,sha256=TX6MAlVai4766PDJ5qfCg5YIUwhJkJpnungdzojCiaY,8538
245
- fractal_server/tasks/v2/ssh/reactivate_pixi.py,sha256=ohL-rpMS8Ey07-mVnc-dZrY3FKtpzAJRqcLsUEDzjZ8,11899
241
+ fractal_server/tasks/v2/ssh/collect.py,sha256=1RpAbuUKQodgDCuVOfN-DZC1uhIqHEhaVSSx3v0DwHs,14487
242
+ fractal_server/tasks/v2/ssh/collect_pixi.py,sha256=9Pe-oaCu-Cih8c5vcW2Xpt9GuZYkju6otrnJldXUGfA,15861
243
+ fractal_server/tasks/v2/ssh/deactivate.py,sha256=okNPNKnym8nCE7P_M-92TDUM0nRdD_NZake34R1tHcI,12675
244
+ fractal_server/tasks/v2/ssh/deactivate_pixi.py,sha256=tGuiOs9JXZoSmDqyEg3ZnmMkYwplkK1OkvMuGJpez00,4948
245
+ fractal_server/tasks/v2/ssh/delete.py,sha256=hUOGah3MyeUG-jBbljvkpkwY2KkdXK-i8zV8LK2sBVQ,4459
246
+ fractal_server/tasks/v2/ssh/reactivate.py,sha256=gxsgSDWVOw9reQumP92yC8SwNVcQrd4mvUh-sDoa7Uc,8528
247
+ fractal_server/tasks/v2/ssh/reactivate_pixi.py,sha256=7jfODVCsHkqypPaJcQ9kozgUIPVPujmzgYp3gRx8dvs,11889
246
248
  fractal_server/tasks/v2/templates/1_create_venv.sh,sha256=a9viswsex_26lNStFgTjtSM4_K1eiyA2qfSQAwhH1Pw,561
247
249
  fractal_server/tasks/v2/templates/2_pip_install.sh,sha256=IS1iXCvFTb6owHAIrvTrnPN1g7UWESkZyTTVdBBLQ3Y,2168
248
250
  fractal_server/tasks/v2/templates/3_pip_freeze.sh,sha256=oxqXMd-ZW8jtHjkwdwchbtWaoW6QHIk2Ksgreygo4no,181
@@ -252,22 +254,22 @@ fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh,sha256=ddF-Pz-MTv
252
254
  fractal_server/tasks/v2/templates/pixi_1_extract.sh,sha256=vRRiBhwdE0NAXxornzG4P8QlZ5vjn-f9lJTtigA_Q_g,1112
253
255
  fractal_server/tasks/v2/templates/pixi_2_install.sh,sha256=0vWP7PscdPlGwlukD752eKeQVRis4PwG2f2IhPK_8RA,1614
254
256
  fractal_server/tasks/v2/templates/pixi_3_post_install.sh,sha256=eiTcg-eTSo-itmeEBt5am0jSji1-2MvYamm-HqiCfO4,2514
255
- fractal_server/tasks/v2/utils_background.py,sha256=Rc_dO3Y89i3oI3tLgqrvJNwbL-E9tWg4TskQYqTDX3E,4842
256
- fractal_server/tasks/v2/utils_database.py,sha256=C1td6m6ab1NdXVoT6stvVdrY_3FNck8OkRZZhn9h8ZA,1797
257
+ fractal_server/tasks/v2/utils_background.py,sha256=w1VVFuPql8KXWdKr64iZWoykUDGtMCQA8VQFHqeObBU,4828
258
+ fractal_server/tasks/v2/utils_database.py,sha256=Kyg-2fN0rx5eKKiFg1FtcJy82-7NAPJHEAGV1TvRkjI,1787
257
259
  fractal_server/tasks/v2/utils_package_names.py,sha256=-FAcbwBHsjyvhIK0QKue9_0xJUfRVdKMSIU_-gnLOR0,2381
258
260
  fractal_server/tasks/v2/utils_pixi.py,sha256=Z0FnRqVynSvXDDeFL0anz7zwKrBDLGdQxyuJdipt2DI,3411
259
261
  fractal_server/tasks/v2/utils_python_interpreter.py,sha256=36AvrMoydr9w6Rm_7hKl5QK8zYI0KIm4Pv8WHANWwjE,658
260
262
  fractal_server/tasks/v2/utils_templates.py,sha256=L5GblhIKJwyzUbCORj1et5mh-7mG19nT5kmIpxOEj90,3489
261
- fractal_server/types/__init__.py,sha256=NU70aH1wiUKaMOU2Fx0vPqVaWhM6vqCtwkRtfnCtMzs,3400
262
- fractal_server/types/validators/__init__.py,sha256=tkwLSeI_KQs0mEQSs6PRPBAVTOzYf2nAISQLeQVSBAw,456
263
- fractal_server/types/validators/_common_validators.py,sha256=EUMYJiTGjxp022dNIBCzhj2ckUn6Zl02L_WwRAUQO_I,1396
263
+ fractal_server/types/__init__.py,sha256=ENzSmiU4niKK0CLWN0AfdzsbRsTCrUMcFeANRvNZ5aU,3721
264
+ fractal_server/types/validators/__init__.py,sha256=wIMRF13prXlVbNrsktPPhvyJ-WIk80c3bPVQP53kQoo,592
265
+ fractal_server/types/validators/_common_validators.py,sha256=gzSl-RcmiWM874RoQw0XV7DVo853RaTUJhbiVbDQO3E,1993
264
266
  fractal_server/types/validators/_filter_validators.py,sha256=irmjzycmiR6F4fmWUeA45Pdh7AeLufwVjNItskDsknk,831
265
267
  fractal_server/types/validators/_workflow_task_arguments_validators.py,sha256=zt4TQBiLiNVD3yMYbN-dkX0AWRAjG4vRv3FIybh9zLQ,372
266
268
  fractal_server/urls.py,sha256=QjIKAC1a46bCdiPMu3AlpgFbcv6a4l3ABcd5xz190Og,471
267
269
  fractal_server/utils.py,sha256=-rjg8QTXQcKweXjn0NcmETFs1_uM9PGnbl0Q7c4ERPM,2181
268
270
  fractal_server/zip_tools.py,sha256=Uhn-ax4_9g1PJ32BdyaX30hFpAeVOv2tZYTUK-zVn1E,5719
269
- fractal_server-2.18.0a4.dist-info/METADATA,sha256=VW6V0S-nZTzm_I6wBxpgWjKq9Rd7rY07UE0-3-Jt2IA,4277
270
- fractal_server-2.18.0a4.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
271
- fractal_server-2.18.0a4.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
272
- fractal_server-2.18.0a4.dist-info/licenses/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
273
- fractal_server-2.18.0a4.dist-info/RECORD,,
271
+ fractal_server-2.18.0a6.dist-info/METADATA,sha256=CFbDxw_nb6xWkqHVoeDf8A1T6Q2bfysDIg9xclaIJiI,4277
272
+ fractal_server-2.18.0a6.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
273
+ fractal_server-2.18.0a6.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
274
+ fractal_server-2.18.0a6.dist-info/licenses/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
275
+ fractal_server-2.18.0a6.dist-info/RECORD,,