fractal-server 2.3.5__tar.gz → 2.3.6__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 (201) hide show
  1. {fractal_server-2.3.5 → fractal_server-2.3.6}/PKG-INFO +2 -2
  2. fractal_server-2.3.6/fractal_server/__init__.py +1 -0
  3. fractal_server-2.3.6/fractal_server/app/models/v2/task.py +41 -0
  4. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/_aux_functions.py +4 -6
  5. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/workflowtask.py +6 -23
  6. {fractal_server-2.3.5 → fractal_server-2.3.6}/pyproject.toml +3 -3
  7. fractal_server-2.3.5/fractal_server/__init__.py +0 -1
  8. fractal_server-2.3.5/fractal_server/app/models/v2/task.py +0 -93
  9. {fractal_server-2.3.5 → fractal_server-2.3.6}/LICENSE +0 -0
  10. {fractal_server-2.3.5 → fractal_server-2.3.6}/README.md +0 -0
  11. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/__main__.py +0 -0
  12. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/alembic.ini +0 -0
  13. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/__init__.py +0 -0
  14. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/db/__init__.py +0 -0
  15. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/__init__.py +0 -0
  16. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/linkuserproject.py +0 -0
  17. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/security.py +0 -0
  18. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/__init__.py +0 -0
  19. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/dataset.py +0 -0
  20. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/job.py +0 -0
  21. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/project.py +0 -0
  22. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/state.py +0 -0
  23. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/task.py +0 -0
  24. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/workflow.py +0 -0
  25. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/__init__.py +0 -0
  26. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/collection_state.py +0 -0
  27. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/dataset.py +0 -0
  28. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/job.py +0 -0
  29. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/project.py +0 -0
  30. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/workflow.py +0 -0
  31. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/workflowtask.py +0 -0
  32. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/__init__.py +0 -0
  33. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/admin/__init__.py +0 -0
  34. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/admin/v1.py +0 -0
  35. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/admin/v2.py +0 -0
  36. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/__init__.py +0 -0
  37. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/__init__.py +0 -0
  38. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
  39. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/dataset.py +0 -0
  40. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/job.py +0 -0
  41. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/project.py +0 -0
  42. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/task.py +0 -0
  43. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
  44. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/workflow.py +0 -0
  45. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
  46. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/__init__.py +0 -0
  47. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/dataset.py +0 -0
  48. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/images.py +0 -0
  49. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/job.py +0 -0
  50. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/project.py +0 -0
  51. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/status.py +0 -0
  52. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/submit.py +0 -0
  53. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task.py +0 -0
  54. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
  55. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_collection_custom.py +0 -0
  56. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_legacy.py +0 -0
  57. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/workflow.py +0 -0
  58. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/auth.py +0 -0
  59. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/aux/__init__.py +0 -0
  60. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/aux/_job.py +0 -0
  61. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/aux/_runner.py +0 -0
  62. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/.gitignore +0 -0
  63. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/__init__.py +0 -0
  64. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/async_wrap.py +0 -0
  65. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/components.py +0 -0
  66. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/compress_folder.py +0 -0
  67. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/exceptions.py +0 -0
  68. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/__init__.py +0 -0
  69. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
  70. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
  71. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/_slurm_config.py +0 -0
  72. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
  73. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/__init__.py +0 -0
  74. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/_executor_wait_thread.py +0 -0
  75. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/_slurm_job.py +0 -0
  76. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/executor.py +0 -0
  77. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/__init__.py +0 -0
  78. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/_check_jobs_status.py +0 -0
  79. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/_executor_wait_thread.py +0 -0
  80. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/_subprocess_run_as_user.py +0 -0
  81. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/executor.py +0 -0
  82. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/extract_archive.py +0 -0
  83. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/filenames.py +0 -0
  84. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/run_subprocess.py +0 -0
  85. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
  86. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/shutdown.py +0 -0
  87. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/task_files.py +0 -0
  88. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/__init__.py +0 -0
  89. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_common.py +0 -0
  90. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
  91. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
  92. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
  93. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/executor.py +0 -0
  94. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
  95. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
  96. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
  97. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/common.py +0 -0
  98. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
  99. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/__init__.py +0 -0
  100. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/__init__.py +0 -0
  101. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
  102. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
  103. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/executor.py +0 -0
  104. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/__init__.py +0 -0
  105. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/_local_config.py +0 -0
  106. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/_submit_setup.py +0 -0
  107. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/executor.py +0 -0
  108. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_common/__init__.py +0 -0
  109. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_common/get_slurm_config.py +0 -0
  110. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py +0 -0
  111. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_ssh/_submit_setup.py +0 -0
  112. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py +0 -0
  113. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_sudo/_submit_setup.py +0 -0
  114. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
  115. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
  116. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
  117. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner.py +0 -0
  118. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner_functions.py +0 -0
  119. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
  120. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/task_interface.py +0 -0
  121. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/v1_compat.py +0 -0
  122. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/versions.py +0 -0
  123. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/__init__.py +0 -0
  124. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/_validators.py +0 -0
  125. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/user.py +0 -0
  126. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/__init__.py +0 -0
  127. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
  128. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/dataset.py +0 -0
  129. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/dumps.py +0 -0
  130. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/manifest.py +0 -0
  131. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/project.py +0 -0
  132. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/state.py +0 -0
  133. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/task.py +0 -0
  134. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/task_collection.py +0 -0
  135. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/workflow.py +0 -0
  136. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/__init__.py +0 -0
  137. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/dataset.py +0 -0
  138. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/dumps.py +0 -0
  139. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/job.py +0 -0
  140. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/manifest.py +0 -0
  141. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/project.py +0 -0
  142. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/status.py +0 -0
  143. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/task.py +0 -0
  144. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/task_collection.py +0 -0
  145. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/workflow.py +0 -0
  146. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
  147. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/security/__init__.py +0 -0
  148. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/config.py +0 -0
  149. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/data_migrations/README.md +0 -0
  150. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/gunicorn_fractal.py +0 -0
  151. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/images/__init__.py +0 -0
  152. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/images/models.py +0 -0
  153. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/images/tools.py +0 -0
  154. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/logger.py +0 -0
  155. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/main.py +0 -0
  156. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/README +0 -0
  157. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/env.py +0 -0
  158. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/script.py.mako +0 -0
  159. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
  160. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
  161. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
  162. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
  163. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
  164. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
  165. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
  166. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
  167. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
  168. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
  169. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
  170. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
  171. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
  172. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
  173. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
  174. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
  175. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/py.typed +0 -0
  176. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/ssh/__init__.py +0 -0
  177. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/ssh/_fabric.py +0 -0
  178. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/string_tools.py +0 -0
  179. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/syringe.py +0 -0
  180. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/__init__.py +0 -0
  181. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/utils.py +0 -0
  182. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
  183. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/__init__.py +0 -0
  184. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/background_operations.py +0 -0
  185. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/endpoint_operations.py +0 -0
  186. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/get_collection_data.py +0 -0
  187. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/utils.py +0 -0
  188. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/_TaskCollectPip.py +0 -0
  189. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/__init__.py +0 -0
  190. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/_venv_pip.py +0 -0
  191. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/background_operations.py +0 -0
  192. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/background_operations_ssh.py +0 -0
  193. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/endpoint_operations.py +0 -0
  194. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_1_create_venv.sh +0 -0
  195. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_2_upgrade_pip.sh +0 -0
  196. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_3_pip_install.sh +0 -0
  197. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_4_pip_freeze.sh +0 -0
  198. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_5_pip_show.sh +0 -0
  199. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/utils.py +0 -0
  200. {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/urls.py +0 -0
  201. {fractal_server-2.3.5 → fractal_server-2.3.6}/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.5
3
+ Version: 2.3.6
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
@@ -33,7 +33,7 @@ Requires-Dist: psycopg[binary] (>=3.1.0,<4.0.0) ; extra == "postgres-psycopg-bin
33
33
  Requires-Dist: pydantic (>=1.10.8,<2)
34
34
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
35
35
  Requires-Dist: sqlalchemy[asyncio] (>=2.0.23,<2.1)
36
- Requires-Dist: sqlmodel (>=0.0.19,<0.0.20)
36
+ Requires-Dist: sqlmodel (>=0.0.21,<0.0.22)
37
37
  Requires-Dist: uvicorn (>=0.29.0,<0.30.0)
38
38
  Project-URL: Changelog, https://github.com/fractal-analytics-platform/fractal-server/blob/main/CHANGELOG.md
39
39
  Project-URL: Documentation, https://fractal-analytics-platform.github.io/fractal-server
@@ -0,0 +1 @@
1
+ __VERSION__ = "2.3.6"
@@ -0,0 +1,41 @@
1
+ from typing import Any
2
+ from typing import Optional
3
+
4
+ from pydantic import HttpUrl
5
+ from sqlalchemy import Column
6
+ from sqlalchemy.types import JSON
7
+ from sqlmodel import Field
8
+ from sqlmodel import SQLModel
9
+
10
+
11
+ class TaskV2(SQLModel, table=True):
12
+
13
+ id: Optional[int] = Field(default=None, primary_key=True)
14
+ name: str
15
+
16
+ type: str
17
+ command_non_parallel: Optional[str] = None
18
+ command_parallel: Optional[str] = None
19
+ source: str = Field(unique=True)
20
+
21
+ meta_non_parallel: dict[str, Any] = Field(
22
+ sa_column=Column(JSON, server_default="{}", default={}, nullable=False)
23
+ )
24
+ meta_parallel: dict[str, Any] = Field(
25
+ sa_column=Column(JSON, server_default="{}", default={}, nullable=False)
26
+ )
27
+
28
+ owner: Optional[str] = None
29
+ version: Optional[str] = None
30
+ args_schema_non_parallel: Optional[dict[str, Any]] = Field(
31
+ sa_column=Column(JSON), default=None
32
+ )
33
+ args_schema_parallel: Optional[dict[str, Any]] = Field(
34
+ sa_column=Column(JSON), default=None
35
+ )
36
+ args_schema_version: Optional[str]
37
+ docs_info: Optional[str] = None
38
+ docs_link: Optional[HttpUrl] = None
39
+
40
+ input_types: dict[str, bool] = Field(sa_column=Column(JSON), default={})
41
+ output_types: dict[str, bool] = Field(sa_column=Column(JSON), default={})
@@ -422,6 +422,8 @@ async def _workflow_insert_task(
422
422
 
423
423
  # Get task from db, and extract default arguments via a Task property
424
424
  # method
425
+ # NOTE: this logic remains there for V1 tasks only. When we deprecate V1
426
+ # tasks, we can simplify this block
425
427
  if is_legacy_task is True:
426
428
  db_task = await db.get(Task, task_id)
427
429
  if db_task is None:
@@ -439,12 +441,8 @@ async def _workflow_insert_task(
439
441
  raise ValueError(f"TaskV2 {task_id} not found.")
440
442
  task_type = db_task.type
441
443
 
442
- final_args_non_parallel = (
443
- db_task.default_args_non_parallel_from_args_schema.copy()
444
- )
445
- final_args_parallel = (
446
- db_task.default_args_parallel_from_args_schema.copy()
447
- )
444
+ final_args_non_parallel = {}
445
+ final_args_parallel = {}
448
446
  final_meta_parallel = (db_task.meta_parallel or {}).copy()
449
447
  final_meta_non_parallel = (db_task.meta_non_parallel or {}).copy()
450
448
 
@@ -186,34 +186,17 @@ async def update_workflowtask(
186
186
  default_args = (
187
187
  db_wf_task.task_legacy.default_args_from_args_schema
188
188
  )
189
+ actual_args = deepcopy(default_args)
190
+ if value is not None:
191
+ for k, v in value.items():
192
+ actual_args[k] = v
189
193
  else:
190
- default_args = (
191
- db_wf_task.task.default_args_parallel_from_args_schema
192
- )
193
- # Override default_args with args value items
194
- actual_args = deepcopy(default_args)
195
- if value is not None:
196
- for k, v in value.items():
197
- actual_args[k] = v
194
+ actual_args = deepcopy(value)
198
195
  if not actual_args:
199
196
  actual_args = None
200
197
  setattr(db_wf_task, key, actual_args)
201
198
  elif key == "args_non_parallel":
202
- # Get default arguments via a Task property method
203
- if db_wf_task.is_legacy_task:
204
- # This is only needed so that we don't have to modify the rest
205
- # of this block, but legacy task cannot take any non-parallel
206
- # args (see checks above).
207
- default_args = {}
208
- else:
209
- default_args = deepcopy(
210
- db_wf_task.task.default_args_non_parallel_from_args_schema
211
- )
212
- # Override default_args with args value items
213
- actual_args = default_args.copy()
214
- if value is not None:
215
- for k, v in value.items():
216
- actual_args[k] = v
199
+ actual_args = deepcopy(value)
217
200
  if not actual_args:
218
201
  actual_args = None
219
202
  setattr(db_wf_task, key, actual_args)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fractal-server"
3
- version = "2.3.5"
3
+ version = "2.3.6"
4
4
  description = "Server component of the Fractal analytics platform"
5
5
  authors = [
6
6
  "Tommaso Comparin <tommaso.comparin@exact-lab.it>",
@@ -27,7 +27,7 @@ exclude = [
27
27
  python = "^3.9"
28
28
  python-dotenv = "^1.0.0"
29
29
  fastapi = "^0.110.0"
30
- sqlmodel = "^0.0.19"
30
+ sqlmodel = "^0.0.21"
31
31
  sqlalchemy = {extras = ["asyncio"], version = ">=2.0.23,<2.1"}
32
32
  aiosqlite = "^0.19.0"
33
33
  fastapi-users = {extras = ["oauth"], version = "^12.1.0"}
@@ -91,7 +91,7 @@ filterwarnings = [
91
91
  ]
92
92
 
93
93
  [tool.bumpver]
94
- current_version = "2.3.5"
94
+ current_version = "2.3.6"
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.5"
@@ -1,93 +0,0 @@
1
- import json
2
- import logging
3
- from typing import Any
4
- from typing import Optional
5
-
6
- from pydantic import HttpUrl
7
- from sqlalchemy import Column
8
- from sqlalchemy.types import JSON
9
- from sqlmodel import Field
10
- from sqlmodel import SQLModel
11
-
12
-
13
- class TaskV2(SQLModel, table=True):
14
-
15
- id: Optional[int] = Field(default=None, primary_key=True)
16
- name: str
17
-
18
- type: str
19
- command_non_parallel: Optional[str] = None
20
- command_parallel: Optional[str] = None
21
- source: str = Field(unique=True)
22
-
23
- meta_non_parallel: dict[str, Any] = Field(
24
- sa_column=Column(JSON, server_default="{}", default={}, nullable=False)
25
- )
26
- meta_parallel: dict[str, Any] = Field(
27
- sa_column=Column(JSON, server_default="{}", default={}, nullable=False)
28
- )
29
-
30
- owner: Optional[str] = None
31
- version: Optional[str] = None
32
- args_schema_non_parallel: Optional[dict[str, Any]] = Field(
33
- sa_column=Column(JSON), default=None
34
- )
35
- args_schema_parallel: Optional[dict[str, Any]] = Field(
36
- sa_column=Column(JSON), default=None
37
- )
38
- args_schema_version: Optional[str]
39
- docs_info: Optional[str] = None
40
- docs_link: Optional[HttpUrl] = None
41
-
42
- input_types: dict[str, bool] = Field(sa_column=Column(JSON), default={})
43
- output_types: dict[str, bool] = Field(sa_column=Column(JSON), default={})
44
-
45
- @property
46
- def default_args_non_parallel_from_args_schema(self) -> dict[str, Any]:
47
- """
48
- Extract default arguments from args_schema
49
- """
50
- # Return {} if there is no args_schema
51
- if self.args_schema_non_parallel is None:
52
- return {}
53
- # Try to construct default_args
54
- try:
55
- default_args = {}
56
- properties = self.args_schema_non_parallel["properties"]
57
- for prop_name, prop_schema in properties.items():
58
- default_value = prop_schema.get("default", None)
59
- if default_value is not None:
60
- default_args[prop_name] = default_value
61
- return default_args
62
- except KeyError as e:
63
- logging.warning(
64
- "Cannot set default_args from args_schema_non_parallel="
65
- f"{json.dumps(self.args_schema_non_parallel)}\n"
66
- f"Original KeyError: {str(e)}"
67
- )
68
- return {}
69
-
70
- @property
71
- def default_args_parallel_from_args_schema(self) -> dict[str, Any]:
72
- """
73
- Extract default arguments from args_schema
74
- """
75
- # Return {} if there is no args_schema
76
- if self.args_schema_parallel is None:
77
- return {}
78
- # Try to construct default_args
79
- try:
80
- default_args = {}
81
- properties = self.args_schema_parallel["properties"]
82
- for prop_name, prop_schema in properties.items():
83
- default_value = prop_schema.get("default", None)
84
- if default_value is not None:
85
- default_args[prop_name] = default_value
86
- return default_args
87
- except KeyError as e:
88
- logging.warning(
89
- "Cannot set default_args from args_schema_parallel="
90
- f"{json.dumps(self.args_schema_parallel)}\n"
91
- f"Original KeyError: {str(e)}"
92
- )
93
- return {}
File without changes
File without changes