fractal-server 2.3.6__tar.gz → 2.3.7__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 (200) hide show
  1. {fractal_server-2.3.6 → fractal_server-2.3.7}/PKG-INFO +1 -1
  2. fractal_server-2.3.7/fractal_server/__init__.py +1 -0
  3. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/ssh/_executor_wait_thread.py +5 -0
  4. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/ssh/executor.py +23 -0
  5. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/config.py +5 -0
  6. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/_venv_pip.py +7 -1
  7. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/background_operations_ssh.py +4 -0
  8. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/templates/_2_upgrade_pip.sh +1 -1
  9. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/templates/_4_pip_freeze.sh +1 -1
  10. {fractal_server-2.3.6 → fractal_server-2.3.7}/pyproject.toml +2 -2
  11. fractal_server-2.3.6/fractal_server/__init__.py +0 -1
  12. {fractal_server-2.3.6 → fractal_server-2.3.7}/LICENSE +0 -0
  13. {fractal_server-2.3.6 → fractal_server-2.3.7}/README.md +0 -0
  14. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/__main__.py +0 -0
  15. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/alembic.ini +0 -0
  16. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/__init__.py +0 -0
  17. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/db/__init__.py +0 -0
  18. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/__init__.py +0 -0
  19. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/linkuserproject.py +0 -0
  20. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/security.py +0 -0
  21. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/__init__.py +0 -0
  22. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/dataset.py +0 -0
  23. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/job.py +0 -0
  24. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/project.py +0 -0
  25. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/state.py +0 -0
  26. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/task.py +0 -0
  27. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v1/workflow.py +0 -0
  28. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/__init__.py +0 -0
  29. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/collection_state.py +0 -0
  30. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/dataset.py +0 -0
  31. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/job.py +0 -0
  32. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/project.py +0 -0
  33. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/task.py +0 -0
  34. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/workflow.py +0 -0
  35. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/models/v2/workflowtask.py +0 -0
  36. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/__init__.py +0 -0
  37. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/admin/__init__.py +0 -0
  38. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/admin/v1.py +0 -0
  39. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/admin/v2.py +0 -0
  40. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/__init__.py +0 -0
  41. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/__init__.py +0 -0
  42. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
  43. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/dataset.py +0 -0
  44. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/job.py +0 -0
  45. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/project.py +0 -0
  46. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/task.py +0 -0
  47. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
  48. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/workflow.py +0 -0
  49. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
  50. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/__init__.py +0 -0
  51. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/_aux_functions.py +0 -0
  52. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/dataset.py +0 -0
  53. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/images.py +0 -0
  54. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/job.py +0 -0
  55. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/project.py +0 -0
  56. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/status.py +0 -0
  57. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/submit.py +0 -0
  58. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/task.py +0 -0
  59. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
  60. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/task_collection_custom.py +0 -0
  61. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/task_legacy.py +0 -0
  62. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/workflow.py +0 -0
  63. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/api/v2/workflowtask.py +0 -0
  64. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/auth.py +0 -0
  65. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/aux/__init__.py +0 -0
  66. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/aux/_job.py +0 -0
  67. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/routes/aux/_runner.py +0 -0
  68. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/.gitignore +0 -0
  69. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/__init__.py +0 -0
  70. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/async_wrap.py +0 -0
  71. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/components.py +0 -0
  72. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/compress_folder.py +0 -0
  73. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/exceptions.py +0 -0
  74. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/__init__.py +0 -0
  75. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
  76. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
  77. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/_slurm_config.py +0 -0
  78. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
  79. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/ssh/__init__.py +0 -0
  80. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/ssh/_slurm_job.py +0 -0
  81. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/sudo/__init__.py +0 -0
  82. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/sudo/_check_jobs_status.py +0 -0
  83. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/sudo/_executor_wait_thread.py +0 -0
  84. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/sudo/_subprocess_run_as_user.py +0 -0
  85. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/executors/slurm/sudo/executor.py +0 -0
  86. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/extract_archive.py +0 -0
  87. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/filenames.py +0 -0
  88. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/run_subprocess.py +0 -0
  89. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
  90. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/shutdown.py +0 -0
  91. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/task_files.py +0 -0
  92. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/__init__.py +0 -0
  93. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_common.py +0 -0
  94. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
  95. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
  96. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
  97. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_local/executor.py +0 -0
  98. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
  99. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
  100. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
  101. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/common.py +0 -0
  102. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
  103. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/__init__.py +0 -0
  104. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local/__init__.py +0 -0
  105. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
  106. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
  107. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local/executor.py +0 -0
  108. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local_experimental/__init__.py +0 -0
  109. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local_experimental/_local_config.py +0 -0
  110. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local_experimental/_submit_setup.py +0 -0
  111. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_local_experimental/executor.py +0 -0
  112. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_slurm_common/__init__.py +0 -0
  113. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_slurm_common/get_slurm_config.py +0 -0
  114. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py +0 -0
  115. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_slurm_ssh/_submit_setup.py +0 -0
  116. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py +0 -0
  117. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/_slurm_sudo/_submit_setup.py +0 -0
  118. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
  119. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
  120. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
  121. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/runner.py +0 -0
  122. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/runner_functions.py +0 -0
  123. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
  124. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/task_interface.py +0 -0
  125. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/v2/v1_compat.py +0 -0
  126. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/runner/versions.py +0 -0
  127. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/__init__.py +0 -0
  128. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/_validators.py +0 -0
  129. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/user.py +0 -0
  130. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/__init__.py +0 -0
  131. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
  132. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/dataset.py +0 -0
  133. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/dumps.py +0 -0
  134. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/manifest.py +0 -0
  135. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/project.py +0 -0
  136. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/state.py +0 -0
  137. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/task.py +0 -0
  138. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/task_collection.py +0 -0
  139. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v1/workflow.py +0 -0
  140. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/__init__.py +0 -0
  141. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/dataset.py +0 -0
  142. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/dumps.py +0 -0
  143. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/job.py +0 -0
  144. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/manifest.py +0 -0
  145. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/project.py +0 -0
  146. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/status.py +0 -0
  147. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/task.py +0 -0
  148. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/task_collection.py +0 -0
  149. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/workflow.py +0 -0
  150. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
  151. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/app/security/__init__.py +0 -0
  152. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/data_migrations/README.md +0 -0
  153. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/gunicorn_fractal.py +0 -0
  154. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/images/__init__.py +0 -0
  155. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/images/models.py +0 -0
  156. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/images/tools.py +0 -0
  157. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/logger.py +0 -0
  158. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/main.py +0 -0
  159. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/README +0 -0
  160. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/env.py +0 -0
  161. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/script.py.mako +0 -0
  162. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
  163. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
  164. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
  165. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
  166. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
  167. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
  168. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
  169. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
  170. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
  171. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
  172. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
  173. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
  174. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
  175. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
  176. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
  177. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
  178. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/py.typed +0 -0
  179. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/ssh/__init__.py +0 -0
  180. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/ssh/_fabric.py +0 -0
  181. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/string_tools.py +0 -0
  182. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/syringe.py +0 -0
  183. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/__init__.py +0 -0
  184. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/utils.py +0 -0
  185. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
  186. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v1/__init__.py +0 -0
  187. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v1/background_operations.py +0 -0
  188. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v1/endpoint_operations.py +0 -0
  189. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v1/get_collection_data.py +0 -0
  190. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v1/utils.py +0 -0
  191. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/_TaskCollectPip.py +0 -0
  192. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/__init__.py +0 -0
  193. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/background_operations.py +0 -0
  194. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/endpoint_operations.py +0 -0
  195. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/templates/_1_create_venv.sh +0 -0
  196. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/templates/_3_pip_install.sh +0 -0
  197. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/templates/_5_pip_show.sh +0 -0
  198. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/tasks/v2/utils.py +0 -0
  199. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/urls.py +0 -0
  200. {fractal_server-2.3.6 → fractal_server-2.3.7}/fractal_server/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fractal-server
3
- Version: 2.3.6
3
+ Version: 2.3.7
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.3.7"
@@ -7,6 +7,7 @@ from typing import Callable
7
7
  from cfut import FileWaitThread
8
8
 
9
9
  from ......logger import set_logger
10
+ from fractal_server.app.runner.exceptions import JobExecutionError
10
11
 
11
12
  logger = set_logger(__name__)
12
13
 
@@ -48,6 +49,10 @@ class FractalSlurmWaitThread(FileWaitThread):
48
49
 
49
50
  This method is executed on the main thread.
50
51
  """
52
+ if self.shutdown:
53
+ error_msg = "Cannot call `wait` method after executor shutdown."
54
+ logger.warning(error_msg)
55
+ raise JobExecutionError(info=error_msg)
51
56
  with self.lock:
52
57
  self.active_job_ids.append(job_id)
53
58
 
@@ -353,6 +353,12 @@ class FractalSlurmSSHExecutor(SlurmExecutor):
353
353
  Future representing the execution of the current SLURM job.
354
354
  """
355
355
 
356
+ # Do not continue if auxiliary thread was shut down
357
+ if self.wait_thread.shutdown:
358
+ error_msg = "Cannot call `submit` method after executor shutdown"
359
+ logger.warning(error_msg)
360
+ raise JobExecutionError(info=error_msg)
361
+
356
362
  # Set defaults, if needed
357
363
  if slurm_config is None:
358
364
  slurm_config = get_default_slurm_config()
@@ -436,6 +442,12 @@ class FractalSlurmSSHExecutor(SlurmExecutor):
436
442
 
437
443
  """
438
444
 
445
+ # Do not continue if auxiliary thread was shut down
446
+ if self.wait_thread.shutdown:
447
+ error_msg = "Cannot call `map` method after executor shutdown"
448
+ logger.warning(error_msg)
449
+ raise JobExecutionError(info=error_msg)
450
+
439
451
  def _result_or_cancel(fut):
440
452
  """
441
453
  This function is based on the Python Standard Library 3.11.
@@ -867,6 +879,14 @@ class FractalSlurmSSHExecutor(SlurmExecutor):
867
879
  job: The `SlurmJob` object to submit.
868
880
  """
869
881
 
882
+ # Prevent calling sbatch if auxiliary thread was shut down
883
+ if self.wait_thread.shutdown:
884
+ error_msg = (
885
+ "Cannot call `_submit_job` method after executor shutdown"
886
+ )
887
+ logger.warning(error_msg)
888
+ raise JobExecutionError(info=error_msg)
889
+
870
890
  # Submit job to SLURM, and get jobid
871
891
  sbatch_command = f"sbatch --parsable {job.slurm_script_remote}"
872
892
  pre_submission_cmds = job.slurm_config.pre_submission_commands
@@ -1336,6 +1356,9 @@ class FractalSlurmSSHExecutor(SlurmExecutor):
1336
1356
  the self.wait_thread thread, see _completion.
1337
1357
  """
1338
1358
 
1359
+ # Redudantly set thread shutdown attribute to True
1360
+ self.wait_thread.shutdown = True
1361
+
1339
1362
  logger.debug("Executor shutdown: start")
1340
1363
 
1341
1364
  # Handle all job futures
@@ -553,6 +553,11 @@ class Settings(BaseSettings):
553
553
  Whether to include the v1 API.
554
554
  """
555
555
 
556
+ FRACTAL_MAX_PIP_VERSION: str = "24.0"
557
+ """
558
+ Maximum value at which to update `pip` before performing task collection.
559
+ """
560
+
556
561
  ###########################################################################
557
562
  # BUSINESS LOGIC
558
563
  ###########################################################################
@@ -2,7 +2,9 @@ from pathlib import Path
2
2
  from typing import Optional
3
3
 
4
4
  from ..utils import COLLECTION_FREEZE_FILENAME
5
+ from fractal_server.config import get_settings
5
6
  from fractal_server.logger import get_logger
7
+ from fractal_server.syringe import Inject
6
8
  from fractal_server.tasks.v2._TaskCollectPip import _TaskCollectPip
7
9
  from fractal_server.tasks.v2.utils import get_python_interpreter_v2
8
10
  from fractal_server.utils import execute_command
@@ -24,6 +26,7 @@ async def _pip_install(
24
26
  Returns:
25
27
  The location of the package.
26
28
  """
29
+ settings = Inject(get_settings)
27
30
 
28
31
  logger = get_logger(logger_name)
29
32
 
@@ -41,7 +44,10 @@ async def _pip_install(
41
44
 
42
45
  await execute_command(
43
46
  cwd=venv_path,
44
- command=f"{pip} install --upgrade pip",
47
+ command=(
48
+ f"{pip} install --upgrade "
49
+ f"'pip<={settings.FRACTAL_MAX_PIP_VERSION}'"
50
+ ),
45
51
  logger_name=logger_name,
46
52
  )
47
53
  await execute_command(
@@ -174,6 +174,10 @@ def background_collect_pip_ssh(
174
174
  ("__PACKAGE__", task_pkg.package),
175
175
  ("__PYTHON__", python_bin),
176
176
  ("__INSTALL_STRING__", install_string),
177
+ (
178
+ "__FRACTAL_MAX_PIP_VERSION__",
179
+ settings.FRACTAL_MAX_PIP_VERSION,
180
+ ),
177
181
  ]
178
182
 
179
183
  common_args = dict(
@@ -14,7 +14,7 @@ VENVPYTHON=${PACKAGE_ENV_DIR}/bin/python
14
14
 
15
15
  # Upgrade pip
16
16
  write_log "START upgrade pip"
17
- "$VENVPYTHON" -m pip install pip --upgrade
17
+ "$VENVPYTHON" -m pip install "pip<=__FRACTAL_MAX_PIP_VERSION__" --upgrade
18
18
  write_log "END upgrade pip"
19
19
  echo
20
20
 
@@ -12,4 +12,4 @@ PACKAGE_ENV_DIR=__PACKAGE_ENV_DIR__
12
12
 
13
13
  VENVPYTHON=${PACKAGE_ENV_DIR}/bin/python
14
14
 
15
- "$VENVPYTHON" -m pip freeze
15
+ "$VENVPYTHON" -m pip freeze --all
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fractal-server"
3
- version = "2.3.6"
3
+ version = "2.3.7"
4
4
  description = "Server component of the Fractal analytics platform"
5
5
  authors = [
6
6
  "Tommaso Comparin <tommaso.comparin@exact-lab.it>",
@@ -91,7 +91,7 @@ filterwarnings = [
91
91
  ]
92
92
 
93
93
  [tool.bumpver]
94
- current_version = "2.3.6"
94
+ current_version = "2.3.7"
95
95
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
96
96
  commit_message = "bump version {old_version} -> {new_version}"
97
97
  commit = true
@@ -1 +0,0 @@
1
- __VERSION__ = "2.3.6"
File without changes
File without changes