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.
- {fractal_server-2.3.5 → fractal_server-2.3.6}/PKG-INFO +2 -2
- fractal_server-2.3.6/fractal_server/__init__.py +1 -0
- fractal_server-2.3.6/fractal_server/app/models/v2/task.py +41 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/_aux_functions.py +4 -6
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/workflowtask.py +6 -23
- {fractal_server-2.3.5 → fractal_server-2.3.6}/pyproject.toml +3 -3
- fractal_server-2.3.5/fractal_server/__init__.py +0 -1
- fractal_server-2.3.5/fractal_server/app/models/v2/task.py +0 -93
- {fractal_server-2.3.5 → fractal_server-2.3.6}/LICENSE +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/README.md +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/__main__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/alembic.ini +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/db/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/linkuserproject.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/security.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/dataset.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/project.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/state.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/task.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v1/workflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/collection_state.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/dataset.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/project.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/workflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/workflowtask.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/admin/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/admin/v1.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/admin/v2.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/dataset.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/project.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/task.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/workflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/dataset.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/images.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/project.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/status.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/submit.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_collection_custom.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_legacy.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/workflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/auth.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/aux/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/aux/_job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/aux/_runner.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/.gitignore +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/async_wrap.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/components.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/compress_folder.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/exceptions.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/_slurm_config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/_executor_wait_thread.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/_slurm_job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/ssh/executor.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/_check_jobs_status.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/_executor_wait_thread.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/_subprocess_run_as_user.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/sudo/executor.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/extract_archive.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/filenames.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/run_subprocess.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/shutdown.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/task_files.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_common.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/executor.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/common.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/executor.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/_local_config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/_submit_setup.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local_experimental/executor.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_common/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_common/get_slurm_config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_ssh/_submit_setup.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_sudo/_submit_setup.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner_functions.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/task_interface.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/v1_compat.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/versions.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/_validators.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/user.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/dataset.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/dumps.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/manifest.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/project.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/state.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/task.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/task_collection.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/workflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/dataset.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/dumps.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/job.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/manifest.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/project.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/status.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/task.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/task_collection.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/workflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/security/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/config.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/data_migrations/README.md +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/gunicorn_fractal.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/images/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/images/models.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/images/tools.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/logger.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/main.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/README +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/env.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/script.py.mako +0 -0
- {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
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
- {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
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/py.typed +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/ssh/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/ssh/_fabric.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/string_tools.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/syringe.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/utils.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/background_operations.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/endpoint_operations.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/get_collection_data.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/utils.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/_TaskCollectPip.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/__init__.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/_venv_pip.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/background_operations.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/background_operations_ssh.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/endpoint_operations.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_1_create_venv.sh +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_2_upgrade_pip.sh +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_3_pip_install.sh +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_4_pip_freeze.sh +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_5_pip_show.sh +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/utils.py +0 -0
- {fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/urls.py +0 -0
- {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.
|
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.
|
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={})
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/_aux_functions.py
RENAMED
@@ -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
|
-
|
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
|
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/workflowtask.py
RENAMED
@@ -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
|
-
|
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
|
-
|
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.
|
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.
|
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.
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/models/v2/collection_state.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/_aux_functions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/task_collection.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v1/workflowtask.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_collection.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/routes/api/v2/task_legacy.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/__init__.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/__init__.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/_batching.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/executors/slurm/remote.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/__init__.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/_local_config.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/_submit_setup.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_local/executor.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/__init__.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/_slurm/_submit_setup.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v1/handle_failed_job.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/__init__.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/_local_config.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/_submit_setup.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_local/executor.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_common/__init__.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/deduplicate_list.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/handle_failed_job.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/runner_functions.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/runner/v2/task_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/applyworkflow.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v1/task_collection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/app/schemas/v2/task_collection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/migrations/versions/5bf02391cfef_v2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/background_operations.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/endpoint_operations.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v1/get_collection_data.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/background_operations.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/background_operations_ssh.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/endpoint_operations.py
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_1_create_venv.sh
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_2_upgrade_pip.sh
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_3_pip_install.sh
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_4_pip_freeze.sh
RENAMED
File without changes
|
{fractal_server-2.3.5 → fractal_server-2.3.6}/fractal_server/tasks/v2/templates/_5_pip_show.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|