fractal-server 2.16.5__py3-none-any.whl → 2.17.0__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 +178 -52
- fractal_server/app/db/__init__.py +9 -11
- fractal_server/app/models/security.py +30 -22
- fractal_server/app/models/user_settings.py +5 -4
- fractal_server/app/models/v2/__init__.py +4 -0
- fractal_server/app/models/v2/job.py +3 -4
- fractal_server/app/models/v2/profile.py +16 -0
- fractal_server/app/models/v2/project.py +5 -0
- fractal_server/app/models/v2/resource.py +130 -0
- fractal_server/app/models/v2/task_group.py +4 -0
- fractal_server/app/routes/admin/v2/__init__.py +4 -0
- fractal_server/app/routes/admin/v2/_aux_functions.py +55 -0
- fractal_server/app/routes/admin/v2/accounting.py +3 -3
- fractal_server/app/routes/admin/v2/impersonate.py +2 -2
- fractal_server/app/routes/admin/v2/job.py +51 -15
- fractal_server/app/routes/admin/v2/profile.py +100 -0
- fractal_server/app/routes/admin/v2/project.py +2 -2
- fractal_server/app/routes/admin/v2/resource.py +222 -0
- fractal_server/app/routes/admin/v2/task.py +59 -32
- fractal_server/app/routes/admin/v2/task_group.py +17 -12
- fractal_server/app/routes/admin/v2/task_group_lifecycle.py +52 -86
- fractal_server/app/routes/api/__init__.py +45 -8
- fractal_server/app/routes/api/v2/_aux_functions.py +17 -1
- fractal_server/app/routes/api/v2/_aux_functions_history.py +2 -2
- fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +3 -3
- fractal_server/app/routes/api/v2/_aux_functions_tasks.py +55 -19
- fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py +21 -17
- fractal_server/app/routes/api/v2/dataset.py +10 -19
- fractal_server/app/routes/api/v2/history.py +8 -8
- fractal_server/app/routes/api/v2/images.py +5 -5
- fractal_server/app/routes/api/v2/job.py +8 -8
- fractal_server/app/routes/api/v2/pre_submission_checks.py +3 -3
- fractal_server/app/routes/api/v2/project.py +15 -7
- fractal_server/app/routes/api/v2/status_legacy.py +2 -2
- fractal_server/app/routes/api/v2/submit.py +49 -42
- fractal_server/app/routes/api/v2/task.py +26 -8
- fractal_server/app/routes/api/v2/task_collection.py +39 -50
- fractal_server/app/routes/api/v2/task_collection_custom.py +10 -6
- fractal_server/app/routes/api/v2/task_collection_pixi.py +34 -42
- fractal_server/app/routes/api/v2/task_group.py +19 -9
- fractal_server/app/routes/api/v2/task_group_lifecycle.py +43 -86
- fractal_server/app/routes/api/v2/task_version_update.py +3 -3
- fractal_server/app/routes/api/v2/workflow.py +9 -9
- fractal_server/app/routes/api/v2/workflow_import.py +29 -16
- fractal_server/app/routes/api/v2/workflowtask.py +5 -5
- fractal_server/app/routes/auth/__init__.py +34 -5
- fractal_server/app/routes/auth/_aux_auth.py +39 -20
- fractal_server/app/routes/auth/current_user.py +56 -67
- fractal_server/app/routes/auth/group.py +29 -46
- fractal_server/app/routes/auth/oauth.py +55 -38
- fractal_server/app/routes/auth/register.py +2 -2
- fractal_server/app/routes/auth/router.py +4 -2
- fractal_server/app/routes/auth/users.py +29 -53
- fractal_server/app/routes/aux/_runner.py +2 -1
- fractal_server/app/routes/aux/validate_user_profile.py +62 -0
- fractal_server/app/schemas/__init__.py +0 -1
- fractal_server/app/schemas/user.py +43 -13
- fractal_server/app/schemas/user_group.py +2 -1
- fractal_server/app/schemas/v2/__init__.py +12 -0
- fractal_server/app/schemas/v2/profile.py +78 -0
- fractal_server/app/schemas/v2/resource.py +137 -0
- fractal_server/app/schemas/v2/task_collection.py +11 -3
- fractal_server/app/schemas/v2/task_group.py +5 -0
- fractal_server/app/security/__init__.py +174 -75
- fractal_server/app/security/signup_email.py +52 -34
- fractal_server/config/__init__.py +27 -0
- fractal_server/config/_data.py +68 -0
- fractal_server/config/_database.py +59 -0
- fractal_server/config/_email.py +133 -0
- fractal_server/config/_main.py +78 -0
- fractal_server/config/_oauth.py +69 -0
- fractal_server/config/_settings_config.py +7 -0
- fractal_server/data_migrations/2_17_0.py +339 -0
- fractal_server/images/tools.py +3 -3
- fractal_server/logger.py +3 -3
- fractal_server/main.py +17 -23
- fractal_server/migrations/naming_convention.py +1 -1
- fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py +195 -0
- fractal_server/runner/config/__init__.py +2 -0
- fractal_server/runner/config/_local.py +21 -0
- fractal_server/runner/config/_slurm.py +129 -0
- fractal_server/runner/config/slurm_mem_to_MB.py +63 -0
- fractal_server/runner/exceptions.py +4 -0
- fractal_server/runner/executors/base_runner.py +17 -7
- fractal_server/runner/executors/local/get_local_config.py +21 -86
- fractal_server/runner/executors/local/runner.py +48 -5
- fractal_server/runner/executors/slurm_common/_batching.py +2 -2
- fractal_server/runner/executors/slurm_common/base_slurm_runner.py +60 -26
- fractal_server/runner/executors/slurm_common/get_slurm_config.py +39 -55
- fractal_server/runner/executors/slurm_common/remote.py +1 -1
- fractal_server/runner/executors/slurm_common/slurm_config.py +214 -0
- fractal_server/runner/executors/slurm_common/slurm_job_task_models.py +1 -1
- fractal_server/runner/executors/slurm_ssh/runner.py +12 -14
- fractal_server/runner/executors/slurm_sudo/_subprocess_run_as_user.py +2 -2
- fractal_server/runner/executors/slurm_sudo/runner.py +12 -12
- fractal_server/runner/v2/_local.py +36 -21
- fractal_server/runner/v2/_slurm_ssh.py +41 -4
- fractal_server/runner/v2/_slurm_sudo.py +42 -12
- fractal_server/runner/v2/db_tools.py +1 -1
- fractal_server/runner/v2/runner.py +3 -11
- fractal_server/runner/v2/runner_functions.py +42 -28
- fractal_server/runner/v2/submit_workflow.py +88 -109
- fractal_server/runner/versions.py +8 -3
- fractal_server/ssh/_fabric.py +6 -6
- fractal_server/tasks/config/__init__.py +3 -0
- fractal_server/tasks/config/_pixi.py +127 -0
- fractal_server/tasks/config/_python.py +51 -0
- fractal_server/tasks/v2/local/_utils.py +7 -7
- fractal_server/tasks/v2/local/collect.py +13 -5
- fractal_server/tasks/v2/local/collect_pixi.py +26 -10
- fractal_server/tasks/v2/local/deactivate.py +7 -1
- fractal_server/tasks/v2/local/deactivate_pixi.py +5 -1
- fractal_server/tasks/v2/local/delete.py +5 -1
- fractal_server/tasks/v2/local/reactivate.py +13 -5
- fractal_server/tasks/v2/local/reactivate_pixi.py +27 -9
- fractal_server/tasks/v2/ssh/_pixi_slurm_ssh.py +11 -10
- fractal_server/tasks/v2/ssh/_utils.py +6 -7
- fractal_server/tasks/v2/ssh/collect.py +19 -12
- fractal_server/tasks/v2/ssh/collect_pixi.py +34 -16
- fractal_server/tasks/v2/ssh/deactivate.py +12 -8
- fractal_server/tasks/v2/ssh/deactivate_pixi.py +14 -10
- fractal_server/tasks/v2/ssh/delete.py +12 -9
- fractal_server/tasks/v2/ssh/reactivate.py +18 -12
- fractal_server/tasks/v2/ssh/reactivate_pixi.py +36 -17
- fractal_server/tasks/v2/templates/4_pip_show.sh +4 -6
- fractal_server/tasks/v2/utils_database.py +2 -2
- fractal_server/tasks/v2/utils_pixi.py +3 -0
- fractal_server/tasks/v2/utils_python_interpreter.py +8 -16
- fractal_server/tasks/v2/utils_templates.py +7 -10
- fractal_server/utils.py +1 -1
- {fractal_server-2.16.5.dist-info → fractal_server-2.17.0.dist-info}/METADATA +8 -10
- {fractal_server-2.16.5.dist-info → fractal_server-2.17.0.dist-info}/RECORD +137 -118
- {fractal_server-2.16.5.dist-info → fractal_server-2.17.0.dist-info}/WHEEL +1 -1
- fractal_server/app/routes/aux/validate_user_settings.py +0 -73
- fractal_server/app/schemas/user_settings.py +0 -67
- fractal_server/app/user_settings.py +0 -42
- fractal_server/config.py +0 -906
- fractal_server/data_migrations/2_14_10.py +0 -48
- fractal_server/runner/executors/slurm_common/_slurm_config.py +0 -471
- /fractal_server/{runner → app}/shutdown.py +0 -0
- {fractal_server-2.16.5.dist-info → fractal_server-2.17.0.dist-info}/entry_points.txt +0 -0
- {fractal_server-2.16.5.dist-info → fractal_server-2.17.0.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,96 +1,108 @@
|
|
|
1
|
-
fractal_server/__init__.py,sha256=
|
|
2
|
-
fractal_server/__main__.py,sha256=
|
|
1
|
+
fractal_server/__init__.py,sha256=NqK1nP_JCkl2n_IYTQ8Uyd9FCwgEK9mdQAxy3uDI0ow,23
|
|
2
|
+
fractal_server/__main__.py,sha256=qLbUicU1Ulaob_Eo5pspi-IH2xAkLfifJTH9gYEhZss,11427
|
|
3
3
|
fractal_server/alembic.ini,sha256=MWwi7GzjzawI9cCAK1LW7NxIBQDUqD12-ptJoq5JpP0,3153
|
|
4
4
|
fractal_server/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
fractal_server/app/db/__init__.py,sha256=
|
|
5
|
+
fractal_server/app/db/__init__.py,sha256=sttX0mHVV0ESI1SJ1kcxUKiuEwqeP-BWsst0o_9Yo44,2810
|
|
6
6
|
fractal_server/app/models/__init__.py,sha256=xJWiGAwpXmCpnFMC4c_HTqoUCzMOXrakoGLUH_uMvdA,415
|
|
7
7
|
fractal_server/app/models/linkusergroup.py,sha256=3KkkE4QIUAlTrBAZs_tVy0pGvAxUAq6yOEjflct_z2M,678
|
|
8
8
|
fractal_server/app/models/linkuserproject.py,sha256=hvaxh3Lkiy2uUCwB8gvn8RorCpvxSSdzWdCS_U1GL7g,315
|
|
9
|
-
fractal_server/app/models/security.py,sha256=
|
|
10
|
-
fractal_server/app/models/user_settings.py,sha256=
|
|
11
|
-
fractal_server/app/models/v2/__init__.py,sha256=
|
|
9
|
+
fractal_server/app/models/security.py,sha256=VThWDEmzUP4SgLsAvd5WjJ1p2WVxBuc6D5TMQJaOyd8,3873
|
|
10
|
+
fractal_server/app/models/user_settings.py,sha256=u0GOK1JdqDmXzA8hK2JV93rZxY_rF-0oKMkArRolnN8,1201
|
|
11
|
+
fractal_server/app/models/v2/__init__.py,sha256=A668GF4z_UPar6kAOwC-o_qUo3CIRJ3SmBGYTs3Xc7k,923
|
|
12
12
|
fractal_server/app/models/v2/accounting.py,sha256=i-2TsjqyuclxFQ21C-TeDoss7ZBTRuXdzIJfVr2UxwE,1081
|
|
13
13
|
fractal_server/app/models/v2/dataset.py,sha256=P_zy4dPQAqrCALQ6737VkAFk1SvcgYjnslGUZhPI8sc,1226
|
|
14
14
|
fractal_server/app/models/v2/history.py,sha256=CBN2WVg9vW5pHU1RP8TkB_nnJrwnuifCcxgnd53UtEE,2163
|
|
15
|
-
fractal_server/app/models/v2/job.py,sha256=
|
|
16
|
-
fractal_server/app/models/v2/
|
|
15
|
+
fractal_server/app/models/v2/job.py,sha256=YYzt3ef2CU1WXFNjlltR3ft2kM9T0Hq8oskSipQSxuM,2042
|
|
16
|
+
fractal_server/app/models/v2/profile.py,sha256=QqOE7XGeq-ckQAbGhcgzDN5zFFaTNrtcuWgOXy9psR8,440
|
|
17
|
+
fractal_server/app/models/v2/project.py,sha256=oXNcuNVDeNYZ60fwAx-Y_vnkS3xd9pwFdoT2pZmnBNI,918
|
|
18
|
+
fractal_server/app/models/v2/resource.py,sha256=ReaBGtKb3e0_1PZOZncdGqrttkrC-bsgDCv3wPCGfOs,3512
|
|
17
19
|
fractal_server/app/models/v2/task.py,sha256=iBIQB8POQE5MyKvLZhw7jZWlBhbrThzCDzRTcgiAczQ,1493
|
|
18
|
-
fractal_server/app/models/v2/task_group.py,sha256=
|
|
20
|
+
fractal_server/app/models/v2/task_group.py,sha256=gHkuyIBw8hkoMCwHgo08SWVMc8T1MXC5xqoW2YNd5Sw,4753
|
|
19
21
|
fractal_server/app/models/v2/workflow.py,sha256=gBjDXO-RytVT81aAlesImBhmVHrwNUrmsF_UsGa1qLM,1057
|
|
20
22
|
fractal_server/app/models/v2/workflowtask.py,sha256=qkTc-hcFLpJUVsEUbnDq2BJL0qg9jagy2doZeusF1ek,1266
|
|
21
23
|
fractal_server/app/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
24
|
fractal_server/app/routes/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
fractal_server/app/routes/admin/v2/__init__.py,sha256=
|
|
24
|
-
fractal_server/app/routes/admin/v2/
|
|
25
|
-
fractal_server/app/routes/admin/v2/
|
|
26
|
-
fractal_server/app/routes/admin/v2/
|
|
27
|
-
fractal_server/app/routes/admin/v2/
|
|
28
|
-
fractal_server/app/routes/admin/v2/
|
|
29
|
-
fractal_server/app/routes/admin/v2/
|
|
30
|
-
fractal_server/app/routes/admin/v2/
|
|
31
|
-
fractal_server/app/routes/
|
|
25
|
+
fractal_server/app/routes/admin/v2/__init__.py,sha256=SzLurEzKBRWHcIFh2mpac2wrGAWJwv9WW-Ry2DiNkZY,1161
|
|
26
|
+
fractal_server/app/routes/admin/v2/_aux_functions.py,sha256=fqA5sUCFuD2iVANQt2WUUfVOEVz5egQA7inzUKYGCw0,1684
|
|
27
|
+
fractal_server/app/routes/admin/v2/accounting.py,sha256=DjgMqzdrL8hYMn19cZj2pkwtLKl3QfBwxd473kH4KaI,3584
|
|
28
|
+
fractal_server/app/routes/admin/v2/impersonate.py,sha256=ictDjuvBr3iLv3YtwkVRMNQRq5qtPAeAXbbC7STSsEg,1125
|
|
29
|
+
fractal_server/app/routes/admin/v2/job.py,sha256=CRt_a6tULsuzN5ojcClzVH3vd7OXT06jK81Qro9fuBk,10171
|
|
30
|
+
fractal_server/app/routes/admin/v2/profile.py,sha256=0Y_1Qv-BA6cHVrxPTDDBOpttpfuJN8g1FqFlG6JiOD8,3164
|
|
31
|
+
fractal_server/app/routes/admin/v2/project.py,sha256=rRq7ZDngr_29skASnte1xfycZCjK-WPdeTf7siBXiCU,1182
|
|
32
|
+
fractal_server/app/routes/admin/v2/resource.py,sha256=UWimApUcL9HPu8NN0ccDbReuKly3aCqff2SA-Y1iEzs,6349
|
|
33
|
+
fractal_server/app/routes/admin/v2/task.py,sha256=tHWCPZRpfvu7k8sQA-634CUC7QbgdJa2RHiMXQL8a58,5599
|
|
34
|
+
fractal_server/app/routes/admin/v2/task_group.py,sha256=EDY9oliXq_xYVJ2HgRuE4-5MbL85j-y4LbWwupZxy38,6249
|
|
35
|
+
fractal_server/app/routes/admin/v2/task_group_lifecycle.py,sha256=W7LjIBAheyjrn0fEz0SsWINqcZK5HMB5GRGMjPrc6a4,9994
|
|
36
|
+
fractal_server/app/routes/api/__init__.py,sha256=ewprevw6hZ0FWM-GPHoQZU0w-yfItqLeQT-Jr_Nbjnw,1658
|
|
32
37
|
fractal_server/app/routes/api/v2/__init__.py,sha256=D3sRRsqkmZO6kBxUjg40q0aRDsnuXI4sOOfn0xF9JsM,2820
|
|
33
|
-
fractal_server/app/routes/api/v2/_aux_functions.py,sha256=
|
|
34
|
-
fractal_server/app/routes/api/v2/_aux_functions_history.py,sha256=
|
|
35
|
-
fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py,sha256=
|
|
38
|
+
fractal_server/app/routes/api/v2/_aux_functions.py,sha256=0OC5ydaX-XpscMRAsqiE03w2UVcd0xZ_vGs2PahDf1Y,14821
|
|
39
|
+
fractal_server/app/routes/api/v2/_aux_functions_history.py,sha256=PXsqMQ3sfkABqAMI7v1_VAzUEDF_-kvaZyyhEicqsCw,4431
|
|
40
|
+
fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py,sha256=5gNt35rYR8sHG2f1N8coQbOJacYIRJ5zUrmMEXcs2LQ,8585
|
|
36
41
|
fractal_server/app/routes/api/v2/_aux_functions_task_version_update.py,sha256=PKjV7r8YsPRXoNiVSnOK4KBYVV3l_Yb_ZPrqAkMkXrQ,1182
|
|
37
|
-
fractal_server/app/routes/api/v2/_aux_functions_tasks.py,sha256=
|
|
38
|
-
fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py,sha256=
|
|
39
|
-
fractal_server/app/routes/api/v2/dataset.py,sha256=
|
|
40
|
-
fractal_server/app/routes/api/v2/history.py,sha256=
|
|
41
|
-
fractal_server/app/routes/api/v2/images.py,sha256=
|
|
42
|
-
fractal_server/app/routes/api/v2/job.py,sha256=
|
|
43
|
-
fractal_server/app/routes/api/v2/pre_submission_checks.py,sha256=
|
|
44
|
-
fractal_server/app/routes/api/v2/project.py,sha256=
|
|
45
|
-
fractal_server/app/routes/api/v2/status_legacy.py,sha256=
|
|
46
|
-
fractal_server/app/routes/api/v2/submit.py,sha256=
|
|
47
|
-
fractal_server/app/routes/api/v2/task.py,sha256=
|
|
48
|
-
fractal_server/app/routes/api/v2/task_collection.py,sha256=
|
|
49
|
-
fractal_server/app/routes/api/v2/task_collection_custom.py,sha256
|
|
50
|
-
fractal_server/app/routes/api/v2/task_collection_pixi.py,sha256
|
|
51
|
-
fractal_server/app/routes/api/v2/task_group.py,sha256=
|
|
52
|
-
fractal_server/app/routes/api/v2/task_group_lifecycle.py,sha256=
|
|
53
|
-
fractal_server/app/routes/api/v2/task_version_update.py,sha256=
|
|
54
|
-
fractal_server/app/routes/api/v2/workflow.py,sha256=
|
|
55
|
-
fractal_server/app/routes/api/v2/workflow_import.py,sha256=
|
|
56
|
-
fractal_server/app/routes/api/v2/workflowtask.py,sha256
|
|
57
|
-
fractal_server/app/routes/auth/__init__.py,sha256=
|
|
58
|
-
fractal_server/app/routes/auth/_aux_auth.py,sha256=
|
|
59
|
-
fractal_server/app/routes/auth/current_user.py,sha256=
|
|
60
|
-
fractal_server/app/routes/auth/group.py,sha256=
|
|
42
|
+
fractal_server/app/routes/api/v2/_aux_functions_tasks.py,sha256=63CFMe1QZKRPmmU1xk1qZ_R6A1VANCxAlUBTGDrE0GI,13674
|
|
43
|
+
fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py,sha256=492tLRUWTxsAZuhkZUt9PmJtKNLIhkAqKAa-LDtwG_Y,4893
|
|
44
|
+
fractal_server/app/routes/api/v2/dataset.py,sha256=HhRrReo_isFJFMaUhQfxEQkLj0_lXNfGblzwpLG81VU,8623
|
|
45
|
+
fractal_server/app/routes/api/v2/history.py,sha256=T-7GDLZ_x4cp9PMEozJoEFt4cGFYPDqv9-akYmN2JSU,17150
|
|
46
|
+
fractal_server/app/routes/api/v2/images.py,sha256=_R-F1qrsFv3PPukrwXSa-5swNS4kNghY0DTrxjLC_7E,7897
|
|
47
|
+
fractal_server/app/routes/api/v2/job.py,sha256=fyIYGcplsxzx91FxYWlImp1ATPk5IC8bfIcJkuZOhws,6526
|
|
48
|
+
fractal_server/app/routes/api/v2/pre_submission_checks.py,sha256=DEnlFj6PMNMy9DrnH6_pMW9evdKl6iTlAb0zlzBR1Qs,4953
|
|
49
|
+
fractal_server/app/routes/api/v2/project.py,sha256=PkRR1lQayBvY8uEOMherXpvv_YwIMwxWzVMjC5nFfm4,4857
|
|
50
|
+
fractal_server/app/routes/api/v2/status_legacy.py,sha256=vZA4AYMehXbNFgekl4j6p8idETC3IylQQL64CmFCr98,6330
|
|
51
|
+
fractal_server/app/routes/api/v2/submit.py,sha256=o0r58Dc6A1BHOUPp2OK7PKEHc4dIqnp3-kXBWnX8KsY,9373
|
|
52
|
+
fractal_server/app/routes/api/v2/task.py,sha256=HIQRA7lAW41P89eveCGmUI2HERMakxOw5is-F-j-fco,7519
|
|
53
|
+
fractal_server/app/routes/api/v2/task_collection.py,sha256=wgY5-sry8Dg9IbLyzjxur8iqoe9ALs2zNK0bmNtO8Co,12226
|
|
54
|
+
fractal_server/app/routes/api/v2/task_collection_custom.py,sha256=WjByW-raK-HU1IR02JNc39XMjkRftXyUSHwHrgnZFBw,6924
|
|
55
|
+
fractal_server/app/routes/api/v2/task_collection_pixi.py,sha256=-HlgVzYxZb0Ysk6fkHbhkiVvVtQxmvli1kW03PTVaVo,7191
|
|
56
|
+
fractal_server/app/routes/api/v2/task_group.py,sha256=7eGVim9D6AE4synpxAYMijyHIC1HTSBojY08MiuqMBg,8349
|
|
57
|
+
fractal_server/app/routes/api/v2/task_group_lifecycle.py,sha256=ZSn8Ibjwkp89v87OPBquULPc9xsdpBfRvV1PiQdiicw,10593
|
|
58
|
+
fractal_server/app/routes/api/v2/task_version_update.py,sha256=JO5xggiRqay4zNlbjlRa26ygMEue2klSFPyLrXS215k,8254
|
|
59
|
+
fractal_server/app/routes/api/v2/workflow.py,sha256=szb6t9OWOjr0CwboF0fJUyO5jUPj_HRpf5N0CDuHkqc,10755
|
|
60
|
+
fractal_server/app/routes/api/v2/workflow_import.py,sha256=cEs1bt5urKIbaC8PjnUwYAaPK3kGqupXpUdgwEXM0Ss,9445
|
|
61
|
+
fractal_server/app/routes/api/v2/workflowtask.py,sha256=-V7WjTfYb2L7i3_dQ0Am_ydqepdqs-j3BY67_5iZPfU,7960
|
|
62
|
+
fractal_server/app/routes/auth/__init__.py,sha256=Y-RQMwY5V25ZVgyYYoFIXvEDQgm6PGTDgxH755oa_NM,2358
|
|
63
|
+
fractal_server/app/routes/auth/_aux_auth.py,sha256=10eQlLWCsuwmkGiZB3eSR9JhnU4db67wsWRxu8arKqc,5435
|
|
64
|
+
fractal_server/app/routes/auth/current_user.py,sha256=xYun8dn9Ie3mzTczq1BC7HfIjPpj3x8QOtJ1H6Yb_GM,5585
|
|
65
|
+
fractal_server/app/routes/auth/group.py,sha256=JfQKmmafgVfsPmuVcA4wGs5qKwq9Xx4f-m4uwIyY3-Y,7291
|
|
61
66
|
fractal_server/app/routes/auth/login.py,sha256=tSu6OBLOieoBtMZB4JkBAdEgH2Y8KqPGSbwy7NIypIo,566
|
|
62
|
-
fractal_server/app/routes/auth/oauth.py,sha256=
|
|
63
|
-
fractal_server/app/routes/auth/register.py,sha256=
|
|
64
|
-
fractal_server/app/routes/auth/router.py,sha256
|
|
65
|
-
fractal_server/app/routes/auth/users.py,sha256=
|
|
67
|
+
fractal_server/app/routes/auth/oauth.py,sha256=5BTEKb7Cb6ASVmgiPb5kVbHcBg0rF8Iqho0aJZd7PPQ,2730
|
|
68
|
+
fractal_server/app/routes/auth/register.py,sha256=Ola-lNdYYEOK8Wh0Q-TFKwIJ25e6UswlUojJ8QGBCfc,581
|
|
69
|
+
fractal_server/app/routes/auth/router.py,sha256=-E87A8h2UvcLucy5xjzKiWbXHVKcqxUmmZGeV_utEzA,598
|
|
70
|
+
fractal_server/app/routes/auth/users.py,sha256=xUvzH_hIwOOSU5QiJyJmU1NRZHkTcypjTgSbuTm8A5I,7060
|
|
66
71
|
fractal_server/app/routes/aux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
72
|
fractal_server/app/routes/aux/_job.py,sha256=nqqdcW5B7fL_PbvHf57_TcifjUfcMgl04tKNvG2sV1U,628
|
|
68
|
-
fractal_server/app/routes/aux/_runner.py,sha256=
|
|
69
|
-
fractal_server/app/routes/aux/
|
|
73
|
+
fractal_server/app/routes/aux/_runner.py,sha256=SDzI7glEfkW_XecWFuRQitbSWSvAPegI-J5c7i5d0_w,957
|
|
74
|
+
fractal_server/app/routes/aux/validate_user_profile.py,sha256=fGqJDdAFkbQoEIjqZ5F9-SDY_4os63R2EUMqODC7eBg,1969
|
|
70
75
|
fractal_server/app/routes/pagination.py,sha256=IGy8Ll5lYr6ENYE18h3huH5s0GMX1DCs5VdCi6j1cdk,1174
|
|
71
|
-
fractal_server/app/schemas/__init__.py,sha256=
|
|
72
|
-
fractal_server/app/schemas/user.py,sha256=
|
|
73
|
-
fractal_server/app/schemas/user_group.py,sha256=
|
|
74
|
-
fractal_server/app/schemas/
|
|
75
|
-
fractal_server/app/schemas/v2/__init__.py,sha256=GqV6kJ0nKDq2vsSA4uph-nb5pmuaq013LUCcm9LbpLE,3097
|
|
76
|
+
fractal_server/app/schemas/__init__.py,sha256=VIWJCaqokte3OljDLX00o-EC2d12rFoPb5HOLKQI94Y,86
|
|
77
|
+
fractal_server/app/schemas/user.py,sha256=MGggiWGqQV97426IzoaKNIkqHUMEuadW7BbJgom6tB8,2898
|
|
78
|
+
fractal_server/app/schemas/user_group.py,sha256=uTTOVGoy89SxVDpJumjqOEWxqXWR41MNOTBDCyNxEDA,1478
|
|
79
|
+
fractal_server/app/schemas/v2/__init__.py,sha256=XQex5ojpELgO0xvq2l-Y8oV85ZgM3GBj6lrGGctPb1g,3729
|
|
76
80
|
fractal_server/app/schemas/v2/accounting.py,sha256=C_ekrYQwhi7PtrxxB07oVAG2y1NLigXjYwyp4E38fao,396
|
|
77
81
|
fractal_server/app/schemas/v2/dataset.py,sha256=NKCjBwGBC7mPiSlXktZAcleJsvlLY6KfNKw7Wx4Zfqk,1728
|
|
78
82
|
fractal_server/app/schemas/v2/dumps.py,sha256=LCYiNF_FNYiA6HYp5GyFao3IKRX0RpzgNpiX56IwgCE,2293
|
|
79
83
|
fractal_server/app/schemas/v2/history.py,sha256=pZiMKfh6nMWbTp5MUtrnGySPKbeRFf5tM1VLFaTgGcw,1784
|
|
80
84
|
fractal_server/app/schemas/v2/job.py,sha256=BuiNzAX2Kl-b7LJnAiqCGDC9h6bGEjKvsHQIgf5mjHQ,3330
|
|
81
85
|
fractal_server/app/schemas/v2/manifest.py,sha256=QUpXMDB8WkB1F4UK-yYmm3O8bXoHwDGURnqwn6ayO_I,6674
|
|
86
|
+
fractal_server/app/schemas/v2/profile.py,sha256=tqjG3kgoBsNl0It0icZQ0mIab2POmV_K8fsL21-WR8U,2082
|
|
82
87
|
fractal_server/app/schemas/v2/project.py,sha256=7UC0aZLgtmkaAiPykeUj-9OZXhMkoyi3V-475UW_EQs,654
|
|
88
|
+
fractal_server/app/schemas/v2/resource.py,sha256=4iXzZJeHVLcXYY08-okoJM_4gqpzhG4KglRPBm24Jwc,3718
|
|
83
89
|
fractal_server/app/schemas/v2/status_legacy.py,sha256=eQT1zGxbkzSwd0EqclsOdZ60n1x6J3DB1CZ3m4LYyxc,955
|
|
84
90
|
fractal_server/app/schemas/v2/task.py,sha256=IJv8loB4kx9FBkaIHoiMsswQyq02FxvyAnHK1u074fU,4364
|
|
85
|
-
fractal_server/app/schemas/v2/task_collection.py,sha256=
|
|
86
|
-
fractal_server/app/schemas/v2/task_group.py,sha256=
|
|
91
|
+
fractal_server/app/schemas/v2/task_collection.py,sha256=S4fBQ3cbL4YmyL6ZTZYDbIBm6o8D-v5CuYQy4ng3nWU,4581
|
|
92
|
+
fractal_server/app/schemas/v2/task_group.py,sha256=4hNZUXnWYSozpLXR3JqBvGzfZBG2TbjqydckHHu2Aq0,3506
|
|
87
93
|
fractal_server/app/schemas/v2/workflow.py,sha256=L-dW6SzCH_VNoH6ENip44lTgGGqVYHHBk_3PtM-Ooy8,1772
|
|
88
94
|
fractal_server/app/schemas/v2/workflowtask.py,sha256=6eweAMyziwaoMT-7R1fVJYunIeZKzT0-7fAVgPO_FEc,3639
|
|
89
|
-
fractal_server/app/security/__init__.py,sha256=
|
|
90
|
-
fractal_server/app/security/signup_email.py,sha256=
|
|
91
|
-
fractal_server/app/
|
|
92
|
-
fractal_server/config.py,sha256=
|
|
93
|
-
fractal_server/
|
|
95
|
+
fractal_server/app/security/__init__.py,sha256=k-La8Da89C1hSUGsiidrWo6Az4u6dbe5PzN1Ctt1t34,18394
|
|
96
|
+
fractal_server/app/security/signup_email.py,sha256=kphjq6TAygvPpYpg95QJWefyqmzdVrGz7fyRMctUJWE,1982
|
|
97
|
+
fractal_server/app/shutdown.py,sha256=ViSNJyXWU_iWPSDOOMGNh_iQdUFrdPh_jvf8vVKLpAo,1950
|
|
98
|
+
fractal_server/config/__init__.py,sha256=ZCmroNB50sUxJiFtkW0a4fFtmfyPnL4LWhtKY5FbQfg,737
|
|
99
|
+
fractal_server/config/_data.py,sha256=9Jyt83yrSsr_0_9ANWDAXz88_jjyFlcB5VWJGXq8aUY,2311
|
|
100
|
+
fractal_server/config/_database.py,sha256=k1z__MrslQjmel34yFvge0sroPUs1vBtT_OSlPY8pN8,1690
|
|
101
|
+
fractal_server/config/_email.py,sha256=j1QmZCyspNbD1xxkypc9Kv299tU3vTO1AqDFJ8-LZzQ,4201
|
|
102
|
+
fractal_server/config/_main.py,sha256=9v64gJsvY1oGP70_AoJMnyMIeRo7FcIg6T8NDV-p9as,1992
|
|
103
|
+
fractal_server/config/_oauth.py,sha256=7J4FphGVFfVmtQycCkas6scEJQJGZUGEzQ-t2PZiqSo,1934
|
|
104
|
+
fractal_server/config/_settings_config.py,sha256=tsyXQOnn9QKCFJD6hRo_dJXlQQyl70DbqgHMJoZ1xnY,144
|
|
105
|
+
fractal_server/data_migrations/2_17_0.py,sha256=DGxrQ5JSiJW5tzpfydCjYKjX7FsiF3y_k34b0mo_RaY,11757
|
|
94
106
|
fractal_server/data_migrations/README.md,sha256=_3AEFvDg9YkybDqCLlFPdDmGJvr6Tw7HRI14aZ3LOIw,398
|
|
95
107
|
fractal_server/data_migrations/tools.py,sha256=LeMeASwYGtEqd-3wOLle6WARdTGAimoyMmRbbJl-hAM,572
|
|
96
108
|
fractal_server/exceptions.py,sha256=7ftpWwNsTQmNonWCynhH5ErUh1haPPhIaVPrNHla7-o,53
|
|
@@ -98,11 +110,11 @@ fractal_server/gunicorn_fractal.py,sha256=u6U01TLGlXgq1v8QmEpLih3QnsInZD7CqphgJ_
|
|
|
98
110
|
fractal_server/images/__init__.py,sha256=-_wjoKtSX02P1KjDxDP_EXKvmbONTRmbf7iGVTsyBpM,154
|
|
99
111
|
fractal_server/images/models.py,sha256=6WchcIzLLLwdkLNRfg71Dl4Y-9UFLPyrrzh1lWgjuP0,1245
|
|
100
112
|
fractal_server/images/status_tools.py,sha256=KICcThwHniHNkDftzJmK_n2gQK2IeTKlR_PFAesf204,4912
|
|
101
|
-
fractal_server/images/tools.py,sha256=
|
|
102
|
-
fractal_server/logger.py,sha256=
|
|
103
|
-
fractal_server/main.py,sha256=
|
|
113
|
+
fractal_server/images/tools.py,sha256=37jVIU6RiAGbiyucNDlKe9J3yN3Y47NOvv-RJor9Jm0,4154
|
|
114
|
+
fractal_server/logger.py,sha256=2_IN0WcIzLEX20HFUUkwyZGSIi0yLbE0JamkzXREDZw,5302
|
|
115
|
+
fractal_server/main.py,sha256=4HJO8EiGJp0Iw0p3xEm_zhwjnT4joFG1KuGccIIndjo,4419
|
|
104
116
|
fractal_server/migrations/env.py,sha256=nfyBpMIOT3kny6t-b-tUjyRjZ4k906bb1_wCQ7me1BI,1353
|
|
105
|
-
fractal_server/migrations/naming_convention.py,sha256=
|
|
117
|
+
fractal_server/migrations/naming_convention.py,sha256=bSEMiMZeArmWKrUk-12lhnOw1pAFMg6LEl7yucohPqc,263
|
|
106
118
|
fractal_server/migrations/versions/034a469ec2eb_task_groups.py,sha256=vrPhC8hfFu1c4HmLHNZyCuqEfecFD8-bWc49bXMNes0,6199
|
|
107
119
|
fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py,sha256=-BSS9AFTPcu3gYC-sYbawSy4MWQQx8TfMb5BW5EBKmQ,1450
|
|
108
120
|
fractal_server/migrations/versions/0f5f85bb2ae7_add_pre_pinned_packages.py,sha256=FxnIvfktnSjy2nBKDIow24on1nMkLw1THhO84FtNZSo,1055
|
|
@@ -119,6 +131,7 @@ fractal_server/migrations/versions/5bf02391cfef_v2.py,sha256=axhNkr_H6R4rRbY7oGY
|
|
|
119
131
|
fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py,sha256=Q-DsMzG3IcUV2Ol1dhJWosDvKERamBE6QvA2zzS5zpQ,1632
|
|
120
132
|
fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py,sha256=mbWuCkTpRAdGbRhW7lhXs_e5S6O37UAcCN6JfoY5H8A,1353
|
|
121
133
|
fractal_server/migrations/versions/791ce783d3d8_add_indices.py,sha256=gNE6AgJgeJZY99Fbd336Z9see3gRMQvuNBC0xDk_5sw,1154
|
|
134
|
+
fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py,sha256=U7t_8n58taRkd9sxCXOshrTr9M5AhlsQne8SGKa5Jt4,6377
|
|
122
135
|
fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py,sha256=NSCuhANChsg76vBkShBl-9tQ4VEHubOjtAv1etHhlvY,2684
|
|
123
136
|
fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py,sha256=68y9-fpSuKx6KPtM_9n8Ho0I1qwa8IoG-yJqXUYQrGg,1111
|
|
124
137
|
fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py,sha256=6pgODDtyAxevZvAJBj9IJ41inhV1RpwbpZr_qfPPu1A,1115
|
|
@@ -149,95 +162,101 @@ fractal_server/migrations/versions/fbce16ff4e47_new_history_items.py,sha256=TDWC
|
|
|
149
162
|
fractal_server/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
163
|
fractal_server/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
164
|
fractal_server/runner/components.py,sha256=-Ii5l8d_V6f5DFOd-Zsr8VYmOsyqw0Hox9fEFQiuqxY,66
|
|
152
|
-
fractal_server/runner/
|
|
165
|
+
fractal_server/runner/config/__init__.py,sha256=a-vSrvWBeMVnxTtYoy-f5Ibt_mM8MM3F7jqnPvvjHSY,108
|
|
166
|
+
fractal_server/runner/config/_local.py,sha256=_t3s56MAfg5jI8ZOiRSdbvCJLqvQK6kjyAzJ_Fh0KqY,603
|
|
167
|
+
fractal_server/runner/config/_slurm.py,sha256=g8zv-r2aP3vfkY-orKRGO6JbC6yxprR4yOwtpP3uKcg,3633
|
|
168
|
+
fractal_server/runner/config/slurm_mem_to_MB.py,sha256=twtBHIyY3SITe9q1uvH5rQx0QbY_AzexgYB9gaMkVok,2004
|
|
169
|
+
fractal_server/runner/exceptions.py,sha256=N8DLn7tuV8zMSdr8xdJN0aIdytPveSCeQ1Y5IoxXW-8,1778
|
|
153
170
|
fractal_server/runner/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
|
-
fractal_server/runner/executors/base_runner.py,sha256=
|
|
171
|
+
fractal_server/runner/executors/base_runner.py,sha256=Zd3sgXnxbyMdvuqUZd0rRRWng_wDlPUuQQLsfkXRLYw,6543
|
|
155
172
|
fractal_server/runner/executors/call_command_wrapper.py,sha256=n6c9haKyIudBlz9-d3GQb19rewBR54qLG8jlrma6okk,1415
|
|
156
173
|
fractal_server/runner/executors/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
157
|
-
fractal_server/runner/executors/local/get_local_config.py,sha256=
|
|
158
|
-
fractal_server/runner/executors/local/runner.py,sha256=
|
|
174
|
+
fractal_server/runner/executors/local/get_local_config.py,sha256=HdgDOT3G-wmyG6czH-VsPEQ_g9Rw2IDaGHMOyWDJt1c,1693
|
|
175
|
+
fractal_server/runner/executors/local/runner.py,sha256=cwQyPfSXyvLTigU4hfyQuCTps8QGMhBDN1L9uyhqk4c,12196
|
|
159
176
|
fractal_server/runner/executors/slurm_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
|
-
fractal_server/runner/executors/slurm_common/_batching.py,sha256=
|
|
177
|
+
fractal_server/runner/executors/slurm_common/_batching.py,sha256=la_FXt4ErYU63vkmk2SGZcSOqq-Jzp_L9tZfzBY7rlU,8806
|
|
161
178
|
fractal_server/runner/executors/slurm_common/_job_states.py,sha256=nuV-Zba38kDrRESOVB3gaGbrSPZc4q7YGichQaeqTW0,238
|
|
162
|
-
fractal_server/runner/executors/slurm_common/
|
|
163
|
-
fractal_server/runner/executors/slurm_common/
|
|
164
|
-
fractal_server/runner/executors/slurm_common/
|
|
165
|
-
fractal_server/runner/executors/slurm_common/
|
|
166
|
-
fractal_server/runner/executors/slurm_common/slurm_job_task_models.py,sha256=
|
|
179
|
+
fractal_server/runner/executors/slurm_common/base_slurm_runner.py,sha256=jnUuoHDwNu1UL0FWu61PjY8GLgK20PvVBpJRwRCKJP8,40969
|
|
180
|
+
fractal_server/runner/executors/slurm_common/get_slurm_config.py,sha256=kQQtc4o5Ya3gLMB6x9xuuyDX6jKpa0bSqkHeiAz7lTM,7071
|
|
181
|
+
fractal_server/runner/executors/slurm_common/remote.py,sha256=2ByWIHFKL1bW6CS04ijrJvX4jH8CpX2Pp-QhAncc-Hs,3806
|
|
182
|
+
fractal_server/runner/executors/slurm_common/slurm_config.py,sha256=hnZWxgXZsawubPNRHPXMHe1eD8cT44z1BTuKaYqPLTU,7895
|
|
183
|
+
fractal_server/runner/executors/slurm_common/slurm_job_task_models.py,sha256=wOVtACSFLulc0gUwXlj_SXJHIQmgHpseohw-SahT1DM,3517
|
|
167
184
|
fractal_server/runner/executors/slurm_ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
185
|
fractal_server/runner/executors/slurm_ssh/run_subprocess.py,sha256=SyW6t4egvbiARph2YkFjc88Hj94fCamZVi50L7ph8VM,996
|
|
169
|
-
fractal_server/runner/executors/slurm_ssh/runner.py,sha256=
|
|
186
|
+
fractal_server/runner/executors/slurm_ssh/runner.py,sha256=1ehjRxcbChvk9mZgqCUCQY69Xpn8JyYH-Db6cQ7Xrt4,10203
|
|
170
187
|
fractal_server/runner/executors/slurm_ssh/tar_commands.py,sha256=yqBjWTLmh_FzhCllt_KfbuCUGvRhsHLVWlPOZlRWLzY,1762
|
|
171
188
|
fractal_server/runner/executors/slurm_sudo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
|
-
fractal_server/runner/executors/slurm_sudo/_subprocess_run_as_user.py,sha256=
|
|
173
|
-
fractal_server/runner/executors/slurm_sudo/runner.py,sha256=
|
|
189
|
+
fractal_server/runner/executors/slurm_sudo/_subprocess_run_as_user.py,sha256=9pN0N409M24TXIyhuWJb-Tj0Ztaud68xtQ7wfAibmfk,2566
|
|
190
|
+
fractal_server/runner/executors/slurm_sudo/runner.py,sha256=a_9c29735U3xqiWGv8WsyBN8SX9SgkGTY1mepNUUh64,5916
|
|
174
191
|
fractal_server/runner/filenames.py,sha256=lPnxKHtdRizr6FqG3zOdjDPyWA7GoaJGTtiuJV0gA8E,70
|
|
175
192
|
fractal_server/runner/set_start_and_last_task_index.py,sha256=NsioSzfEpGyo9ZKrV5KsbxeI7d5V3tE678Y3IAo5rHM,1218
|
|
176
|
-
fractal_server/runner/shutdown.py,sha256=ViSNJyXWU_iWPSDOOMGNh_iQdUFrdPh_jvf8vVKLpAo,1950
|
|
177
193
|
fractal_server/runner/task_files.py,sha256=MvOrklZrN8iLj3oPx7G-iaEFj2N_mkTOnxIBX-okH1E,4037
|
|
178
194
|
fractal_server/runner/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
|
-
fractal_server/runner/v2/_local.py,sha256=
|
|
180
|
-
fractal_server/runner/v2/_slurm_ssh.py,sha256=
|
|
181
|
-
fractal_server/runner/v2/_slurm_sudo.py,sha256=
|
|
182
|
-
fractal_server/runner/v2/db_tools.py,sha256=
|
|
195
|
+
fractal_server/runner/v2/_local.py,sha256=js1W8_9QQad_kbvMM8ytjfWX_BEoq8OER9BLdxH0JRs,3759
|
|
196
|
+
fractal_server/runner/v2/_slurm_ssh.py,sha256=F7Zcs9NpmXDktTX_fQQke99Ov06Hi4XUUDsDKZwOmOI,4437
|
|
197
|
+
fractal_server/runner/v2/_slurm_sudo.py,sha256=f34B6KWtn1Wwm7Y-D95Ecub0vKpA03zYL7jZAF53tfI,4344
|
|
198
|
+
fractal_server/runner/v2/db_tools.py,sha256=kLB0sGYNuCMPPoP4XDSClPIf7x5lSseTKUjzGk6gAfc,3318
|
|
183
199
|
fractal_server/runner/v2/deduplicate_list.py,sha256=vidkd7K6u3w0A4zVgsGZkc9mwoP6ihTYJZQUhBNorfE,667
|
|
184
200
|
fractal_server/runner/v2/merge_outputs.py,sha256=0ahaSwdMFAoEhxVaEaO9nSJuKIcWg9pDZ356ktSHcC0,897
|
|
185
|
-
fractal_server/runner/v2/runner.py,sha256=
|
|
186
|
-
fractal_server/runner/v2/runner_functions.py,sha256=
|
|
187
|
-
fractal_server/runner/v2/submit_workflow.py,sha256=
|
|
201
|
+
fractal_server/runner/v2/runner.py,sha256=1vj6m_ir6RrYNr3Ew98h5hnEAms_TaHPhee52swQ_gA,19404
|
|
202
|
+
fractal_server/runner/v2/runner_functions.py,sha256=w_i74LCt_9f07w511wslTFhoDUtoE1R-IKcglEGWPIc,19618
|
|
203
|
+
fractal_server/runner/v2/submit_workflow.py,sha256=s3mo5pLZH5x8V01IZjoJXcbpCl9geZwvISEr5StSBeI,11458
|
|
188
204
|
fractal_server/runner/v2/task_interface.py,sha256=ftPPpOU16rbJD8q-QV7o_3ey8W7MQTFuWJiYUr4OmF4,2532
|
|
189
|
-
fractal_server/runner/versions.py,sha256=
|
|
205
|
+
fractal_server/runner/versions.py,sha256=uz59Dxj7BphnFnr-p0kyaZRH0h4w5Xkd0UJNVGtt4ds,474
|
|
190
206
|
fractal_server/ssh/__init__.py,sha256=sVUmzxf7_DuXG1xoLQ1_00fo5NPhi2LJipSmU5EAkPs,124
|
|
191
|
-
fractal_server/ssh/_fabric.py,sha256=
|
|
207
|
+
fractal_server/ssh/_fabric.py,sha256=Xv1SrdqwxLAWlZXjYG0-KlM0QHPe5NX6Gu0yAIrygik,26083
|
|
192
208
|
fractal_server/string_tools.py,sha256=UJFi8rhlI6QXxX5twycLjsvOQ6x4uG7L3JdxEVDhC5A,2592
|
|
193
209
|
fractal_server/syringe.py,sha256=3YJeIALH-wibuJ9R5VMNYUWh7x1-MkWT0SqGcWG5MY8,2795
|
|
194
210
|
fractal_server/tasks/__init__.py,sha256=kadmVUoIghl8s190_Tt-8f-WBqMi8u8oU4Pvw39NHE8,23
|
|
211
|
+
fractal_server/tasks/config/__init__.py,sha256=f1kARvKJPdM3b0HmJhIyMRxi8RCgPajUfS7RBhNfLKY,152
|
|
212
|
+
fractal_server/tasks/config/_pixi.py,sha256=KVf0xYAf6hAnOKSrTmg_GYJ5VaA19kEMAydRJNHjeiA,3773
|
|
213
|
+
fractal_server/tasks/config/_python.py,sha256=uEBm4Z9Ah-7A7pXBcSTBhFgefSuJPwN8WrWQHoNdp9M,1353
|
|
195
214
|
fractal_server/tasks/utils.py,sha256=V7dj8o2AnoHhGSTYlqJHcRFhCIpmOrMOUhtiE_DvRVA,291
|
|
196
215
|
fractal_server/tasks/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
197
216
|
fractal_server/tasks/v2/local/__init__.py,sha256=2dJqJIwn9UEANg8lPFprxVLk3ug-4xYIb5pvIsqPb5s,353
|
|
198
|
-
fractal_server/tasks/v2/local/_utils.py,sha256=
|
|
199
|
-
fractal_server/tasks/v2/local/collect.py,sha256=
|
|
200
|
-
fractal_server/tasks/v2/local/collect_pixi.py,sha256=
|
|
201
|
-
fractal_server/tasks/v2/local/deactivate.py,sha256=
|
|
202
|
-
fractal_server/tasks/v2/local/deactivate_pixi.py,sha256=
|
|
203
|
-
fractal_server/tasks/v2/local/delete.py,sha256=
|
|
204
|
-
fractal_server/tasks/v2/local/reactivate.py,sha256=
|
|
205
|
-
fractal_server/tasks/v2/local/reactivate_pixi.py,sha256=
|
|
217
|
+
fractal_server/tasks/v2/local/_utils.py,sha256=MXrvGOJ3oSlZFtoWFX3eJhtvabq1SmacPWNxlrL-Pu8,3469
|
|
218
|
+
fractal_server/tasks/v2/local/collect.py,sha256=2dvR90b57gCz8F_bmNoMLtnvlrW1ZLBzAjVzP4tjCKU,12162
|
|
219
|
+
fractal_server/tasks/v2/local/collect_pixi.py,sha256=BTWwu07LZQB0zTvCpHJkyEHgUl8XlF1qSN5NsOC5MVo,11489
|
|
220
|
+
fractal_server/tasks/v2/local/deactivate.py,sha256=cPJbB-zoHjmxL5goaNAUItkW0o_fg-YAd2YuXu_n8Rg,9925
|
|
221
|
+
fractal_server/tasks/v2/local/deactivate_pixi.py,sha256=h1XdAwihACywC9qak5K2tlfz4y32zZJOA-OEkIVy67U,3627
|
|
222
|
+
fractal_server/tasks/v2/local/delete.py,sha256=rmAjZ5i8x0jAIqOjG7eH9XFtUZkeo172S2WyZRFIVq0,2960
|
|
223
|
+
fractal_server/tasks/v2/local/reactivate.py,sha256=ZQTaqPquevpwdchUJIp59Lw01vErA3T2XN8g1jMBNAE,6013
|
|
224
|
+
fractal_server/tasks/v2/local/reactivate_pixi.py,sha256=R0D3bUwrAo3uyDNZRYsQ65NMl7-nhqd1GefBAh9Hk5c,8159
|
|
206
225
|
fractal_server/tasks/v2/ssh/__init__.py,sha256=dPK6BtEZVh1GiFP05j1RKTEnZvjJez8o2KkMC2hWXaw,339
|
|
207
|
-
fractal_server/tasks/v2/ssh/_pixi_slurm_ssh.py,sha256=
|
|
208
|
-
fractal_server/tasks/v2/ssh/_utils.py,sha256=
|
|
209
|
-
fractal_server/tasks/v2/ssh/collect.py,sha256=
|
|
210
|
-
fractal_server/tasks/v2/ssh/collect_pixi.py,sha256=
|
|
211
|
-
fractal_server/tasks/v2/ssh/deactivate.py,sha256=
|
|
212
|
-
fractal_server/tasks/v2/ssh/deactivate_pixi.py,sha256=
|
|
213
|
-
fractal_server/tasks/v2/ssh/delete.py,sha256=
|
|
214
|
-
fractal_server/tasks/v2/ssh/reactivate.py,sha256=
|
|
215
|
-
fractal_server/tasks/v2/ssh/reactivate_pixi.py,sha256=
|
|
226
|
+
fractal_server/tasks/v2/ssh/_pixi_slurm_ssh.py,sha256=3iixFaS5Uqhh28qAv_yBSW4YvffqIhE0LK0gQee9qjI,7448
|
|
227
|
+
fractal_server/tasks/v2/ssh/_utils.py,sha256=nqw_xn3C_cD7blGyP2ySjsMIuUzZHEHBjK0NeuXf6FI,6071
|
|
228
|
+
fractal_server/tasks/v2/ssh/collect.py,sha256=n3OT7EdA0BwtFpKfVFHabRZtdNUZQ8LaGWd_p3tqmfY,14568
|
|
229
|
+
fractal_server/tasks/v2/ssh/collect_pixi.py,sha256=BpcuyjJ_VReHIahtuuQNTXtaSSHnSjHqmUXDQmLCfTw,15871
|
|
230
|
+
fractal_server/tasks/v2/ssh/deactivate.py,sha256=VoXOyT5e-GVr593hDsDR7vJcIN_TIONSI4rkE2ZwxVo,12585
|
|
231
|
+
fractal_server/tasks/v2/ssh/deactivate_pixi.py,sha256=PCMygjFyqbBWbwnjplmmedANwzobzkbS5w28tRdpr4o,4863
|
|
232
|
+
fractal_server/tasks/v2/ssh/delete.py,sha256=f7j9RR0h0c1rUGeKjI-HhwIq6SGfhzE9kIqWcmrVbWA,4387
|
|
233
|
+
fractal_server/tasks/v2/ssh/reactivate.py,sha256=ScVwW5K7c0PKcb0YbK25pADAF_T5uw2yX32KafsL7Ow,8488
|
|
234
|
+
fractal_server/tasks/v2/ssh/reactivate_pixi.py,sha256=TAY_77QtUHcb5jz33PDbzgYundVSx_C4tJFTbVH_70A,11886
|
|
216
235
|
fractal_server/tasks/v2/templates/1_create_venv.sh,sha256=PK0jdHKtQpda1zULebBaVPORt4t6V17wa4N1ohcj5ac,548
|
|
217
236
|
fractal_server/tasks/v2/templates/2_pip_install.sh,sha256=vN9DX-eucJjB-XCuQuZmkuATGBzL4FlDQJTQdVewJG8,2155
|
|
218
237
|
fractal_server/tasks/v2/templates/3_pip_freeze.sh,sha256=JldREScEBI4cD_qjfX4UK7V4aI-FnX9ZvVNxgpSOBFc,168
|
|
219
|
-
fractal_server/tasks/v2/templates/4_pip_show.sh,sha256=
|
|
238
|
+
fractal_server/tasks/v2/templates/4_pip_show.sh,sha256=k6yO4cuTe4U6NpHdjpbjgOVNOC_WKpjZYM9CZCPVzhI,1684
|
|
220
239
|
fractal_server/tasks/v2/templates/5_get_venv_size_and_file_number.sh,sha256=q-6ZUvA6w6FDVEoSd9O63LaJ9tKZc7qAFH72SGPrd_k,284
|
|
221
240
|
fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh,sha256=jHoALPagSCD1_HuqrxEYibWAJNOUxQGm-A2oE3f_LPE,982
|
|
222
241
|
fractal_server/tasks/v2/templates/pixi_1_extract.sh,sha256=Jdy5OyKo2jxe_qIDB9Zi4a0FL0cMBysxvBPHlUrARQM,1099
|
|
223
242
|
fractal_server/tasks/v2/templates/pixi_2_install.sh,sha256=h6-M101Q1AdAfZNZyPfSUc8AlZ-uS84Hae4vJdDSglY,1601
|
|
224
243
|
fractal_server/tasks/v2/templates/pixi_3_post_install.sh,sha256=99J8KXkNeQk9utuEtUxfAZS6VCThC32X7I7HAp2gdTU,2501
|
|
225
244
|
fractal_server/tasks/v2/utils_background.py,sha256=jjWxNbHPuvAkXNIQ9Bqs67X72xHSRqmY8_BCoj0HM3E,4840
|
|
226
|
-
fractal_server/tasks/v2/utils_database.py,sha256=
|
|
245
|
+
fractal_server/tasks/v2/utils_database.py,sha256=C1td6m6ab1NdXVoT6stvVdrY_3FNck8OkRZZhn9h8ZA,1797
|
|
227
246
|
fractal_server/tasks/v2/utils_package_names.py,sha256=RDg__xrvQs4ieeVzmVdMcEh95vGQYrv9Hfal-5EDBM8,2393
|
|
228
|
-
fractal_server/tasks/v2/utils_pixi.py,sha256=
|
|
229
|
-
fractal_server/tasks/v2/utils_python_interpreter.py,sha256=
|
|
230
|
-
fractal_server/tasks/v2/utils_templates.py,sha256=
|
|
247
|
+
fractal_server/tasks/v2/utils_pixi.py,sha256=4q0inbOfJ-TWe7wFIq-f7W7-iKyd98tgNQpEkR-TE6E,3441
|
|
248
|
+
fractal_server/tasks/v2/utils_python_interpreter.py,sha256=36AvrMoydr9w6Rm_7hKl5QK8zYI0KIm4Pv8WHANWwjE,658
|
|
249
|
+
fractal_server/tasks/v2/utils_templates.py,sha256=L5GblhIKJwyzUbCORj1et5mh-7mG19nT5kmIpxOEj90,3489
|
|
231
250
|
fractal_server/types/__init__.py,sha256=aA_8J1xXzuiLqpwO_Qf18-qzaRcYkHzevhH_T-diXWM,2026
|
|
232
251
|
fractal_server/types/validators/__init__.py,sha256=5uj6KJ9MelFZgyoq3MzXLhgWCl0yiriS7XKmb0gathg,392
|
|
233
252
|
fractal_server/types/validators/_common_validators.py,sha256=MpxyaP2kwgbyCTOaVRjYnJ74Lfi0f2X0q3rjX9w3vTk,1170
|
|
234
253
|
fractal_server/types/validators/_filter_validators.py,sha256=irmjzycmiR6F4fmWUeA45Pdh7AeLufwVjNItskDsknk,831
|
|
235
254
|
fractal_server/types/validators/_workflow_task_arguments_validators.py,sha256=HL7NgV8d56XbcD6gG5PVFUPMHjDm5Q-d7cXhVLdFAGU,387
|
|
236
255
|
fractal_server/urls.py,sha256=QjIKAC1a46bCdiPMu3AlpgFbcv6a4l3ABcd5xz190Og,471
|
|
237
|
-
fractal_server/utils.py,sha256=
|
|
256
|
+
fractal_server/utils.py,sha256=SYVVUuXe_nWyrJLsy7QA-KJscwc5PHEXjvsW4TK7XQI,2180
|
|
238
257
|
fractal_server/zip_tools.py,sha256=H0w7wS5yE4ebj7hw1_77YQ959dl2c-L0WX6J_ro1TY4,4884
|
|
239
|
-
fractal_server-2.
|
|
240
|
-
fractal_server-2.
|
|
241
|
-
fractal_server-2.
|
|
242
|
-
fractal_server-2.
|
|
243
|
-
fractal_server-2.
|
|
258
|
+
fractal_server-2.17.0.dist-info/METADATA,sha256=R41Og9ExXXTidgDTZ3cHzGwQahiFMD2k6r1p0BYkHhE,4224
|
|
259
|
+
fractal_server-2.17.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
260
|
+
fractal_server-2.17.0.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
|
|
261
|
+
fractal_server-2.17.0.dist-info/licenses/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
|
|
262
|
+
fractal_server-2.17.0.dist-info/RECORD,,
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
from fastapi import HTTPException
|
|
2
|
-
from fastapi import status
|
|
3
|
-
from pydantic import ValidationError
|
|
4
|
-
|
|
5
|
-
from fractal_server.app.db import AsyncSession
|
|
6
|
-
from fractal_server.app.models import UserOAuth
|
|
7
|
-
from fractal_server.app.models import UserSettings
|
|
8
|
-
from fractal_server.app.user_settings import SlurmSshUserSettings
|
|
9
|
-
from fractal_server.app.user_settings import SlurmSudoUserSettings
|
|
10
|
-
from fractal_server.logger import set_logger
|
|
11
|
-
|
|
12
|
-
logger = set_logger(__name__)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def verify_user_has_settings(user: UserOAuth) -> None:
|
|
16
|
-
"""
|
|
17
|
-
Check that the `user.user_settings_id` foreign-key is set.
|
|
18
|
-
|
|
19
|
-
NOTE: This check will become useless when we make the foreign-key column
|
|
20
|
-
required, but for the moment (as of v2.6.0) we have to keep it in place.
|
|
21
|
-
|
|
22
|
-
Arguments:
|
|
23
|
-
user: The user to be checked.
|
|
24
|
-
"""
|
|
25
|
-
if user.user_settings_id is None:
|
|
26
|
-
raise HTTPException(
|
|
27
|
-
status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
|
|
28
|
-
detail=f"Error: user '{user.email}' has no settings.",
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
async def validate_user_settings(
|
|
33
|
-
*, user: UserOAuth, backend: str, db: AsyncSession
|
|
34
|
-
) -> UserSettings:
|
|
35
|
-
"""
|
|
36
|
-
Get a UserSettings object and validate it based on a given Fractal backend.
|
|
37
|
-
|
|
38
|
-
Arguments:
|
|
39
|
-
user: The user whose settings we should validate.
|
|
40
|
-
backend: The value of `FRACTAL_RUNNER_BACKEND`
|
|
41
|
-
db: An async DB session
|
|
42
|
-
|
|
43
|
-
Returns:
|
|
44
|
-
`UserSetting` object associated to `user`, if valid.
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
verify_user_has_settings(user)
|
|
48
|
-
|
|
49
|
-
user_settings = await db.get(UserSettings, user.user_settings_id)
|
|
50
|
-
|
|
51
|
-
if backend == "slurm_ssh":
|
|
52
|
-
UserSettingsValidationModel = SlurmSshUserSettings
|
|
53
|
-
elif backend == "slurm":
|
|
54
|
-
UserSettingsValidationModel = SlurmSudoUserSettings
|
|
55
|
-
else:
|
|
56
|
-
# For other backends, we don't validate anything
|
|
57
|
-
return user_settings
|
|
58
|
-
|
|
59
|
-
try:
|
|
60
|
-
UserSettingsValidationModel(**user_settings.model_dump())
|
|
61
|
-
except ValidationError as e:
|
|
62
|
-
error_msg = (
|
|
63
|
-
"User settings are not valid for "
|
|
64
|
-
f"FRACTAL_RUNNER_BACKEND='{backend}'. "
|
|
65
|
-
f"Original error: {str(e)}"
|
|
66
|
-
)
|
|
67
|
-
logger.warning(error_msg)
|
|
68
|
-
raise HTTPException(
|
|
69
|
-
status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
|
|
70
|
-
detail=error_msg,
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
return user_settings
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
from pydantic import BaseModel
|
|
2
|
-
from pydantic import ConfigDict
|
|
3
|
-
from pydantic import field_validator
|
|
4
|
-
|
|
5
|
-
from fractal_server.string_tools import validate_cmd
|
|
6
|
-
from fractal_server.types import AbsolutePathStr
|
|
7
|
-
from fractal_server.types import ListUniqueNonEmptyString
|
|
8
|
-
from fractal_server.types import NonEmptyStr
|
|
9
|
-
|
|
10
|
-
__all__ = (
|
|
11
|
-
"UserSettingsRead",
|
|
12
|
-
"UserSettingsReadStrict",
|
|
13
|
-
"UserSettingsUpdate",
|
|
14
|
-
"UserSettingsUpdateStrict",
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class UserSettingsRead(BaseModel):
|
|
19
|
-
"""
|
|
20
|
-
Schema reserved for superusers
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
id: int
|
|
24
|
-
ssh_host: str | None = None
|
|
25
|
-
ssh_username: str | None = None
|
|
26
|
-
ssh_private_key_path: str | None = None
|
|
27
|
-
ssh_tasks_dir: str | None = None
|
|
28
|
-
ssh_jobs_dir: str | None = None
|
|
29
|
-
slurm_user: str | None = None
|
|
30
|
-
slurm_accounts: list[str]
|
|
31
|
-
project_dir: str | None = None
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class UserSettingsReadStrict(BaseModel):
|
|
35
|
-
slurm_user: str | None = None
|
|
36
|
-
slurm_accounts: list[str]
|
|
37
|
-
ssh_username: str | None = None
|
|
38
|
-
project_dir: str | None = None
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class UserSettingsUpdate(BaseModel):
|
|
42
|
-
"""
|
|
43
|
-
Schema reserved for superusers
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
model_config = ConfigDict(extra="forbid")
|
|
47
|
-
|
|
48
|
-
ssh_host: NonEmptyStr | None = None
|
|
49
|
-
ssh_username: NonEmptyStr | None = None
|
|
50
|
-
ssh_private_key_path: AbsolutePathStr | None = None
|
|
51
|
-
ssh_tasks_dir: AbsolutePathStr | None = None
|
|
52
|
-
ssh_jobs_dir: AbsolutePathStr | None = None
|
|
53
|
-
slurm_user: NonEmptyStr | None = None
|
|
54
|
-
slurm_accounts: ListUniqueNonEmptyString | None = None
|
|
55
|
-
project_dir: AbsolutePathStr | None = None
|
|
56
|
-
|
|
57
|
-
@field_validator("project_dir", mode="after")
|
|
58
|
-
@classmethod
|
|
59
|
-
def validate_project_dir(cls, value):
|
|
60
|
-
if value is not None:
|
|
61
|
-
validate_cmd(value)
|
|
62
|
-
return value
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
class UserSettingsUpdateStrict(BaseModel):
|
|
66
|
-
model_config = ConfigDict(extra="forbid")
|
|
67
|
-
slurm_accounts: ListUniqueNonEmptyString | None = None
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# TODO: move this file to the appropriate path
|
|
2
|
-
from pydantic import BaseModel
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class SlurmSshUserSettings(BaseModel):
|
|
6
|
-
"""
|
|
7
|
-
Subset of user settings which must be present for task collection and job
|
|
8
|
-
execution when using the Slurm-SSH runner.
|
|
9
|
-
|
|
10
|
-
Attributes:
|
|
11
|
-
ssh_host: SSH-reachable host where a SLURM client is available.
|
|
12
|
-
ssh_username: User on `ssh_host`.
|
|
13
|
-
ssh_private_key_path: Path of private SSH key for `ssh_username`.
|
|
14
|
-
ssh_tasks_dir: Task-venvs base folder on `ssh_host`.
|
|
15
|
-
ssh_jobs_dir: Jobs base folder on `ssh_host`.
|
|
16
|
-
slurm_accounts:
|
|
17
|
-
List of SLURM accounts, to be used upon Fractal job submission.
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
ssh_host: str
|
|
21
|
-
ssh_username: str
|
|
22
|
-
ssh_private_key_path: str
|
|
23
|
-
ssh_tasks_dir: str
|
|
24
|
-
ssh_jobs_dir: str
|
|
25
|
-
slurm_accounts: list[str]
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class SlurmSudoUserSettings(BaseModel):
|
|
29
|
-
"""
|
|
30
|
-
Subset of user settings which must be present for task collection and job
|
|
31
|
-
execution when using the Slurm-sudo runner.
|
|
32
|
-
|
|
33
|
-
Attributes:
|
|
34
|
-
slurm_user: User to be impersonated via `sudo -u`.
|
|
35
|
-
project_dir: Folder where `slurm_user` can write.
|
|
36
|
-
slurm_accounts:
|
|
37
|
-
List of SLURM accounts, to be used upon Fractal job submission.
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
slurm_user: str
|
|
41
|
-
project_dir: str
|
|
42
|
-
slurm_accounts: list[str]
|