fractal-server 2.18.0__py3-none-any.whl → 2.18.0a0__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.
- fractal_server/__init__.py +1 -1
- fractal_server/__main__.py +1 -2
- fractal_server/app/models/security.py +5 -7
- fractal_server/app/models/v2/job.py +2 -13
- fractal_server/app/models/v2/resource.py +0 -13
- fractal_server/app/routes/admin/v2/__init__.py +12 -10
- fractal_server/app/routes/admin/v2/accounting.py +2 -2
- fractal_server/app/routes/admin/v2/job.py +17 -17
- fractal_server/app/routes/admin/v2/task.py +8 -8
- fractal_server/app/routes/admin/v2/task_group.py +16 -94
- fractal_server/app/routes/admin/v2/task_group_lifecycle.py +20 -20
- fractal_server/app/routes/api/__init__.py +9 -0
- fractal_server/app/routes/api/v2/__init__.py +49 -47
- fractal_server/app/routes/api/v2/_aux_functions.py +47 -22
- fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +4 -4
- fractal_server/app/routes/api/v2/_aux_functions_tasks.py +2 -2
- fractal_server/app/routes/api/v2/dataset.py +60 -66
- fractal_server/app/routes/api/v2/history.py +5 -7
- fractal_server/app/routes/api/v2/job.py +12 -12
- fractal_server/app/routes/api/v2/project.py +11 -11
- fractal_server/app/routes/api/v2/sharing.py +2 -1
- fractal_server/app/routes/api/v2/status_legacy.py +29 -15
- fractal_server/app/routes/api/v2/submit.py +66 -65
- fractal_server/app/routes/api/v2/task.py +17 -15
- fractal_server/app/routes/api/v2/task_collection.py +18 -18
- fractal_server/app/routes/api/v2/task_collection_custom.py +13 -11
- fractal_server/app/routes/api/v2/task_collection_pixi.py +9 -9
- fractal_server/app/routes/api/v2/task_group.py +18 -18
- fractal_server/app/routes/api/v2/task_group_lifecycle.py +26 -26
- fractal_server/app/routes/api/v2/task_version_update.py +5 -5
- fractal_server/app/routes/api/v2/workflow.py +18 -18
- fractal_server/app/routes/api/v2/workflow_import.py +11 -11
- fractal_server/app/routes/api/v2/workflowtask.py +36 -10
- fractal_server/app/routes/auth/_aux_auth.py +0 -100
- fractal_server/app/routes/auth/current_user.py +63 -0
- fractal_server/app/routes/auth/group.py +30 -1
- fractal_server/app/routes/auth/router.py +0 -2
- fractal_server/app/routes/auth/users.py +0 -9
- fractal_server/app/schemas/user.py +12 -29
- fractal_server/app/schemas/user_group.py +15 -0
- fractal_server/app/schemas/v2/__init__.py +48 -48
- fractal_server/app/schemas/v2/dataset.py +13 -35
- fractal_server/app/schemas/v2/dumps.py +9 -9
- fractal_server/app/schemas/v2/job.py +11 -11
- fractal_server/app/schemas/v2/project.py +3 -3
- fractal_server/app/schemas/v2/resource.py +4 -13
- fractal_server/app/schemas/v2/status_legacy.py +3 -3
- fractal_server/app/schemas/v2/task.py +6 -6
- fractal_server/app/schemas/v2/task_collection.py +4 -4
- fractal_server/app/schemas/v2/task_group.py +16 -16
- fractal_server/app/schemas/v2/workflow.py +16 -16
- fractal_server/app/schemas/v2/workflowtask.py +14 -14
- fractal_server/app/security/__init__.py +1 -1
- fractal_server/app/shutdown.py +6 -6
- fractal_server/config/__init__.py +6 -0
- fractal_server/config/_data.py +79 -0
- fractal_server/config/_main.py +1 -6
- fractal_server/images/models.py +2 -1
- fractal_server/main.py +11 -72
- fractal_server/runner/config/_slurm.py +0 -2
- fractal_server/runner/executors/slurm_common/slurm_config.py +0 -1
- fractal_server/runner/v2/_local.py +3 -4
- fractal_server/runner/v2/_slurm_ssh.py +3 -4
- fractal_server/runner/v2/_slurm_sudo.py +3 -4
- fractal_server/runner/v2/runner.py +17 -36
- fractal_server/runner/v2/runner_functions.py +14 -11
- fractal_server/runner/v2/submit_workflow.py +9 -22
- fractal_server/tasks/v2/local/_utils.py +2 -2
- fractal_server/tasks/v2/local/collect.py +6 -5
- fractal_server/tasks/v2/local/collect_pixi.py +6 -5
- fractal_server/tasks/v2/local/deactivate.py +7 -7
- fractal_server/tasks/v2/local/deactivate_pixi.py +3 -3
- fractal_server/tasks/v2/local/delete.py +5 -5
- fractal_server/tasks/v2/local/reactivate.py +5 -5
- fractal_server/tasks/v2/local/reactivate_pixi.py +5 -5
- fractal_server/tasks/v2/ssh/collect.py +5 -5
- fractal_server/tasks/v2/ssh/collect_pixi.py +5 -5
- fractal_server/tasks/v2/ssh/deactivate.py +7 -7
- fractal_server/tasks/v2/ssh/deactivate_pixi.py +2 -2
- fractal_server/tasks/v2/ssh/delete.py +5 -5
- fractal_server/tasks/v2/ssh/reactivate.py +5 -5
- fractal_server/tasks/v2/ssh/reactivate_pixi.py +5 -5
- fractal_server/tasks/v2/utils_background.py +7 -7
- fractal_server/tasks/v2/utils_database.py +5 -5
- fractal_server/types/__init__.py +0 -22
- fractal_server/types/validators/__init__.py +0 -3
- fractal_server/types/validators/_common_validators.py +0 -32
- {fractal_server-2.18.0.dist-info → fractal_server-2.18.0a0.dist-info}/METADATA +1 -1
- {fractal_server-2.18.0.dist-info → fractal_server-2.18.0a0.dist-info}/RECORD +92 -97
- fractal_server/app/routes/auth/viewer_paths.py +0 -43
- fractal_server/data_migrations/2_18_0.py +0 -30
- fractal_server/migrations/versions/7910eed4cf97_user_project_dirs_and_usergroup_viewer_.py +0 -60
- fractal_server/migrations/versions/88270f589c9b_add_prevent_new_submissions.py +0 -39
- fractal_server/migrations/versions/f0702066b007_one_submitted_job_per_dataset.py +0 -40
- {fractal_server-2.18.0.dist-info → fractal_server-2.18.0a0.dist-info}/WHEEL +0 -0
- {fractal_server-2.18.0.dist-info → fractal_server-2.18.0a0.dist-info}/entry_points.txt +0 -0
- {fractal_server-2.18.0.dist-info → fractal_server-2.18.0a0.dist-info}/licenses/LICENSE +0 -0
fractal_server/types/__init__.py
CHANGED
|
@@ -10,9 +10,6 @@ from fractal_server.urls import normalize_url
|
|
|
10
10
|
|
|
11
11
|
from .validators import val_absolute_path
|
|
12
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
|
|
16
13
|
from .validators import val_unique_list
|
|
17
14
|
from .validators import valdict_keys
|
|
18
15
|
from .validators import validate_attribute_filters
|
|
@@ -30,22 +27,11 @@ A non-empty string, with no leading/trailing whitespaces.
|
|
|
30
27
|
AbsolutePathStr = Annotated[
|
|
31
28
|
NonEmptyStr,
|
|
32
29
|
AfterValidator(val_absolute_path),
|
|
33
|
-
AfterValidator(val_no_dotdot_in_path),
|
|
34
|
-
AfterValidator(val_os_path_normpath),
|
|
35
30
|
]
|
|
36
31
|
"""
|
|
37
32
|
String representing an absolute path.
|
|
38
|
-
|
|
39
|
-
Validation fails if the path is not absolute or if it contains a
|
|
40
|
-
parent-directory reference "/../".
|
|
41
33
|
"""
|
|
42
34
|
|
|
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
|
-
]
|
|
49
35
|
|
|
50
36
|
HttpUrlStr = Annotated[
|
|
51
37
|
NonEmptyStr,
|
|
@@ -58,27 +44,19 @@ String representing an URL.
|
|
|
58
44
|
|
|
59
45
|
ZarrUrlStr = Annotated[
|
|
60
46
|
NonEmptyStr,
|
|
61
|
-
AfterValidator(val_no_dotdot_in_path),
|
|
62
47
|
AfterValidator(normalize_url),
|
|
63
48
|
]
|
|
64
49
|
"""
|
|
65
50
|
String representing a zarr URL/path.
|
|
66
|
-
|
|
67
|
-
Validation fails if the path is not absolute or if it contains a
|
|
68
|
-
parent-directory reference "/../".
|
|
69
51
|
"""
|
|
70
52
|
|
|
71
53
|
|
|
72
54
|
ZarrDirStr = Annotated[
|
|
73
55
|
NonEmptyStr,
|
|
74
|
-
AfterValidator(val_no_dotdot_in_path),
|
|
75
56
|
AfterValidator(normalize_url),
|
|
76
57
|
]
|
|
77
58
|
"""
|
|
78
59
|
String representing a `zarr_dir` path.
|
|
79
|
-
|
|
80
|
-
Validation fails if the path is not absolute or if it contains a
|
|
81
|
-
parent-directory reference "/../".
|
|
82
60
|
"""
|
|
83
61
|
|
|
84
62
|
DictStrAny = Annotated[
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
from ._common_validators import val_absolute_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
|
|
4
2
|
from ._common_validators import val_http_url # noqa F401
|
|
5
3
|
from ._common_validators import val_unique_list # noqa F401
|
|
6
4
|
from ._common_validators import valdict_keys # noqa F401
|
|
7
|
-
from ._common_validators import val_non_absolute_path # noqa F401
|
|
8
5
|
from ._filter_validators import validate_attribute_filters # noqa F401
|
|
9
6
|
from ._workflow_task_arguments_validators import validate_wft_args # noqa F401
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import os
|
|
2
|
-
from pathlib import Path
|
|
3
2
|
from typing import Any
|
|
4
3
|
|
|
5
4
|
from pydantic import HttpUrl
|
|
@@ -30,37 +29,6 @@ def val_absolute_path(path: str) -> str:
|
|
|
30
29
|
return path
|
|
31
30
|
|
|
32
31
|
|
|
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:
|
|
45
|
-
"""
|
|
46
|
-
Check that a string attribute has no '/../' in it
|
|
47
|
-
"""
|
|
48
|
-
if ".." in Path(path).parts:
|
|
49
|
-
raise ValueError("String must not contain '/../'.")
|
|
50
|
-
return path
|
|
51
|
-
|
|
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
|
-
|
|
64
32
|
def val_unique_list(must_be_unique: list) -> list:
|
|
65
33
|
if len(set(must_be_unique)) != len(must_be_unique):
|
|
66
34
|
raise ValueError("List has repetitions")
|
|
@@ -1,121 +1,119 @@
|
|
|
1
|
-
fractal_server/__init__.py,sha256=
|
|
2
|
-
fractal_server/__main__.py,sha256=
|
|
1
|
+
fractal_server/__init__.py,sha256=zUjuvRpoe51pROLg8ctvKgpIyEZgCSJzeDX3TTVg9Ms,25
|
|
2
|
+
fractal_server/__main__.py,sha256=o63YYNPm6wv0YG5PTtxPselXY6g3ii5VoBP8blPGgK8,11423
|
|
3
3
|
fractal_server/alembic.ini,sha256=MWwi7GzjzawI9cCAK1LW7NxIBQDUqD12-ptJoq5JpP0,3153
|
|
4
4
|
fractal_server/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
fractal_server/app/db/__init__.py,sha256=Otswoi_PlwX1zRhLTFQUKbW9Ho7piRn8dezjq8k-XaU,2834
|
|
6
6
|
fractal_server/app/models/__init__.py,sha256=oglUT1A1lLhXy2GFz3XsQ7wqkyfs3NXRtuNov-gOHXM,368
|
|
7
7
|
fractal_server/app/models/linkusergroup.py,sha256=3KkkE4QIUAlTrBAZs_tVy0pGvAxUAq6yOEjflct_z2M,678
|
|
8
8
|
fractal_server/app/models/linkuserproject.py,sha256=LW09JFTY2lFLqp3KdxUNjldeJRaao3WnTko_gS21EU4,1572
|
|
9
|
-
fractal_server/app/models/security.py,sha256=
|
|
9
|
+
fractal_server/app/models/security.py,sha256=p9h1wqWzkJ2_P1kVmsHgeA81Bt5DU24v7THCr2-J238,4671
|
|
10
10
|
fractal_server/app/models/v2/__init__.py,sha256=xL05Mvdx0dqUFhJf694oPfuqkUQxZbxOkoUgRuNIXl4,949
|
|
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=
|
|
14
|
+
fractal_server/app/models/v2/job.py,sha256=OFSNALm4xRvZ7nlojrbff-HcILYKY2gahlLxEbRsCDE,2074
|
|
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=
|
|
17
|
+
fractal_server/app/models/v2/resource.py,sha256=IHZR7D2K1zpbL1I66vAGqm1RGE8WOH9Q6dNQ-qGcH9g,3549
|
|
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=
|
|
24
|
+
fractal_server/app/routes/admin/v2/__init__.py,sha256=l3BVqu5f_KXW-8KCpmnI9QS_sZJTXygIz7Z_WawCGDA,1170
|
|
25
25
|
fractal_server/app/routes/admin/v2/_aux_functions.py,sha256=fqA5sUCFuD2iVANQt2WUUfVOEVz5egQA7inzUKYGCw0,1684
|
|
26
|
-
fractal_server/app/routes/admin/v2/accounting.py,sha256=
|
|
26
|
+
fractal_server/app/routes/admin/v2/accounting.py,sha256=HJ98G_Pde31cwEOqtloAJBXxsoRgNaoSG46OW7x1OBM,3584
|
|
27
27
|
fractal_server/app/routes/admin/v2/impersonate.py,sha256=ictDjuvBr3iLv3YtwkVRMNQRq5qtPAeAXbbC7STSsEg,1125
|
|
28
|
-
fractal_server/app/routes/admin/v2/job.py,sha256=
|
|
28
|
+
fractal_server/app/routes/admin/v2/job.py,sha256=aozHUx7nrDGr-JagePWjwdFGfW7nsAMH4RNvi4iLrsk,10515
|
|
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=
|
|
33
|
-
fractal_server/app/routes/admin/v2/task_group.py,sha256=
|
|
34
|
-
fractal_server/app/routes/admin/v2/task_group_lifecycle.py,sha256=
|
|
35
|
-
fractal_server/app/routes/api/__init__.py,sha256=
|
|
36
|
-
fractal_server/app/routes/api/v2/__init__.py,sha256=
|
|
37
|
-
fractal_server/app/routes/api/v2/_aux_functions.py,sha256=
|
|
32
|
+
fractal_server/app/routes/admin/v2/task.py,sha256=t_ldc_71ZNbYuymmhn2WT8RqZlxMUceQfLU3LLInR4I,6127
|
|
33
|
+
fractal_server/app/routes/admin/v2/task_group.py,sha256=zotpvn5ccQ9Kn-mgIorxJ8RU0BelxP_EEIi-2THH4kA,6248
|
|
34
|
+
fractal_server/app/routes/admin/v2/task_group_lifecycle.py,sha256=3LtyLDLFDEWSx9e4huXV_uBUdoDuIWib7IzMjlD1OMI,9975
|
|
35
|
+
fractal_server/app/routes/api/__init__.py,sha256=kq_c4t4a0rrJ6zMO0WGOTjCHf46SAlmWhh7Sa-3LkNg,1659
|
|
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
|
|
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=
|
|
40
|
+
fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py,sha256=u7KO6VXBJhPhlUZlIt-mqmWzhfR-btrQdb5HNvPR5OY,8537
|
|
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=
|
|
42
|
+
fractal_server/app/routes/api/v2/_aux_functions_tasks.py,sha256=jg1QUQhDmeTw6c36-gBOVqOiBgI9kqBiuU77hHaJ_ag,13627
|
|
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=
|
|
45
|
-
fractal_server/app/routes/api/v2/history.py,sha256=
|
|
44
|
+
fractal_server/app/routes/api/v2/dataset.py,sha256=FE5m8t8KyBQG-df_uBJIpaPHBjbHOGkFbSDhMN6fsuw,8579
|
|
45
|
+
fractal_server/app/routes/api/v2/history.py,sha256=BYsfBlvcBGbJCL47KlMpZDktXAHB8ft2nIaOQMMjqPA,18183
|
|
46
46
|
fractal_server/app/routes/api/v2/images.py,sha256=k9wd44iwjCtEWSH9j6X6zToBwuOOo6J4FxSW7AGbPHA,8266
|
|
47
|
-
fractal_server/app/routes/api/v2/job.py,sha256=
|
|
47
|
+
fractal_server/app/routes/api/v2/job.py,sha256=vRN3Ovwami_4CpZw8zJN1azltMCh2ed42dlOfVHHG6Q,7274
|
|
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=
|
|
50
|
-
fractal_server/app/routes/api/v2/sharing.py,sha256=
|
|
51
|
-
fractal_server/app/routes/api/v2/status_legacy.py,sha256=
|
|
52
|
-
fractal_server/app/routes/api/v2/submit.py,sha256=
|
|
53
|
-
fractal_server/app/routes/api/v2/task.py,sha256=
|
|
54
|
-
fractal_server/app/routes/api/v2/task_collection.py,sha256=
|
|
55
|
-
fractal_server/app/routes/api/v2/task_collection_custom.py,sha256=
|
|
56
|
-
fractal_server/app/routes/api/v2/task_collection_pixi.py,sha256=
|
|
57
|
-
fractal_server/app/routes/api/v2/task_group.py,sha256=
|
|
58
|
-
fractal_server/app/routes/api/v2/task_group_lifecycle.py,sha256=
|
|
59
|
-
fractal_server/app/routes/api/v2/task_version_update.py,sha256=
|
|
60
|
-
fractal_server/app/routes/api/v2/workflow.py,sha256=
|
|
61
|
-
fractal_server/app/routes/api/v2/workflow_import.py,sha256=
|
|
62
|
-
fractal_server/app/routes/api/v2/workflowtask.py,sha256=
|
|
49
|
+
fractal_server/app/routes/api/v2/project.py,sha256=TlcixNdrss6-0jSiFGnlLP-qCsuX8_nhUyagG5tip3c,5833
|
|
50
|
+
fractal_server/app/routes/api/v2/sharing.py,sha256=mwq8p6rQ4wE4ymli_azV-BYDbVk45RzYqMBei0wuzzk,9446
|
|
51
|
+
fractal_server/app/routes/api/v2/status_legacy.py,sha256=zP5YheZBoeffanUpVZvKYL4kYIiGIkGtR9W9GX0pXVE,6599
|
|
52
|
+
fractal_server/app/routes/api/v2/submit.py,sha256=HScEY2IC4xVLXBoe1Pwiy9bjNR1FnEuAJWjQTidEGFU,9562
|
|
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=phHiQU8y4kTDaCJ6BQwTp4SPdE_L4MH3QTnWnkx1hcA,9225
|
|
63
63
|
fractal_server/app/routes/auth/__init__.py,sha256=RghfjGuu0RTW8RxBCvaePx9KErO4rTkI96XgbtbeSJU,2337
|
|
64
|
-
fractal_server/app/routes/auth/_aux_auth.py,sha256=
|
|
65
|
-
fractal_server/app/routes/auth/current_user.py,sha256=
|
|
66
|
-
fractal_server/app/routes/auth/group.py,sha256=
|
|
64
|
+
fractal_server/app/routes/auth/_aux_auth.py,sha256=s_boxuhPC60j74NmE8FopYPv_Fc4hiADvL0beWPcuE0,5474
|
|
65
|
+
fractal_server/app/routes/auth/current_user.py,sha256=Y_2Es3HFtTMuVUmWVHFFvk3vsRgmlqS_x5BwkeavlvI,5552
|
|
66
|
+
fractal_server/app/routes/auth/group.py,sha256=5bIM8LoUVv1C5-bMYoJbNSS8eESgVpK8-o47sUjMcZU,7293
|
|
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
|
-
fractal_server/app/routes/auth/router.py,sha256
|
|
71
|
-
fractal_server/app/routes/auth/users.py,sha256=
|
|
72
|
-
fractal_server/app/routes/auth/viewer_paths.py,sha256=aW1QM4fdCM-WFEOXNf7I7V7_XQuuRrOHvd32nr08Ofs,1618
|
|
70
|
+
fractal_server/app/routes/auth/router.py,sha256=-E87A8h2UvcLucy5xjzKiWbXHVKcqxUmmZGeV_utEzA,598
|
|
71
|
+
fractal_server/app/routes/auth/users.py,sha256=2E1TEWRGprp-TyF39VJ3Bu6p9tyy37xObG0Ijqa1aHg,7089
|
|
73
72
|
fractal_server/app/routes/aux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
73
|
fractal_server/app/routes/aux/_job.py,sha256=n-UhONvomKyKkQDDqd0lFh2kCMhlCGXpfdMNW39R1E4,644
|
|
75
74
|
fractal_server/app/routes/aux/_runner.py,sha256=-SvcXCVEV7Mb6q4PbbxuTCCruX6sAlR5QGXk9CzBVv8,979
|
|
76
75
|
fractal_server/app/routes/aux/validate_user_profile.py,sha256=fGqJDdAFkbQoEIjqZ5F9-SDY_4os63R2EUMqODC7eBg,1969
|
|
77
76
|
fractal_server/app/routes/pagination.py,sha256=C4XW6cnyDfyu1XMHXRN4wgk72lsS0UtlINZmwGZFb4Y,1174
|
|
78
77
|
fractal_server/app/schemas/__init__.py,sha256=VIWJCaqokte3OljDLX00o-EC2d12rFoPb5HOLKQI94Y,86
|
|
79
|
-
fractal_server/app/schemas/user.py,sha256=
|
|
80
|
-
fractal_server/app/schemas/user_group.py,sha256=
|
|
81
|
-
fractal_server/app/schemas/v2/__init__.py,sha256=
|
|
78
|
+
fractal_server/app/schemas/user.py,sha256=ed1kXyVoCboNiHTQSA9EVGCZNIFByFknPluehHbYKmE,2900
|
|
79
|
+
fractal_server/app/schemas/user_group.py,sha256=uTTOVGoy89SxVDpJumjqOEWxqXWR41MNOTBDCyNxEDA,1478
|
|
80
|
+
fractal_server/app/schemas/v2/__init__.py,sha256=mMhdt4Jo-lyG8bITGAbpuyhDJx4MNgk-VSTKqcE6Ymo,4101
|
|
82
81
|
fractal_server/app/schemas/v2/accounting.py,sha256=6EVUdPTkFY6Wb9-Vc0cIEZYVXwGEvJ3tP4YOXYE1hao,546
|
|
83
|
-
fractal_server/app/schemas/v2/dataset.py,sha256=
|
|
84
|
-
fractal_server/app/schemas/v2/dumps.py,sha256=
|
|
82
|
+
fractal_server/app/schemas/v2/dataset.py,sha256=cBsEkny-EgNqFETMGRbJu5ChfYOnsKhkivqXK5dEOxQ,1938
|
|
83
|
+
fractal_server/app/schemas/v2/dumps.py,sha256=NrQYrfu3ze317DC7wDwjJYv6gYfkWWze25HmQmYJNhQ,2294
|
|
85
84
|
fractal_server/app/schemas/v2/history.py,sha256=pZiMKfh6nMWbTp5MUtrnGySPKbeRFf5tM1VLFaTgGcw,1784
|
|
86
|
-
fractal_server/app/schemas/v2/job.py,sha256=
|
|
85
|
+
fractal_server/app/schemas/v2/job.py,sha256=BuiNzAX2Kl-b7LJnAiqCGDC9h6bGEjKvsHQIgf5mjHQ,3330
|
|
87
86
|
fractal_server/app/schemas/v2/manifest.py,sha256=I8KyVZvW6r6_DrcKX5aZ9zJwa-Kk_u3gCKlz6HVPF5o,6655
|
|
88
87
|
fractal_server/app/schemas/v2/profile.py,sha256=CB44vkjRzcxAhw_6J67dYcVKKbYKJS6MdmZAXKF1ous,3299
|
|
89
|
-
fractal_server/app/schemas/v2/project.py,sha256=
|
|
90
|
-
fractal_server/app/schemas/v2/resource.py,sha256=
|
|
88
|
+
fractal_server/app/schemas/v2/project.py,sha256=7UC0aZLgtmkaAiPykeUj-9OZXhMkoyi3V-475UW_EQs,654
|
|
89
|
+
fractal_server/app/schemas/v2/resource.py,sha256=MSwMKEmX9qdmYg-_2VGELlmCobJ3Ih2ldG6-R16WDBg,6230
|
|
91
90
|
fractal_server/app/schemas/v2/sharing.py,sha256=wHBiEmqhU53NokQ2rmm6xkH3lumBR6TdWw4nvDz6uww,1818
|
|
92
|
-
fractal_server/app/schemas/v2/status_legacy.py,sha256=
|
|
93
|
-
fractal_server/app/schemas/v2/task.py,sha256=
|
|
94
|
-
fractal_server/app/schemas/v2/task_collection.py,sha256=
|
|
95
|
-
fractal_server/app/schemas/v2/task_group.py,sha256=
|
|
96
|
-
fractal_server/app/schemas/v2/workflow.py,sha256=
|
|
97
|
-
fractal_server/app/schemas/v2/workflowtask.py,sha256=
|
|
98
|
-
fractal_server/app/security/__init__.py,sha256=
|
|
91
|
+
fractal_server/app/schemas/v2/status_legacy.py,sha256=eQT1zGxbkzSwd0EqclsOdZ60n1x6J3DB1CZ3m4LYyxc,955
|
|
92
|
+
fractal_server/app/schemas/v2/task.py,sha256=WkjliM8zujapC9CHTFme5ByjPCiln6qYKWJ_9gbcGOk,4363
|
|
93
|
+
fractal_server/app/schemas/v2/task_collection.py,sha256=QUiMAwckHSzjXlC_cyNSR1QX0fpxG1wKPcd95SE2qKo,4598
|
|
94
|
+
fractal_server/app/schemas/v2/task_group.py,sha256=4hNZUXnWYSozpLXR3JqBvGzfZBG2TbjqydckHHu2Aq0,3506
|
|
95
|
+
fractal_server/app/schemas/v2/workflow.py,sha256=L-dW6SzCH_VNoH6ENip44lTgGGqVYHHBk_3PtM-Ooy8,1772
|
|
96
|
+
fractal_server/app/schemas/v2/workflowtask.py,sha256=ckfPmbPTAn0lzbiaWQItdGxEUuWsRxiWBj898VEb1gw,3640
|
|
97
|
+
fractal_server/app/security/__init__.py,sha256=L-Q0wsh2GjDyeiT4FfgWTyfrSH1QA52cp9zl5U5OT9I,18360
|
|
99
98
|
fractal_server/app/security/signup_email.py,sha256=ZnwwjpL6jyIkegHBebTqYYGGVtllLI0_x48K-yJtkNk,1969
|
|
100
|
-
fractal_server/app/shutdown.py,sha256=
|
|
101
|
-
fractal_server/config/__init__.py,sha256=
|
|
102
|
-
fractal_server/config/_data.py,sha256=
|
|
99
|
+
fractal_server/app/shutdown.py,sha256=QU4DfNvqwUXlHiLORtYJit4DxlFQo014SKTfs4dcE2U,2295
|
|
100
|
+
fractal_server/config/__init__.py,sha256=ZCmroNB50sUxJiFtkW0a4fFtmfyPnL4LWhtKY5FbQfg,737
|
|
101
|
+
fractal_server/config/_data.py,sha256=M7bwGDrvTV2mIo9Y3BilzluCyEIlE-PyIjCdcTbzWZg,2804
|
|
103
102
|
fractal_server/config/_database.py,sha256=0_FvboMkQEKKRxvr9uFdp98oiQwMTFbdCW3loTZNSY0,1846
|
|
104
103
|
fractal_server/config/_email.py,sha256=vMwLHN9-beYp_-up-WkTpeyNUZk4EHwt3N2l6-PYnx4,4364
|
|
105
|
-
fractal_server/config/_main.py,sha256=
|
|
104
|
+
fractal_server/config/_main.py,sha256=s11lg9r-4hALGefG8xiMlc12ul0hL7ct4YviD-YBWWE,2230
|
|
106
105
|
fractal_server/config/_oauth.py,sha256=UTmlFppDZcOQhr3RvkiG5XMqvr54XRAQ_Y-iR0V8N-8,2024
|
|
107
106
|
fractal_server/config/_settings_config.py,sha256=tsyXQOnn9QKCFJD6hRo_dJXlQQyl70DbqgHMJoZ1xnY,144
|
|
108
|
-
fractal_server/data_migrations/2_18_0.py,sha256=GSTs69gLnMJ0XSf59dIOARYu5aP4SSAG5Eid670yCgk,854
|
|
109
107
|
fractal_server/data_migrations/README.md,sha256=_3AEFvDg9YkybDqCLlFPdDmGJvr6Tw7HRI14aZ3LOIw,398
|
|
110
108
|
fractal_server/data_migrations/tools.py,sha256=LeMeASwYGtEqd-3wOLle6WARdTGAimoyMmRbbJl-hAM,572
|
|
111
109
|
fractal_server/exceptions.py,sha256=l6aZDk_6u_9PwDaQSoIFdI40ekpzqOJaxjx5rhW-HVI,141
|
|
112
110
|
fractal_server/gunicorn_fractal.py,sha256=u6U01TLGlXgq1v8QmEpLih3QnsInZD7CqphgJ_GrGzc,1230
|
|
113
111
|
fractal_server/images/__init__.py,sha256=-_wjoKtSX02P1KjDxDP_EXKvmbONTRmbf7iGVTsyBpM,154
|
|
114
|
-
fractal_server/images/models.py,sha256=
|
|
112
|
+
fractal_server/images/models.py,sha256=dNcCW7XzRRbqL86LJ5aGc6LUAqIPsZXMq67IZyGbIpQ,1242
|
|
115
113
|
fractal_server/images/status_tools.py,sha256=Is2QWThbLCrVJuI0NpGv7TcWs1T8z8q_8Qsidr3TdBU,4932
|
|
116
114
|
fractal_server/images/tools.py,sha256=37jVIU6RiAGbiyucNDlKe9J3yN3Y47NOvv-RJor9Jm0,4154
|
|
117
115
|
fractal_server/logger.py,sha256=9EhRdgPnGdbJ51vxhOD42K0iaDRhKx7wuikpHoh9kzY,5302
|
|
118
|
-
fractal_server/main.py,sha256=
|
|
116
|
+
fractal_server/main.py,sha256=6hI23zI6x3Hz1Cj7JDBNHFYVg5yCymL8oe5UyIc9T2Q,4420
|
|
119
117
|
fractal_server/migrations/env.py,sha256=nfyBpMIOT3kny6t-b-tUjyRjZ4k906bb1_wCQ7me1BI,1353
|
|
120
118
|
fractal_server/migrations/naming_convention.py,sha256=bSEMiMZeArmWKrUk-12lhnOw1pAFMg6LEl7yucohPqc,263
|
|
121
119
|
fractal_server/migrations/versions/034a469ec2eb_task_groups.py,sha256=uuf0sJibC4Am1HDb_dX_Jdj2oinptlg2ojiHwCpjDCY,6155
|
|
@@ -137,11 +135,9 @@ fractal_server/migrations/versions/5bf02391cfef_v2.py,sha256=jTNyZ8H5VDh4eRvCEy-
|
|
|
137
135
|
fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py,sha256=vJ6nDb7UnkCMIPg2zNM7ZE0JOTvaqFL3Fe9UarP-ivM,1633
|
|
138
136
|
fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py,sha256=qpHZC97AduFk5_G0xHs9akhnhpzb1LZooYCTPHy7n28,1353
|
|
139
137
|
fractal_server/migrations/versions/7673fe18c05d_remove_project_dir_server_default.py,sha256=PwTfY9Kq3_cwb5G4E0sM9u7UjzOhOwsYCspymmPgipQ,795
|
|
140
|
-
fractal_server/migrations/versions/7910eed4cf97_user_project_dirs_and_usergroup_viewer_.py,sha256=FvX6dq0DsbKmF-M1TZ63b6lpPGCiJev88sVmQOU80M4,1730
|
|
141
138
|
fractal_server/migrations/versions/791ce783d3d8_add_indices.py,sha256=IeWDVBRryFcFYIJVXhj-QJ6jczGnN_41K7sh6RYF0C4,1154
|
|
142
139
|
fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py,sha256=bLFmGJF7jLkices6PJFO1pmit_4-bu8rwykR6ZWDiCQ,6378
|
|
143
140
|
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
|
|
145
141
|
fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py,sha256=Sm4IFSsAi0zM9HypNkbDQSAWzhrRWFjhGIjp6Lz9VLw,1081
|
|
146
142
|
fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py,sha256=PevYomdu8_lfxfSO5gSbaByDXLdj9AzsHy5WgsOtsJk,1115
|
|
147
143
|
fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py,sha256=UJnpLSGTahYqujwXrKFVnXxsggh27EONfsyWb3H9qmM,1509
|
|
@@ -168,7 +164,6 @@ fractal_server/migrations/versions/e0e717ae2f26_delete_linkuserproject_ondelete_
|
|
|
168
164
|
fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py,sha256=x6eCYsx_Cb7yDC5K_gV2RNHeCF_K-964NtZF1mmxUb0,964
|
|
169
165
|
fractal_server/migrations/versions/e81103413827_add_job_type_filters.py,sha256=w0HYX1645_JXsfUB259OrmXLUasOgRnpKvJJaF44GpQ,890
|
|
170
166
|
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
|
|
172
167
|
fractal_server/migrations/versions/f37aceb45062_make_historyunit_logfile_required.py,sha256=z18Qyts6_49uVhgaXWGQNzF4adnDmVLv3hKHeE9qD9E,1007
|
|
173
168
|
fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py,sha256=TjAkD_275nDVSURAC5wzJbHDBG0yY2_vkLvw4iHeYoc,747
|
|
174
169
|
fractal_server/migrations/versions/fbce16ff4e47_new_history_items.py,sha256=Fr6USeI6LAK9vqbRFvCBmFAiERaEDuZXgSfjUvlc3EU,3885
|
|
@@ -177,7 +172,7 @@ fractal_server/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
177
172
|
fractal_server/runner/components.py,sha256=-Ii5l8d_V6f5DFOd-Zsr8VYmOsyqw0Hox9fEFQiuqxY,66
|
|
178
173
|
fractal_server/runner/config/__init__.py,sha256=a-vSrvWBeMVnxTtYoy-f5Ibt_mM8MM3F7jqnPvvjHSY,108
|
|
179
174
|
fractal_server/runner/config/_local.py,sha256=IHWtxpKuJDdsQNpk8Q5bNL4DEJunNkNJkLfetfnwmQM,788
|
|
180
|
-
fractal_server/runner/config/_slurm.py,sha256=
|
|
175
|
+
fractal_server/runner/config/_slurm.py,sha256=iC4gBolGaYD8SX5FMZu7mq9xI6-kepzeZ6bETrFf0pg,3636
|
|
181
176
|
fractal_server/runner/config/slurm_mem_to_MB.py,sha256=6KmrIC-NymQjb9-bIQjNYQx6mE0OoKoZxdi6WQnWOHw,2003
|
|
182
177
|
fractal_server/runner/exceptions.py,sha256=N8DLn7tuV8zMSdr8xdJN0aIdytPveSCeQ1Y5IoxXW-8,1778
|
|
183
178
|
fractal_server/runner/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -192,7 +187,7 @@ fractal_server/runner/executors/slurm_common/_job_states.py,sha256=nuV-Zba38kDrR
|
|
|
192
187
|
fractal_server/runner/executors/slurm_common/base_slurm_runner.py,sha256=pU2Szcg3tv7vinLJXbzSgYlfEPLY_b0R0YDR-FSYLc8,41873
|
|
193
188
|
fractal_server/runner/executors/slurm_common/get_slurm_config.py,sha256=B6EKjob8Y-DiJ8YbXf2CeoY7B8cwvkpKvlW8Ce6bbx0,7115
|
|
194
189
|
fractal_server/runner/executors/slurm_common/remote.py,sha256=8pTMTRp_LjzoUr3FtFTfdvDhuLnqzY6HT-T9pzrVLw4,3845
|
|
195
|
-
fractal_server/runner/executors/slurm_common/slurm_config.py,sha256=
|
|
190
|
+
fractal_server/runner/executors/slurm_common/slurm_config.py,sha256=VSow-JfxBkdmkMnTBeZ01nnMXXtlqV8ysaSYcdE-_PU,7896
|
|
196
191
|
fractal_server/runner/executors/slurm_common/slurm_job_task_models.py,sha256=VeX40CvU5fckUpSyXlzb3EDE9xxPXkT2sZKLXq_6Ooc,3493
|
|
197
192
|
fractal_server/runner/executors/slurm_ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
198
193
|
fractal_server/runner/executors/slurm_ssh/run_subprocess.py,sha256=SyW6t4egvbiARph2YkFjc88Hj94fCamZVi50L7ph8VM,996
|
|
@@ -205,15 +200,15 @@ fractal_server/runner/filenames.py,sha256=lPnxKHtdRizr6FqG3zOdjDPyWA7GoaJGTtiuJV
|
|
|
205
200
|
fractal_server/runner/set_start_and_last_task_index.py,sha256=NsioSzfEpGyo9ZKrV5KsbxeI7d5V3tE678Y3IAo5rHM,1218
|
|
206
201
|
fractal_server/runner/task_files.py,sha256=n54A1x0MQRGSgqhzOTE-TPzEGJymUhQIUV9ApcVCV9M,4318
|
|
207
202
|
fractal_server/runner/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
208
|
-
fractal_server/runner/v2/_local.py,sha256=
|
|
209
|
-
fractal_server/runner/v2/_slurm_ssh.py,sha256=
|
|
210
|
-
fractal_server/runner/v2/_slurm_sudo.py,sha256=
|
|
203
|
+
fractal_server/runner/v2/_local.py,sha256=XT6uFi0wwO5ZxR_qoszgibkUqal-pNPWWcd101NFgCg,3838
|
|
204
|
+
fractal_server/runner/v2/_slurm_ssh.py,sha256=GcpBLvvSwadxnchS5phOXVk42BlADeDi-xr2K6FBIyU,4529
|
|
205
|
+
fractal_server/runner/v2/_slurm_sudo.py,sha256=iexw_hpUf-jVngMRxntiKIwNT_Dvdbk2R-yHHWEFnws,4424
|
|
211
206
|
fractal_server/runner/v2/db_tools.py,sha256=twqFWVENkxWCYglb__BAXASDuJppwHE-VxdEUC67mq0,3317
|
|
212
207
|
fractal_server/runner/v2/deduplicate_list.py,sha256=TWxHDucal0VZPswy_H7IFaEb4ddGnpl_QBwJ8g9Ybug,668
|
|
213
208
|
fractal_server/runner/v2/merge_outputs.py,sha256=0ahaSwdMFAoEhxVaEaO9nSJuKIcWg9pDZ356ktSHcC0,897
|
|
214
|
-
fractal_server/runner/v2/runner.py,sha256=
|
|
215
|
-
fractal_server/runner/v2/runner_functions.py,sha256=
|
|
216
|
-
fractal_server/runner/v2/submit_workflow.py,sha256=
|
|
209
|
+
fractal_server/runner/v2/runner.py,sha256=zX_gResJlzfdyBkcmadhaRAYWhgfNbCqm3jF0l3lbGo,20178
|
|
210
|
+
fractal_server/runner/v2/runner_functions.py,sha256=308EwXZ2hBAnavokaywkVcaDkywQIillGibCvJB5y_E,19634
|
|
211
|
+
fractal_server/runner/v2/submit_workflow.py,sha256=tNJmlgSNOCjesN8tEGtq3sz1RYB67lP-tgRcKKTTSvs,11453
|
|
217
212
|
fractal_server/runner/v2/task_interface.py,sha256=ftPPpOU16rbJD8q-QV7o_3ey8W7MQTFuWJiYUr4OmF4,2532
|
|
218
213
|
fractal_server/runner/versions.py,sha256=uz59Dxj7BphnFnr-p0kyaZRH0h4w5Xkd0UJNVGtt4ds,474
|
|
219
214
|
fractal_server/ssh/__init__.py,sha256=sVUmzxf7_DuXG1xoLQ1_00fo5NPhi2LJipSmU5EAkPs,124
|
|
@@ -227,24 +222,24 @@ fractal_server/tasks/config/_python.py,sha256=lvjIzuV9mMyDmRadx2yTTKu1abx1EE_gnZ
|
|
|
227
222
|
fractal_server/tasks/utils.py,sha256=izZthoEmt5NcnC8ktTmbMtNnrCD8zKir37NyCfPJDX4,290
|
|
228
223
|
fractal_server/tasks/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
224
|
fractal_server/tasks/v2/local/__init__.py,sha256=2dJqJIwn9UEANg8lPFprxVLk3ug-4xYIb5pvIsqPb5s,353
|
|
230
|
-
fractal_server/tasks/v2/local/_utils.py,sha256=
|
|
231
|
-
fractal_server/tasks/v2/local/collect.py,sha256=
|
|
232
|
-
fractal_server/tasks/v2/local/collect_pixi.py,sha256=
|
|
233
|
-
fractal_server/tasks/v2/local/deactivate.py,sha256=
|
|
234
|
-
fractal_server/tasks/v2/local/deactivate_pixi.py,sha256=
|
|
235
|
-
fractal_server/tasks/v2/local/delete.py,sha256=
|
|
236
|
-
fractal_server/tasks/v2/local/reactivate.py,sha256=
|
|
237
|
-
fractal_server/tasks/v2/local/reactivate_pixi.py,sha256=
|
|
225
|
+
fractal_server/tasks/v2/local/_utils.py,sha256=J9E3EhY8VKe7aaHRJqv5aT7MOTFPZ-7lDCFqUXXAw1E,3491
|
|
226
|
+
fractal_server/tasks/v2/local/collect.py,sha256=vtDGEwLoKrvZG-lFnOUbtQabM-1ob16hzLYv440hQ58,12146
|
|
227
|
+
fractal_server/tasks/v2/local/collect_pixi.py,sha256=XJZpjmXZwpKc6IPU43EMtQlncPnSHi0OA9wpE_P4hiw,11518
|
|
228
|
+
fractal_server/tasks/v2/local/deactivate.py,sha256=jBkgDOp8vHQCSpDaM5jH7YhYGZor25rQtSsVkvn2rHM,9960
|
|
229
|
+
fractal_server/tasks/v2/local/deactivate_pixi.py,sha256=p5_TVz5p-4yvH6TeZ0KtgEPnBGQ0Lxs46ls0AkBx3JA,3715
|
|
230
|
+
fractal_server/tasks/v2/local/delete.py,sha256=BhIfPQ-Ylfq3D5969GFe_eMTQm6oCEiz2ghwThqZVKY,2951
|
|
231
|
+
fractal_server/tasks/v2/local/reactivate.py,sha256=7USin1BRWmmN9OZnRYiTa3gPN5B_xdEeV8A91bA1YIc,6075
|
|
232
|
+
fractal_server/tasks/v2/local/reactivate_pixi.py,sha256=SOblcb_IlRTCyaVvhW-KIxHw2GbVKMtx8VPauhFHvbs,8221
|
|
238
233
|
fractal_server/tasks/v2/ssh/__init__.py,sha256=dPK6BtEZVh1GiFP05j1RKTEnZvjJez8o2KkMC2hWXaw,339
|
|
239
234
|
fractal_server/tasks/v2/ssh/_pixi_slurm_ssh.py,sha256=3iixFaS5Uqhh28qAv_yBSW4YvffqIhE0LK0gQee9qjI,7448
|
|
240
235
|
fractal_server/tasks/v2/ssh/_utils.py,sha256=a2oM8zh68zmcUuRLY_5y_9wA9MNd3NOM-w-P7RgwX2E,6112
|
|
241
|
-
fractal_server/tasks/v2/ssh/collect.py,sha256=
|
|
242
|
-
fractal_server/tasks/v2/ssh/collect_pixi.py,sha256=
|
|
243
|
-
fractal_server/tasks/v2/ssh/deactivate.py,sha256=
|
|
244
|
-
fractal_server/tasks/v2/ssh/deactivate_pixi.py,sha256=
|
|
245
|
-
fractal_server/tasks/v2/ssh/delete.py,sha256=
|
|
246
|
-
fractal_server/tasks/v2/ssh/reactivate.py,sha256=
|
|
247
|
-
fractal_server/tasks/v2/ssh/reactivate_pixi.py,sha256=
|
|
236
|
+
fractal_server/tasks/v2/ssh/collect.py,sha256=KHhpTGURX1H0A1O4asoH-idTgHpW2-Vx1fsQPhi5RlY,14497
|
|
237
|
+
fractal_server/tasks/v2/ssh/collect_pixi.py,sha256=Pg9o1qnBFRpBwpt7abjrewDjPURDCwoaKraEq8AcOk0,15871
|
|
238
|
+
fractal_server/tasks/v2/ssh/deactivate.py,sha256=nbm9lnWtegql8rITeM5-VmsL6RD7TiKZKvdzl39Shwk,12689
|
|
239
|
+
fractal_server/tasks/v2/ssh/deactivate_pixi.py,sha256=6p2quZe8Kg0gK_zoF21-F8guFBjrmNvOZCRaUOYUb3E,4952
|
|
240
|
+
fractal_server/tasks/v2/ssh/delete.py,sha256=63qUL9p54Qjw0FSSuKossimON6rTJb9Ak8imVN3JhM0,4469
|
|
241
|
+
fractal_server/tasks/v2/ssh/reactivate.py,sha256=TX6MAlVai4766PDJ5qfCg5YIUwhJkJpnungdzojCiaY,8538
|
|
242
|
+
fractal_server/tasks/v2/ssh/reactivate_pixi.py,sha256=ohL-rpMS8Ey07-mVnc-dZrY3FKtpzAJRqcLsUEDzjZ8,11899
|
|
248
243
|
fractal_server/tasks/v2/templates/1_create_venv.sh,sha256=a9viswsex_26lNStFgTjtSM4_K1eiyA2qfSQAwhH1Pw,561
|
|
249
244
|
fractal_server/tasks/v2/templates/2_pip_install.sh,sha256=IS1iXCvFTb6owHAIrvTrnPN1g7UWESkZyTTVdBBLQ3Y,2168
|
|
250
245
|
fractal_server/tasks/v2/templates/3_pip_freeze.sh,sha256=oxqXMd-ZW8jtHjkwdwchbtWaoW6QHIk2Ksgreygo4no,181
|
|
@@ -254,22 +249,22 @@ fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh,sha256=ddF-Pz-MTv
|
|
|
254
249
|
fractal_server/tasks/v2/templates/pixi_1_extract.sh,sha256=vRRiBhwdE0NAXxornzG4P8QlZ5vjn-f9lJTtigA_Q_g,1112
|
|
255
250
|
fractal_server/tasks/v2/templates/pixi_2_install.sh,sha256=0vWP7PscdPlGwlukD752eKeQVRis4PwG2f2IhPK_8RA,1614
|
|
256
251
|
fractal_server/tasks/v2/templates/pixi_3_post_install.sh,sha256=eiTcg-eTSo-itmeEBt5am0jSji1-2MvYamm-HqiCfO4,2514
|
|
257
|
-
fractal_server/tasks/v2/utils_background.py,sha256=
|
|
258
|
-
fractal_server/tasks/v2/utils_database.py,sha256=
|
|
252
|
+
fractal_server/tasks/v2/utils_background.py,sha256=Rc_dO3Y89i3oI3tLgqrvJNwbL-E9tWg4TskQYqTDX3E,4842
|
|
253
|
+
fractal_server/tasks/v2/utils_database.py,sha256=C1td6m6ab1NdXVoT6stvVdrY_3FNck8OkRZZhn9h8ZA,1797
|
|
259
254
|
fractal_server/tasks/v2/utils_package_names.py,sha256=-FAcbwBHsjyvhIK0QKue9_0xJUfRVdKMSIU_-gnLOR0,2381
|
|
260
255
|
fractal_server/tasks/v2/utils_pixi.py,sha256=Z0FnRqVynSvXDDeFL0anz7zwKrBDLGdQxyuJdipt2DI,3411
|
|
261
256
|
fractal_server/tasks/v2/utils_python_interpreter.py,sha256=36AvrMoydr9w6Rm_7hKl5QK8zYI0KIm4Pv8WHANWwjE,658
|
|
262
257
|
fractal_server/tasks/v2/utils_templates.py,sha256=L5GblhIKJwyzUbCORj1et5mh-7mG19nT5kmIpxOEj90,3489
|
|
263
|
-
fractal_server/types/__init__.py,sha256=
|
|
264
|
-
fractal_server/types/validators/__init__.py,sha256=
|
|
265
|
-
fractal_server/types/validators/_common_validators.py,sha256=
|
|
258
|
+
fractal_server/types/__init__.py,sha256=z5jzdESBld-orcOyBe6J5I-V-CQfY64nRYVFQXZUlWs,2934
|
|
259
|
+
fractal_server/types/validators/__init__.py,sha256=5uj6KJ9MelFZgyoq3MzXLhgWCl0yiriS7XKmb0gathg,392
|
|
260
|
+
fractal_server/types/validators/_common_validators.py,sha256=LTIQPfOPBM-KjxPgbeCLvLFwSESxAQjppzON9pt_RDQ,1148
|
|
266
261
|
fractal_server/types/validators/_filter_validators.py,sha256=irmjzycmiR6F4fmWUeA45Pdh7AeLufwVjNItskDsknk,831
|
|
267
262
|
fractal_server/types/validators/_workflow_task_arguments_validators.py,sha256=zt4TQBiLiNVD3yMYbN-dkX0AWRAjG4vRv3FIybh9zLQ,372
|
|
268
263
|
fractal_server/urls.py,sha256=QjIKAC1a46bCdiPMu3AlpgFbcv6a4l3ABcd5xz190Og,471
|
|
269
264
|
fractal_server/utils.py,sha256=-rjg8QTXQcKweXjn0NcmETFs1_uM9PGnbl0Q7c4ERPM,2181
|
|
270
265
|
fractal_server/zip_tools.py,sha256=Uhn-ax4_9g1PJ32BdyaX30hFpAeVOv2tZYTUK-zVn1E,5719
|
|
271
|
-
fractal_server-2.18.
|
|
272
|
-
fractal_server-2.18.
|
|
273
|
-
fractal_server-2.18.
|
|
274
|
-
fractal_server-2.18.
|
|
275
|
-
fractal_server-2.18.
|
|
266
|
+
fractal_server-2.18.0a0.dist-info/METADATA,sha256=Z6QtIkxxrETcp7P-PYKpvhf1xAhqzoEuwwZtkfGz3gs,4277
|
|
267
|
+
fractal_server-2.18.0a0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
268
|
+
fractal_server-2.18.0a0.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
|
|
269
|
+
fractal_server-2.18.0a0.dist-info/licenses/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
|
|
270
|
+
fractal_server-2.18.0a0.dist-info/RECORD,,
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
from fastapi import APIRouter
|
|
2
|
-
from fastapi import Depends
|
|
3
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
4
|
-
from sqlmodel import select
|
|
5
|
-
|
|
6
|
-
from fractal_server.app.db import get_async_db
|
|
7
|
-
from fractal_server.app.models import UserOAuth
|
|
8
|
-
from fractal_server.app.models.linkuserproject import LinkUserProjectV2
|
|
9
|
-
from fractal_server.app.models.v2.dataset import DatasetV2
|
|
10
|
-
from fractal_server.app.models.v2.project import ProjectV2
|
|
11
|
-
from fractal_server.app.routes.auth import current_user_act_ver
|
|
12
|
-
|
|
13
|
-
router_viewer_paths = APIRouter()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@router_viewer_paths.get(
|
|
17
|
-
"/current-user/allowed-viewer-paths/", response_model=list[str]
|
|
18
|
-
)
|
|
19
|
-
async def get_current_user_allowed_viewer_paths(
|
|
20
|
-
include_shared_projects: bool = True,
|
|
21
|
-
current_user: UserOAuth = Depends(current_user_act_ver),
|
|
22
|
-
db: AsyncSession = Depends(get_async_db),
|
|
23
|
-
) -> list[str]:
|
|
24
|
-
"""
|
|
25
|
-
Returns the allowed viewer paths for current user.
|
|
26
|
-
"""
|
|
27
|
-
authorized_paths = current_user.project_dirs.copy()
|
|
28
|
-
|
|
29
|
-
if include_shared_projects:
|
|
30
|
-
res = await db.execute(
|
|
31
|
-
select(DatasetV2.zarr_dir)
|
|
32
|
-
.join(ProjectV2, ProjectV2.id == DatasetV2.project_id)
|
|
33
|
-
.join(
|
|
34
|
-
LinkUserProjectV2, LinkUserProjectV2.project_id == ProjectV2.id
|
|
35
|
-
)
|
|
36
|
-
.where(LinkUserProjectV2.user_id == current_user.id)
|
|
37
|
-
.where(LinkUserProjectV2.is_verified.is_(True))
|
|
38
|
-
)
|
|
39
|
-
authorized_paths.extend(res.unique().scalars().all())
|
|
40
|
-
# Note that `project_dirs` and the `db.execute` result may have some
|
|
41
|
-
# common elements, and then this list may have non-unique items.
|
|
42
|
-
|
|
43
|
-
return authorized_paths
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import sys
|
|
3
|
-
from os.path import normpath
|
|
4
|
-
|
|
5
|
-
from sqlalchemy.orm.attributes import flag_modified
|
|
6
|
-
from sqlmodel import select
|
|
7
|
-
|
|
8
|
-
from fractal_server.app.db import get_sync_db
|
|
9
|
-
from fractal_server.app.models import UserOAuth
|
|
10
|
-
|
|
11
|
-
logging.basicConfig(level=logging.INFO)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def fix_db():
|
|
15
|
-
logging.info("START - fix db")
|
|
16
|
-
|
|
17
|
-
with next(get_sync_db()) as db:
|
|
18
|
-
res = db.execute(select(UserOAuth).order_by(UserOAuth.email))
|
|
19
|
-
user_list = res.scalars().unique().all()
|
|
20
|
-
|
|
21
|
-
for user in user_list:
|
|
22
|
-
logging.info(f"Now handling user {user.email}.")
|
|
23
|
-
if user.project_dirs != []:
|
|
24
|
-
sys.exit(f"Non empty `project_dirs` for User[{user.id}]")
|
|
25
|
-
user.project_dirs.append(normpath(user.project_dir))
|
|
26
|
-
flag_modified(user, "project_dirs")
|
|
27
|
-
|
|
28
|
-
db.commit()
|
|
29
|
-
|
|
30
|
-
logging.info("END - fix db")
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"""User project_dirs and UserGroup viewer paths
|
|
2
|
-
|
|
3
|
-
Revision ID: 7910eed4cf97
|
|
4
|
-
Revises: bc0e8b3327a7
|
|
5
|
-
Create Date: 2025-11-27 16:02:51.824653
|
|
6
|
-
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
import sqlalchemy as sa
|
|
10
|
-
from alembic import op
|
|
11
|
-
from sqlalchemy.dialects import postgresql
|
|
12
|
-
|
|
13
|
-
# revision identifiers, used by Alembic.
|
|
14
|
-
revision = "7910eed4cf97"
|
|
15
|
-
down_revision = "bc0e8b3327a7"
|
|
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("user_oauth", schema=None) as batch_op:
|
|
23
|
-
batch_op.add_column(
|
|
24
|
-
sa.Column(
|
|
25
|
-
"project_dirs",
|
|
26
|
-
postgresql.ARRAY(sa.String()),
|
|
27
|
-
server_default="{}",
|
|
28
|
-
nullable=False,
|
|
29
|
-
)
|
|
30
|
-
)
|
|
31
|
-
batch_op.alter_column(
|
|
32
|
-
"project_dir", existing_type=sa.VARCHAR(), nullable=True
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
with op.batch_alter_table("usergroup", schema=None) as batch_op:
|
|
36
|
-
batch_op.drop_column("viewer_paths")
|
|
37
|
-
|
|
38
|
-
# ### end Alembic commands ###
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def downgrade() -> None:
|
|
42
|
-
# ### commands auto generated by Alembic - please adjust! ###
|
|
43
|
-
with op.batch_alter_table("usergroup", schema=None) as batch_op:
|
|
44
|
-
batch_op.add_column(
|
|
45
|
-
sa.Column(
|
|
46
|
-
"viewer_paths",
|
|
47
|
-
postgresql.JSONB(astext_type=sa.Text()),
|
|
48
|
-
server_default=sa.text("'[]'::json"),
|
|
49
|
-
autoincrement=False,
|
|
50
|
-
nullable=False,
|
|
51
|
-
)
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
with op.batch_alter_table("user_oauth", schema=None) as batch_op:
|
|
55
|
-
batch_op.alter_column(
|
|
56
|
-
"project_dir", existing_type=sa.VARCHAR(), nullable=False
|
|
57
|
-
)
|
|
58
|
-
batch_op.drop_column("project_dirs")
|
|
59
|
-
|
|
60
|
-
# ### end Alembic commands ###
|