fractal-server 2.9.1__tar.gz → 2.9.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. {fractal_server-2.9.1 → fractal_server-2.9.2}/PKG-INFO +1 -1
  2. fractal_server-2.9.2/fractal_server/__init__.py +1 -0
  3. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/security.py +0 -1
  4. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/user_settings.py +1 -2
  5. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/project.py +7 -1
  6. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +2 -2
  7. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/submit.py +9 -5
  8. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/workflow_import.py +4 -7
  9. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/_slurm_config.py +2 -2
  10. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/ssh/executor.py +4 -3
  11. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_common.py +1 -2
  12. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local/__init__.py +0 -4
  13. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py +0 -6
  14. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py +1 -7
  15. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/user_settings.py +0 -18
  16. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/user_settings.py +2 -2
  17. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/config.py +1 -2
  18. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/logger.py +2 -4
  19. fractal_server-2.9.2/fractal_server/migrations/versions/316140ff7ee1_remove_usersettings_cache_dir.py +36 -0
  20. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/ssh/_fabric.py +9 -11
  21. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/ssh/_utils.py +1 -1
  22. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/utils_database.py +6 -3
  23. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/utils_python_interpreter.py +2 -2
  24. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/utils_templates.py +3 -3
  25. {fractal_server-2.9.1 → fractal_server-2.9.2}/pyproject.toml +2 -2
  26. fractal_server-2.9.1/fractal_server/__init__.py +0 -1
  27. {fractal_server-2.9.1 → fractal_server-2.9.2}/LICENSE +0 -0
  28. {fractal_server-2.9.1 → fractal_server-2.9.2}/README.md +0 -0
  29. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/__main__.py +0 -0
  30. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/alembic.ini +0 -0
  31. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/__init__.py +0 -0
  32. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/db/__init__.py +0 -0
  33. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/__init__.py +0 -0
  34. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/linkusergroup.py +0 -0
  35. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/linkuserproject.py +0 -0
  36. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/__init__.py +0 -0
  37. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/dataset.py +0 -0
  38. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/job.py +0 -0
  39. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/project.py +0 -0
  40. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/state.py +0 -0
  41. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/task.py +0 -0
  42. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v1/workflow.py +0 -0
  43. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/__init__.py +0 -0
  44. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/dataset.py +0 -0
  45. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/job.py +0 -0
  46. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/project.py +0 -0
  47. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/task.py +0 -0
  48. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/task_group.py +0 -0
  49. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/workflow.py +0 -0
  50. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/models/v2/workflowtask.py +0 -0
  51. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/__init__.py +0 -0
  52. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/__init__.py +0 -0
  53. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v1.py +0 -0
  54. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v2/__init__.py +0 -0
  55. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v2/job.py +0 -0
  56. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v2/project.py +0 -0
  57. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v2/task.py +0 -0
  58. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v2/task_group.py +0 -0
  59. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/admin/v2/task_group_lifecycle.py +0 -0
  60. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/__init__.py +0 -0
  61. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/__init__.py +0 -0
  62. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
  63. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/dataset.py +0 -0
  64. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/job.py +0 -0
  65. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/task.py +0 -0
  66. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
  67. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/workflow.py +0 -0
  68. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
  69. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/__init__.py +0 -0
  70. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/_aux_functions.py +0 -0
  71. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/_aux_functions_tasks.py +0 -0
  72. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/dataset.py +0 -0
  73. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/images.py +0 -0
  74. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/job.py +0 -0
  75. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/project.py +0 -0
  76. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/status.py +0 -0
  77. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/task.py +0 -0
  78. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
  79. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/task_collection_custom.py +0 -0
  80. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/task_group.py +0 -0
  81. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/task_group_lifecycle.py +0 -0
  82. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/workflow.py +0 -0
  83. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/api/v2/workflowtask.py +0 -0
  84. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/__init__.py +0 -0
  85. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/_aux_auth.py +0 -0
  86. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/current_user.py +0 -0
  87. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/group.py +0 -0
  88. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/login.py +0 -0
  89. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/oauth.py +0 -0
  90. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/register.py +0 -0
  91. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/router.py +0 -0
  92. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/auth/users.py +0 -0
  93. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/aux/__init__.py +0 -0
  94. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/aux/_job.py +0 -0
  95. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/aux/_runner.py +0 -0
  96. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/routes/aux/validate_user_settings.py +0 -0
  97. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/.gitignore +0 -0
  98. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/__init__.py +0 -0
  99. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/async_wrap.py +0 -0
  100. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/components.py +0 -0
  101. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/compress_folder.py +0 -0
  102. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/exceptions.py +0 -0
  103. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/__init__.py +0 -0
  104. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
  105. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
  106. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
  107. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/ssh/__init__.py +0 -0
  108. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/ssh/_executor_wait_thread.py +0 -0
  109. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/ssh/_slurm_job.py +0 -0
  110. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/sudo/__init__.py +0 -0
  111. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/sudo/_check_jobs_status.py +0 -0
  112. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/sudo/_executor_wait_thread.py +0 -0
  113. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/sudo/_subprocess_run_as_user.py +0 -0
  114. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/sudo/executor.py +0 -0
  115. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/executors/slurm/utils_executors.py +0 -0
  116. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/extract_archive.py +0 -0
  117. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/filenames.py +0 -0
  118. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/run_subprocess.py +0 -0
  119. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
  120. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/shutdown.py +0 -0
  121. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/task_files.py +0 -0
  122. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/__init__.py +0 -0
  123. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
  124. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
  125. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
  126. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_local/executor.py +0 -0
  127. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
  128. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
  129. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
  130. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/common.py +0 -0
  131. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
  132. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/__init__.py +0 -0
  133. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
  134. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
  135. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local/executor.py +0 -0
  136. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local_experimental/__init__.py +0 -0
  137. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local_experimental/_local_config.py +0 -0
  138. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local_experimental/_submit_setup.py +0 -0
  139. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_local_experimental/executor.py +0 -0
  140. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_slurm_common/__init__.py +0 -0
  141. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_slurm_common/get_slurm_config.py +0 -0
  142. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_slurm_ssh/_submit_setup.py +0 -0
  143. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/_slurm_sudo/_submit_setup.py +0 -0
  144. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
  145. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
  146. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
  147. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/runner.py +0 -0
  148. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/runner_functions.py +0 -0
  149. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
  150. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/v2/task_interface.py +0 -0
  151. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/runner/versions.py +0 -0
  152. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/__init__.py +0 -0
  153. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/_validators.py +0 -0
  154. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/user.py +0 -0
  155. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/user_group.py +0 -0
  156. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/__init__.py +0 -0
  157. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
  158. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/dataset.py +0 -0
  159. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/dumps.py +0 -0
  160. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/manifest.py +0 -0
  161. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/project.py +0 -0
  162. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/state.py +0 -0
  163. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/task.py +0 -0
  164. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/task_collection.py +0 -0
  165. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v1/workflow.py +0 -0
  166. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/__init__.py +0 -0
  167. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/dataset.py +0 -0
  168. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/dumps.py +0 -0
  169. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/job.py +0 -0
  170. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/manifest.py +0 -0
  171. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/project.py +0 -0
  172. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/status.py +0 -0
  173. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/task.py +0 -0
  174. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/task_collection.py +0 -0
  175. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/task_group.py +0 -0
  176. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/workflow.py +0 -0
  177. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
  178. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/app/security/__init__.py +0 -0
  179. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/data_migrations/README.md +0 -0
  180. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/data_migrations/tools.py +0 -0
  181. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/gunicorn_fractal.py +0 -0
  182. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/images/__init__.py +0 -0
  183. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/images/models.py +0 -0
  184. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/images/tools.py +0 -0
  185. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/main.py +0 -0
  186. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/README +0 -0
  187. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/env.py +0 -0
  188. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/naming_convention.py +0 -0
  189. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/script.py.mako +0 -0
  190. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/034a469ec2eb_task_groups.py +0 -0
  191. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py +0 -0
  192. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/19eca0dd47a9_user_settings_project_dir.py +0 -0
  193. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
  194. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
  195. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/501961cfcd85_remove_link_between_v1_and_v2_tasks_.py +0 -0
  196. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
  197. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
  198. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
  199. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
  200. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
  201. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py +0 -0
  202. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
  203. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py +0 -0
  204. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
  205. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
  206. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/9c5ae74c9b98_add_user_settings_table.py +0 -0
  207. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
  208. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
  209. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/d256a7379ab8_taskgroup_activity_and_venv_info_to_.py +0 -0
  210. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
  211. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/da2cb2ac4255_user_group_viewer_paths.py +0 -0
  212. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
  213. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
  214. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
  215. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/py.typed +0 -0
  216. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/ssh/__init__.py +0 -0
  217. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/string_tools.py +0 -0
  218. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/syringe.py +0 -0
  219. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/__init__.py +0 -0
  220. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/utils.py +0 -0
  221. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
  222. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v1/__init__.py +0 -0
  223. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v1/background_operations.py +0 -0
  224. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v1/endpoint_operations.py +0 -0
  225. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v1/get_collection_data.py +0 -0
  226. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v1/utils.py +0 -0
  227. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/__init__.py +0 -0
  228. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/local/__init__.py +0 -0
  229. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/local/_utils.py +0 -0
  230. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/local/collect.py +0 -0
  231. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/local/deactivate.py +0 -0
  232. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/local/reactivate.py +0 -0
  233. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/ssh/__init__.py +0 -0
  234. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/ssh/collect.py +0 -0
  235. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/ssh/deactivate.py +0 -0
  236. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/ssh/reactivate.py +0 -0
  237. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/templates/1_create_venv.sh +0 -0
  238. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/templates/2_pip_install.sh +0 -0
  239. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/templates/3_pip_freeze.sh +0 -0
  240. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/templates/4_pip_show.sh +0 -0
  241. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/templates/5_get_venv_size_and_file_number.sh +0 -0
  242. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh +0 -0
  243. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/utils_background.py +0 -0
  244. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/tasks/v2/utils_package_names.py +0 -0
  245. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/urls.py +0 -0
  246. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/utils.py +0 -0
  247. {fractal_server-2.9.1 → fractal_server-2.9.2}/fractal_server/zip_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fractal-server
3
- Version: 2.9.1
3
+ Version: 2.9.2
4
4
  Summary: Server component of the Fractal analytics platform
5
5
  Home-page: https://github.com/fractal-analytics-platform/fractal-server
6
6
  License: BSD-3-Clause
@@ -0,0 +1 @@
1
+ __VERSION__ = "2.9.2"
@@ -76,7 +76,6 @@ class UserOAuth(SQLModel, table=True):
76
76
  is_verified:
77
77
  slurm_user:
78
78
  slurm_accounts:
79
- cache_dir:
80
79
  username:
81
80
  oauth_accounts:
82
81
  """
@@ -20,7 +20,7 @@ class UserSettings(SQLModel, table=True):
20
20
  ssh_tasks_dir: Task-venvs base folder on `ssh_host`.
21
21
  ssh_jobs_dir: Jobs base folder on `ssh_host`.
22
22
  slurm_user: Local user, to be impersonated via `sudo -u`
23
- cache_dir: Folder where `slurm_user` can write.
23
+ project_dir: Folder where `slurm_user` can write.
24
24
  """
25
25
 
26
26
  __tablename__ = "user_settings"
@@ -35,5 +35,4 @@ class UserSettings(SQLModel, table=True):
35
35
  ssh_tasks_dir: Optional[str] = None
36
36
  ssh_jobs_dir: Optional[str] = None
37
37
  slurm_user: Optional[str] = None
38
- cache_dir: Optional[str] = None
39
38
  project_dir: Optional[str] = None
@@ -448,6 +448,12 @@ async def apply_workflow(
448
448
  await db.commit()
449
449
  await db.refresh(job)
450
450
 
451
+ cache_dir = (
452
+ f"{user_settings.project_dir}/.fractal_cache"
453
+ if user_settings.project_dir is not None
454
+ else None
455
+ )
456
+
451
457
  background_tasks.add_task(
452
458
  submit_workflow,
453
459
  workflow_id=workflow.id,
@@ -456,7 +462,7 @@ async def apply_workflow(
456
462
  job_id=job.id,
457
463
  worker_init=apply_workflow.worker_init,
458
464
  slurm_user=user_settings.slurm_user,
459
- user_cache_dir=user_settings.cache_dir,
465
+ user_cache_dir=cache_dir,
460
466
  )
461
467
  request.app.state.jobsV1.append(job.id)
462
468
  logger.info(
@@ -182,8 +182,8 @@ async def check_no_submitted_job(
182
182
  Find submitted jobs which include tasks from a given task group.
183
183
 
184
184
  Arguments:
185
- task_id_list: List of TaskV2 IDs
186
- db: Database session
185
+ task_group_id: ID of the `TaskGroupV2` object.
186
+ db: Asynchronous database session.
187
187
  """
188
188
  stm = (
189
189
  select(func.count(JobV2.id))
@@ -186,18 +186,22 @@ async def apply_workflow(
186
186
  f"_{timestamp_string}"
187
187
  )
188
188
 
189
+ cache_dir = (
190
+ Path(user_settings.project_dir) / ".fractal_cache"
191
+ if user_settings.project_dir is not None
192
+ else None
193
+ )
194
+
189
195
  # Define user-side job directory
190
196
  if FRACTAL_RUNNER_BACKEND == "local":
191
197
  WORKFLOW_DIR_REMOTE = WORKFLOW_DIR_LOCAL
192
198
  elif FRACTAL_RUNNER_BACKEND == "local_experimental":
193
199
  WORKFLOW_DIR_REMOTE = WORKFLOW_DIR_LOCAL
194
200
  elif FRACTAL_RUNNER_BACKEND == "slurm":
195
- WORKFLOW_DIR_REMOTE = (
196
- Path(user_settings.cache_dir) / f"{WORKFLOW_DIR_LOCAL.name}"
197
- )
201
+ WORKFLOW_DIR_REMOTE = cache_dir / WORKFLOW_DIR_LOCAL.name
198
202
  elif FRACTAL_RUNNER_BACKEND == "slurm_ssh":
199
203
  WORKFLOW_DIR_REMOTE = (
200
- Path(user_settings.ssh_jobs_dir) / f"{WORKFLOW_DIR_LOCAL.name}"
204
+ Path(user_settings.ssh_jobs_dir) / WORKFLOW_DIR_LOCAL.name
201
205
  )
202
206
 
203
207
  # Update job folders in the db
@@ -229,7 +233,7 @@ async def apply_workflow(
229
233
  user_settings=user_settings,
230
234
  worker_init=job.worker_init,
231
235
  slurm_user=user_settings.slurm_user,
232
- user_cache_dir=user_settings.cache_dir,
236
+ user_cache_dir=cache_dir.as_posix() if cache_dir else None,
233
237
  fractal_ssh=fractal_ssh,
234
238
  )
235
239
  request.app.state.jobsV2.append(job.id)
@@ -68,11 +68,8 @@ async def _get_task_by_source(
68
68
  Find task with a given source.
69
69
 
70
70
  Args:
71
- task_import: Info on task to be imported.
72
- user_id: ID of current user.
73
- default_group_id: ID of default user group.
74
- task_group_list: Current list of valid task groups.
75
- db: Asynchronous db session
71
+ source: `source` of the task to be imported.
72
+ task_groups_list: Current list of valid task groups.
76
73
 
77
74
  Return:
78
75
  `id` of the matching task, or `None`.
@@ -172,10 +169,10 @@ async def _get_task_by_taskimport(
172
169
 
173
170
  Args:
174
171
  task_import: Info on task to be imported.
172
+ task_groups_list: Current list of valid task groups.
175
173
  user_id: ID of current user.
176
174
  default_group_id: ID of default user group.
177
- task_group_list: Current list of valid task groups.
178
- db: Asynchronous db session
175
+ db: Asynchronous database session.
179
176
 
180
177
  Return:
181
178
  `id` of the matching task, or `None`.
@@ -327,7 +327,7 @@ class SlurmConfig(BaseModel, extra=Extra.forbid):
327
327
  script.
328
328
 
329
329
  Arguments:
330
- user_cache_dir:
330
+ remote_export_dir:
331
331
  Base directory for exports defined in
332
332
  `self.user_local_exports`.
333
333
  """
@@ -378,7 +378,7 @@ class SlurmConfig(BaseModel, extra=Extra.forbid):
378
378
  if self.user_local_exports:
379
379
  if remote_export_dir is None:
380
380
  raise ValueError(
381
- f"user_cache_dir=None but {self.user_local_exports=}"
381
+ f"remote_export_dir=None but {self.user_local_exports=}"
382
382
  )
383
383
  for key, value in self.user_local_exports.items():
384
384
  tmp_value = str(Path(remote_export_dir) / value)
@@ -917,7 +917,7 @@ class FractalSlurmSSHExecutor(SlurmExecutor):
917
917
  thread via `fut.set_exception(...)`.
918
918
 
919
919
  Arguments:
920
- jobid: ID of the SLURM job
920
+ job_ids: IDs of the SLURM jobs to handle.
921
921
  """
922
922
  # Handle all uncaught exceptions in this broad try/except block
923
923
  try:
@@ -1109,8 +1109,9 @@ class FractalSlurmSSHExecutor(SlurmExecutor):
1109
1109
  Fetch a remote folder via tar+sftp+tar
1110
1110
 
1111
1111
  Arguments:
1112
- job:
1113
- `SlurmJob` object (needed for its prefixes-related attributes).
1112
+ jobs:
1113
+ List of `SlurmJob` object (needed for their prefix-related
1114
+ attributes).
1114
1115
  """
1115
1116
 
1116
1117
  # Check that the subfolder is unique
@@ -524,8 +524,7 @@ def execute_tasks(
524
524
 
525
525
  **Note:** At the end of each task, write current metadata to
526
526
  `workflow_dir_local / METADATA_FILENAME`, so that they can be read as part
527
- of the [`get_job`
528
- endpoint](../../api/v1/job/#fractal_server.app.routes.api.v1.job.get_job).
527
+ of the `get_job` endpoint.
529
528
 
530
529
  Arguments:
531
530
  executor:
@@ -44,10 +44,6 @@ def _process_workflow(
44
44
  Internal processing routine
45
45
 
46
46
  Schedules the workflow using a `FractalThreadPoolExecutor`.
47
-
48
- Cf.
49
- [process_workflow][fractal_server.app.runner.v2._local.process_workflow]
50
- for the call signature.
51
47
  """
52
48
 
53
49
  with FractalThreadPoolExecutor() as executor:
@@ -55,9 +55,6 @@ def _process_workflow(
55
55
  workflow working dir and user to impersonate. It then schedules the
56
56
  workflow tasks and returns the new dataset attributes
57
57
 
58
- Cf.
59
- [process_workflow][fractal_server.app.runner.v2._local.process_workflow]
60
-
61
58
  Returns:
62
59
  new_dataset_attributes:
63
60
  """
@@ -115,9 +112,6 @@ async def process_workflow(
115
112
  ) -> dict:
116
113
  """
117
114
  Process workflow (SLURM backend public interface)
118
-
119
- Cf.
120
- [process_workflow][fractal_server.app.runner.v2._local.process_workflow]
121
115
  """
122
116
 
123
117
  # Set values of first_task_index and last_task_index
@@ -51,9 +51,6 @@ def _process_workflow(
51
51
  workflow working dir and user to impersonate. It then schedules the
52
52
  workflow tasks and returns the new dataset attributes
53
53
 
54
- Cf.
55
- [process_workflow][fractal_server.app.runner.v2._local.process_workflow]
56
-
57
54
  Returns:
58
55
  new_dataset_attributes:
59
56
  """
@@ -106,10 +103,7 @@ async def process_workflow(
106
103
  worker_init: Optional[str] = None,
107
104
  ) -> dict:
108
105
  """
109
- Process workflow (SLURM backend public interface)
110
-
111
- Cf.
112
- [process_workflow][fractal_server.app.runner.v2._local.process_workflow]
106
+ Process workflow (SLURM backend public interface).
113
107
  """
114
108
 
115
109
  # Set values of first_task_index and last_task_index
@@ -31,14 +31,12 @@ class UserSettingsRead(BaseModel):
31
31
  ssh_jobs_dir: Optional[str] = None
32
32
  slurm_user: Optional[str] = None
33
33
  slurm_accounts: list[str]
34
- cache_dir: Optional[str] = None
35
34
  project_dir: Optional[str] = None
36
35
 
37
36
 
38
37
  class UserSettingsReadStrict(BaseModel):
39
38
  slurm_user: Optional[str] = None
40
39
  slurm_accounts: list[str]
41
- cache_dir: Optional[str] = None
42
40
  ssh_username: Optional[str] = None
43
41
  project_dir: Optional[str] = None
44
42
 
@@ -55,7 +53,6 @@ class UserSettingsUpdate(BaseModel, extra=Extra.forbid):
55
53
  ssh_jobs_dir: Optional[str] = None
56
54
  slurm_user: Optional[str] = None
57
55
  slurm_accounts: Optional[list[StrictStr]] = None
58
- cache_dir: Optional[str] = None
59
56
  project_dir: Optional[str] = None
60
57
 
61
58
  _ssh_host = validator("ssh_host", allow_reuse=True)(
@@ -87,13 +84,6 @@ class UserSettingsUpdate(BaseModel, extra=Extra.forbid):
87
84
  value[i] = valstr(f"slurm_accounts[{i}]")(item)
88
85
  return val_unique_list("slurm_accounts")(value)
89
86
 
90
- @validator("cache_dir")
91
- def cache_dir_validator(cls, value):
92
- if value is None:
93
- return None
94
- validate_cmd(value)
95
- return val_absolute_path("cache_dir")(value)
96
-
97
87
  @validator("project_dir")
98
88
  def project_dir_validator(cls, value):
99
89
  if value is None:
@@ -104,15 +94,7 @@ class UserSettingsUpdate(BaseModel, extra=Extra.forbid):
104
94
 
105
95
  class UserSettingsUpdateStrict(BaseModel, extra=Extra.forbid):
106
96
  slurm_accounts: Optional[list[StrictStr]] = None
107
- cache_dir: Optional[str] = None
108
97
 
109
98
  _slurm_accounts = validator("slurm_accounts", allow_reuse=True)(
110
99
  val_unique_list("slurm_accounts")
111
100
  )
112
-
113
- @validator("cache_dir")
114
- def cache_dir_validator(cls, value):
115
- if value is None:
116
- return value
117
- validate_cmd(value)
118
- return val_absolute_path("cache_dir")(value)
@@ -32,11 +32,11 @@ class SlurmSudoUserSettings(BaseModel):
32
32
 
33
33
  Attributes:
34
34
  slurm_user: User to be impersonated via `sudo -u`.
35
- cache_dir: Folder where `slurm_user` can write.
35
+ project_dir: Folder where `slurm_user` can write.
36
36
  slurm_accounts:
37
37
  List of SLURM accounts, to be used upon Fractal job submission.
38
38
  """
39
39
 
40
40
  slurm_user: str
41
- cache_dir: str
41
+ project_dir: str
42
42
  slurm_accounts: list[str]
@@ -302,8 +302,7 @@ class Settings(BaseSettings):
302
302
  """
303
303
  Logging-level threshold for logging
304
304
 
305
- Only logs of with this level (or higher) will appear in the console logs;
306
- see details [here](../internals/logs/).
305
+ Only logs of with this level (or higher) will appear in the console logs.
307
306
  """
308
307
 
309
308
  FRACTAL_LOCAL_CONFIG_FILE: Optional[Path]
@@ -66,10 +66,8 @@ def set_logger(
66
66
 
67
67
  * The attribute `Logger.propagate` set to `False`;
68
68
  * One and only one `logging.StreamHandler` handler, with severity level set
69
- to
70
- [`FRACTAL_LOGGING_LEVEL`](../../../../configuration/#fractal_server.config.Settings.FRACTAL_LOGGING_LEVEL)
71
- and formatter set as in the `logger.LOG_FORMAT` variable from the current
72
- module;
69
+ to `FRACTAL_LOGGING_LEVEL` and formatter set as in the `logger.LOG_FORMAT`
70
+ variable from the current module;
73
71
  * One or many `logging.FileHandler` handlers, including one pointint to
74
72
  `log_file_path` (if set); all these handlers have severity level set to
75
73
  `logging.DEBUG`.
@@ -0,0 +1,36 @@
1
+ """Remove UserSettings.cache_dir
2
+
3
+ Revision ID: 316140ff7ee1
4
+ Revises: d256a7379ab8
5
+ Create Date: 2024-12-03 10:15:53.255958
6
+
7
+ """
8
+ import sqlalchemy as sa
9
+ from alembic import op
10
+
11
+
12
+ # revision identifiers, used by Alembic.
13
+ revision = "316140ff7ee1"
14
+ down_revision = "d256a7379ab8"
15
+ branch_labels = None
16
+ depends_on = None
17
+
18
+
19
+ def upgrade() -> None:
20
+ # ### commands auto generated by Alembic - please adjust! ###
21
+ with op.batch_alter_table("user_settings", schema=None) as batch_op:
22
+ batch_op.drop_column("cache_dir")
23
+
24
+ # ### end Alembic commands ###
25
+
26
+
27
+ def downgrade() -> None:
28
+ # ### commands auto generated by Alembic - please adjust! ###
29
+ with op.batch_alter_table("user_settings", schema=None) as batch_op:
30
+ batch_op.add_column(
31
+ sa.Column(
32
+ "cache_dir", sa.VARCHAR(), autoincrement=False, nullable=True
33
+ )
34
+ )
35
+
36
+ # ### end Alembic commands ###
@@ -366,10 +366,9 @@ class FractalSSH(object):
366
366
  Transfer a file via SSH
367
367
 
368
368
  Args:
369
- local: Local path to file
370
- remote: Target path on remote host
371
- fractal_ssh: FractalSSH connection object with custom lock
372
- logger_name: Name of the logger
369
+ local: Local path to file.
370
+ remote: Target path on remote host.
371
+ lock_timeout: Timeout for lock acquisition (overrides default).
373
372
  """
374
373
  try:
375
374
  self.logger.info(
@@ -407,10 +406,9 @@ class FractalSSH(object):
407
406
  Transfer a file via SSH
408
407
 
409
408
  Args:
410
- local: Local path to file
411
- remote: Target path on remote host
412
- logger_name: Name of the logger
413
- lock_timeout:
409
+ local: Local path to file.
410
+ remote: Target path on remote host.
411
+ lock_timeout: Timeout for lock acquisition (overrides default).
414
412
  """
415
413
  try:
416
414
  prefix = "[fetch_file] "
@@ -499,9 +497,9 @@ class FractalSSH(object):
499
497
  Open a remote file via SFTP and write it.
500
498
 
501
499
  Args:
502
- path: Absolute path
503
- contents: File contents
504
- lock_timeout:
500
+ path: Absolute path of remote file.
501
+ content: Contents to be written to file.
502
+ lock_timeout: Timeout for lock acquisition (overrides default).
505
503
  """
506
504
  self.logger.info(f"START writing to remote file {path}.")
507
505
  actual_lock_timeout = self.default_lock_timeout
@@ -24,7 +24,7 @@ def _customize_and_run_template(
24
24
  Args:
25
25
  template_filename: Filename of the template file (ends with ".sh").
26
26
  replacements: Dictionary of replacements.
27
- script_dir: Local folder where the script will be placed.
27
+ script_dir_local: Local folder where the script will be placed.
28
28
  prefix: Prefix for the script filename.
29
29
  fractal_ssh: FractalSSH object
30
30
  script_dir_remote: Remote scripts directory
@@ -24,9 +24,12 @@ def create_db_tasks_and_update_task_group(
24
24
  Create a `TaskGroupV2` with N `TaskV2`s, and insert them into the database.
25
25
 
26
26
  Arguments:
27
- task_group: ID of an existing TaskGroupV2 object.
28
- task_list: A list of TaskCreateV2 objects to be inserted into the db.
29
- db: A synchronous database session
27
+ task_group_id: ID of an existing `TaskGroupV2` object.
28
+ task_list: List of `TaskCreateV2` objects to be inserted into the db.
29
+ db: Synchronous database session
30
+
31
+ Returns:
32
+ Updated `TaskGroupV2` object.
30
33
  """
31
34
  actual_task_list = [
32
35
  TaskV2(
@@ -8,10 +8,10 @@ def get_python_interpreter_v2(
8
8
  python_version: Literal["3.9", "3.10", "3.11", "3.12"]
9
9
  ) -> str:
10
10
  """
11
- Return the path to the python interpreter
11
+ Return the path to the Python interpreter
12
12
 
13
13
  Args:
14
- version: Python version
14
+ python_version: Python version
15
15
 
16
16
  Raises:
17
17
  ValueError: If the python version requested is not available on the
@@ -19,9 +19,9 @@ def customize_template(
19
19
  Customize a bash-script template and write it to disk.
20
20
 
21
21
  Args:
22
- template_filename:
23
- templates_folder:
24
- replacements:
22
+ template_name: Name of the template that will be customized.
23
+ replacements: List of replacements for template customization.
24
+ script_path: Local path where the customized template will be written.
25
25
  """
26
26
  # Read template
27
27
  template_path = TEMPLATES_DIR / template_name
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fractal-server"
3
- version = "2.9.1"
3
+ version = "2.9.2"
4
4
  description = "Server component of the Fractal analytics platform"
5
5
  authors = [
6
6
  "Tommaso Comparin <tommaso.comparin@exact-lab.it>",
@@ -85,7 +85,7 @@ filterwarnings = [
85
85
  ]
86
86
 
87
87
  [tool.bumpver]
88
- current_version = "2.9.1"
88
+ current_version = "2.9.2"
89
89
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
90
90
  commit_message = "bump version {old_version} -> {new_version}"
91
91
  commit = true
@@ -1 +0,0 @@
1
- __VERSION__ = "2.9.1"
File without changes
File without changes