fractal-server 2.0.2__tar.gz → 2.0.4__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 (170) hide show
  1. {fractal_server-2.0.2 → fractal_server-2.0.4}/PKG-INFO +2 -2
  2. {fractal_server-2.0.2 → fractal_server-2.0.4}/README.md +1 -1
  3. fractal_server-2.0.4/fractal_server/__init__.py +1 -0
  4. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/executor.py +5 -0
  5. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/config.py +6 -0
  6. fractal_server-2.0.4/fractal_server/data_migrations/2_0_3.py +79 -0
  7. {fractal_server-2.0.2 → fractal_server-2.0.4}/pyproject.toml +2 -2
  8. fractal_server-2.0.2/fractal_server/__init__.py +0 -1
  9. {fractal_server-2.0.2 → fractal_server-2.0.4}/LICENSE +0 -0
  10. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/__main__.py +0 -0
  11. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/alembic.ini +0 -0
  12. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/__init__.py +0 -0
  13. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/db/__init__.py +0 -0
  14. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/__init__.py +0 -0
  15. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/linkuserproject.py +0 -0
  16. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/security.py +0 -0
  17. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/__init__.py +0 -0
  18. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/dataset.py +0 -0
  19. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/job.py +0 -0
  20. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/project.py +0 -0
  21. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/state.py +0 -0
  22. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/task.py +0 -0
  23. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v1/workflow.py +0 -0
  24. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/__init__.py +0 -0
  25. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/collection_state.py +0 -0
  26. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/dataset.py +0 -0
  27. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/job.py +0 -0
  28. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/project.py +0 -0
  29. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/task.py +0 -0
  30. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/workflow.py +0 -0
  31. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/models/v2/workflowtask.py +0 -0
  32. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/__init__.py +0 -0
  33. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/admin/__init__.py +0 -0
  34. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/admin/v1.py +0 -0
  35. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/admin/v2.py +0 -0
  36. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/__init__.py +0 -0
  37. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/__init__.py +0 -0
  38. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
  39. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/dataset.py +0 -0
  40. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/job.py +0 -0
  41. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/project.py +0 -0
  42. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/task.py +0 -0
  43. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
  44. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/workflow.py +0 -0
  45. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
  46. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/__init__.py +0 -0
  47. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/_aux_functions.py +0 -0
  48. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/dataset.py +0 -0
  49. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/images.py +0 -0
  50. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/job.py +0 -0
  51. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/project.py +0 -0
  52. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/status.py +0 -0
  53. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/submit.py +0 -0
  54. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/task.py +0 -0
  55. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
  56. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/task_legacy.py +0 -0
  57. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/workflow.py +0 -0
  58. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/api/v2/workflowtask.py +0 -0
  59. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/auth.py +0 -0
  60. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/aux/__init__.py +0 -0
  61. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/aux/_job.py +0 -0
  62. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/routes/aux/_runner.py +0 -0
  63. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/.gitignore +0 -0
  64. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/__init__.py +0 -0
  65. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/async_wrap.py +0 -0
  66. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/components.py +0 -0
  67. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/exceptions.py +0 -0
  68. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/__init__.py +0 -0
  69. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
  70. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
  71. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/_check_jobs_status.py +0 -0
  72. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/_executor_wait_thread.py +0 -0
  73. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/_slurm_config.py +0 -0
  74. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/_subprocess_run_as_user.py +0 -0
  75. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
  76. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/filenames.py +0 -0
  77. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
  78. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/task_files.py +0 -0
  79. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/__init__.py +0 -0
  80. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_common.py +0 -0
  81. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
  82. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
  83. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
  84. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_local/executor.py +0 -0
  85. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
  86. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
  87. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
  88. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/common.py +0 -0
  89. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
  90. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/__init__.py +0 -0
  91. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_local/__init__.py +0 -0
  92. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
  93. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
  94. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_local/executor.py +0 -0
  95. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_slurm/__init__.py +0 -0
  96. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_slurm/_submit_setup.py +0 -0
  97. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/_slurm/get_slurm_config.py +0 -0
  98. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
  99. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
  100. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
  101. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/runner.py +0 -0
  102. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/runner_functions.py +0 -0
  103. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
  104. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/task_interface.py +0 -0
  105. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/runner/v2/v1_compat.py +0 -0
  106. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/__init__.py +0 -0
  107. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/_validators.py +0 -0
  108. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/state.py +0 -0
  109. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/user.py +0 -0
  110. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/__init__.py +0 -0
  111. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
  112. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/dataset.py +0 -0
  113. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/dumps.py +0 -0
  114. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/manifest.py +0 -0
  115. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/project.py +0 -0
  116. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/task.py +0 -0
  117. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/task_collection.py +0 -0
  118. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v1/workflow.py +0 -0
  119. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/__init__.py +0 -0
  120. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/dataset.py +0 -0
  121. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/dumps.py +0 -0
  122. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/job.py +0 -0
  123. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/manifest.py +0 -0
  124. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/project.py +0 -0
  125. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/status.py +0 -0
  126. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/task.py +0 -0
  127. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/task_collection.py +0 -0
  128. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/workflow.py +0 -0
  129. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
  130. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/app/security/__init__.py +0 -0
  131. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/data_migrations/README.md +0 -0
  132. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/images/__init__.py +0 -0
  133. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/images/models.py +0 -0
  134. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/images/tools.py +0 -0
  135. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/logger.py +0 -0
  136. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/main.py +0 -0
  137. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/README +0 -0
  138. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/env.py +0 -0
  139. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/script.py.mako +0 -0
  140. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
  141. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
  142. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
  143. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
  144. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
  145. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
  146. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
  147. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
  148. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
  149. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
  150. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
  151. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
  152. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
  153. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
  154. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
  155. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
  156. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/py.typed +0 -0
  157. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/syringe.py +0 -0
  158. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/__init__.py +0 -0
  159. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/endpoint_operations.py +0 -0
  160. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/utils.py +0 -0
  161. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
  162. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v1/__init__.py +0 -0
  163. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v1/background_operations.py +0 -0
  164. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v1/get_collection_data.py +0 -0
  165. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v2/_TaskCollectPip.py +0 -0
  166. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v2/__init__.py +0 -0
  167. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v2/background_operations.py +0 -0
  168. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/tasks/v2/get_collection_data.py +0 -0
  169. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/urls.py +0 -0
  170. {fractal_server-2.0.2 → fractal_server-2.0.4}/fractal_server/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fractal-server
3
- Version: 2.0.2
3
+ Version: 2.0.4
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
@@ -39,7 +39,7 @@ Description-Content-Type: text/markdown
39
39
  # Fractal Server
40
40
 
41
41
  [![PyPI version](https://img.shields.io/pypi/v/fractal-server?color=gree)](https://pypi.org/project/fractal-server/)
42
- [![CI Status](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml)
42
+ [![CI Status](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml?query=branch%3Amain)
43
43
  [![Coverage](https://raw.githubusercontent.com/fractal-analytics-platform/fractal-server/python-coverage-comment-action-data/badge.svg)](https://htmlpreview.github.io/?https://github.com/fractal-analytics-platform/fractal-server/blob/python-coverage-comment-action-data/htmlcov/index.html)
44
44
  [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
45
45
  [![Benchmarks](https://img.shields.io/badge/Benchmarks-Done-blue)](https://htmlpreview.github.io/?https://github.com/fractal-analytics-platform/fractal-server/blob/benchmark-api/benchmarks/bench.html)
@@ -1,7 +1,7 @@
1
1
  # Fractal Server
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/fractal-server?color=gree)](https://pypi.org/project/fractal-server/)
4
- [![CI Status](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml)
4
+ [![CI Status](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml?query=branch%3Amain)
5
5
  [![Coverage](https://raw.githubusercontent.com/fractal-analytics-platform/fractal-server/python-coverage-comment-action-data/badge.svg)](https://htmlpreview.github.io/?https://github.com/fractal-analytics-platform/fractal-server/blob/python-coverage-comment-action-data/htmlcov/index.html)
6
6
  [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
7
7
  [![Benchmarks](https://img.shields.io/badge/Benchmarks-Done-blue)](https://htmlpreview.github.io/?https://github.com/fractal-analytics-platform/fractal-server/blob/benchmark-api/benchmarks/bench.html)
@@ -0,0 +1 @@
1
+ __VERSION__ = "2.0.4"
@@ -489,6 +489,10 @@ class FractalSlurmExecutor(SlurmExecutor):
489
489
  if len(args_batches) != math.ceil(tot_tasks / tasks_per_job):
490
490
  raise RuntimeError("Something wrong here while batching tasks")
491
491
 
492
+ # Fetch configuration variable
493
+ settings = Inject(get_settings)
494
+ FRACTAL_SLURM_SBATCH_SLEEP = settings.FRACTAL_SLURM_SBATCH_SLEEP
495
+
492
496
  # Construct list of futures (one per SLURM job, i.e. one per batch)
493
497
  fs = []
494
498
  current_component_index = 0
@@ -508,6 +512,7 @@ class FractalSlurmExecutor(SlurmExecutor):
508
512
  )
509
513
  )
510
514
  current_component_index += batch_size
515
+ time.sleep(FRACTAL_SLURM_SBATCH_SLEEP)
511
516
 
512
517
  # Yield must be hidden in closure so that the futures are submitted
513
518
  # before the first iterator value is required.
@@ -331,6 +331,12 @@ class Settings(BaseSettings):
331
331
  [`clusterfutures`](https://github.com/sampsyo/clusterfutures/blob/master/cfut/__init__.py)).
332
332
  """
333
333
 
334
+ FRACTAL_SLURM_SBATCH_SLEEP: int = 0
335
+ """
336
+ Interval to wait (in seconds) between two subsequent `sbatch` calls, when
337
+ running a task that produces multiple SLURM jobs.
338
+ """
339
+
334
340
  FRACTAL_SLURM_ERROR_HANDLING_INTERVAL: int = 5
335
341
  """
336
342
  Interval to wait (in seconds) when the SLURM backend does not find an
@@ -0,0 +1,79 @@
1
+ import logging
2
+
3
+ from packaging.version import parse
4
+ from sqlalchemy import select
5
+ from sqlalchemy.orm.attributes import flag_modified
6
+
7
+ import fractal_server
8
+ from fractal_server.app.db import get_sync_db
9
+ from fractal_server.app.models.v1 import ApplyWorkflow
10
+ from fractal_server.app.models.v2 import JobV2
11
+ from fractal_server.app.schemas.v1 import ApplyWorkflowReadV1
12
+ from fractal_server.app.schemas.v2 import JobReadV2
13
+
14
+
15
+ def fix_db():
16
+ logger = logging.getLogger("fix_db")
17
+ logger.warning("START execution of fix_db function")
18
+
19
+ # Check that this module matches with the current version
20
+ module_version = parse("2.0.3")
21
+ current_version = parse(fractal_server.__VERSION__)
22
+ if (
23
+ current_version.major != module_version.major
24
+ or current_version.minor != module_version.minor
25
+ or current_version.micro != module_version.micro
26
+ ):
27
+ raise RuntimeError(
28
+ f"{fractal_server.__VERSION__=} not matching with {__file__=}"
29
+ )
30
+
31
+ with next(get_sync_db()) as db:
32
+
33
+ # V1 jobs
34
+ stm = select(ApplyWorkflow)
35
+ jobs_v1 = db.execute(stm).scalars().all()
36
+ for job_v1 in sorted(jobs_v1, key=lambda x: x.id):
37
+ for KEY in ["history"]:
38
+ logger.warning(
39
+ f"Now removing {KEY} from `input/output_dataset_dump`, "
40
+ f"for appplyworkflow.id={job_v1.id}."
41
+ )
42
+ if KEY in job_v1.input_dataset_dump.keys():
43
+ job_v1.input_dataset_dump.pop(KEY)
44
+ if KEY in job_v1.output_dataset_dump.keys():
45
+ job_v1.output_dataset_dump.pop(KEY)
46
+ flag_modified(job_v1, "input_dataset_dump")
47
+ flag_modified(job_v1, "output_dataset_dump")
48
+ db.add(job_v1)
49
+ db.commit()
50
+ db.refresh(job_v1)
51
+ db.expunge(job_v1)
52
+ logger.warning(
53
+ f"Now validating applyworkflow.id={job_v1.id} with "
54
+ "ApplyWorkflowReadV1."
55
+ )
56
+ ApplyWorkflowReadV1(**job_v1.model_dump())
57
+
58
+ # V2 jobs
59
+ stm = select(JobV2)
60
+ jobs_v2 = db.execute(stm).scalars().all()
61
+ for job_v2 in sorted(jobs_v2, key=lambda x: x.id):
62
+ for KEY in ["history", "images"]:
63
+ logger.warning(
64
+ f"Now removing {KEY} from `dataset_dump`, "
65
+ f"for jobv2.id={job_v2.id}."
66
+ )
67
+ if KEY in job_v2.dataset_dump.keys():
68
+ job_v2.dataset_dump.pop(KEY)
69
+ flag_modified(job_v2, "dataset_dump")
70
+ db.add(job_v2)
71
+ db.commit()
72
+ db.refresh(job_v2)
73
+ db.expunge(job_v2)
74
+ logger.warning(
75
+ f"Now validating jobv2.id={job_v2.id} with JobReadV2."
76
+ )
77
+ JobReadV2(**job_v2.model_dump())
78
+
79
+ logger.warning("END of execution of fix_db function")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fractal-server"
3
- version = "2.0.2"
3
+ version = "2.0.4"
4
4
  description = "Server component of the Fractal analytics platform"
5
5
  authors = [
6
6
  "Tommaso Comparin <tommaso.comparin@exact-lab.it>",
@@ -87,7 +87,7 @@ filterwarnings = [
87
87
  ]
88
88
 
89
89
  [tool.bumpver]
90
- current_version = "2.0.2"
90
+ current_version = "2.0.4"
91
91
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
92
92
  commit_message = "bump version {old_version} -> {new_version}"
93
93
  commit = true
@@ -1 +0,0 @@
1
- __VERSION__ = "2.0.2"
File without changes