fractal-server 2.7.0a11__tar.gz → 2.7.1__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.7.0a11 → fractal_server-2.7.1}/PKG-INFO +4 -10
- fractal_server-2.7.1/fractal_server/__init__.py +1 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/task.py +1 -2
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v2/task_group.py +7 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/task.py +2 -1
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/task_collection.py +3 -2
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/task_collection_custom.py +2 -1
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/__init__.py +1 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/task_group.py +8 -1
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/security/__init__.py +8 -1
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/config.py +8 -28
- fractal_server-2.7.1/fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py +42 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/_venv_pip.py +5 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/background_operations_ssh.py +1 -1
- fractal_server-2.7.0a11/fractal_server/tasks/v2/templates/_2_upgrade_pip.sh → fractal_server-2.7.1/fractal_server/tasks/v2/templates/_2_preliminary_pip_operations.sh +1 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/pyproject.toml +5 -10
- fractal_server-2.7.0a11/fractal_server/__init__.py +0 -1
- fractal_server-2.7.0a11/fractal_server/data_migrations/2_7_0.py +0 -323
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/LICENSE +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/README.md +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/__main__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/alembic.ini +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/db/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/linkusergroup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/linkuserproject.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/security.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/user_settings.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/dataset.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/state.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/task.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v1/workflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/collection_state.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/dataset.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/workflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/models/v2/workflowtask.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v1.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v2/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v2/job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v2/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v2/task.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/dataset.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/task.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/workflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/_aux_functions.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/_aux_functions_tasks.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/dataset.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/images.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/status.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/submit.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/task_group.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/workflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/workflow_import.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/workflowtask.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/_aux_auth.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/current_user.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/group.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/login.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/oauth.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/register.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/router.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/auth/users.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/aux/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/aux/_job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/aux/_runner.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/aux/validate_user_settings.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/.gitignore +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/async_wrap.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/components.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/compress_folder.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/exceptions.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/_slurm_config.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/ssh/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/ssh/_executor_wait_thread.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/ssh/_slurm_job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/ssh/executor.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/sudo/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/sudo/_check_jobs_status.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/sudo/_executor_wait_thread.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/sudo/_subprocess_run_as_user.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/executors/slurm/sudo/executor.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/extract_archive.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/filenames.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/run_subprocess.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/shutdown.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/task_files.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_common.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_local/executor.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/common.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local/executor.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local_experimental/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local_experimental/_local_config.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local_experimental/_submit_setup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_local_experimental/executor.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_slurm_common/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_slurm_common/get_slurm_config.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_slurm_ssh/_submit_setup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/_slurm_sudo/_submit_setup.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/runner.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/runner_functions.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/v2/task_interface.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/runner/versions.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/_validators.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/user.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/user_group.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/user_settings.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/dataset.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/dumps.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/manifest.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/state.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/task.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/task_collection.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v1/workflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/dataset.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/dumps.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/job.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/manifest.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/project.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/status.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/task.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/task_collection.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/workflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/user_settings.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/data_migrations/README.md +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/data_migrations/tools.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/gunicorn_fractal.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/images/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/images/models.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/images/tools.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/logger.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/main.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/README +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/env.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/naming_convention.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/script.py.mako +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/034a469ec2eb_task_groups.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/501961cfcd85_remove_link_between_v1_and_v2_tasks_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/9c5ae74c9b98_add_user_settings_table.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/da2cb2ac4255_user_group_viewer_paths.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/py.typed +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/ssh/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/ssh/_fabric.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/string_tools.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/syringe.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/utils.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v1/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v1/background_operations.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v1/endpoint_operations.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v1/get_collection_data.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v1/utils.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/__init__.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/background_operations.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/database_operations.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/endpoint_operations.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/templates/_1_create_venv.sh +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/templates/_3_pip_install.sh +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/templates/_4_pip_freeze.sh +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/templates/_5_pip_show.sh +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/tasks/v2/utils.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/urls.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/utils.py +0 -0
- {fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/zip_tools.py +0 -0
@@ -1,35 +1,29 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fractal-server
|
3
|
-
Version: 2.7.
|
3
|
+
Version: 2.7.1
|
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
|
7
7
|
Author: Tommaso Comparin
|
8
8
|
Author-email: tommaso.comparin@exact-lab.it
|
9
|
-
Requires-Python: >=3.
|
9
|
+
Requires-Python: >=3.10,<4.0
|
10
10
|
Classifier: License :: OSI Approved :: BSD License
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
12
|
-
Classifier: Programming Language :: Python :: 3.9
|
13
12
|
Classifier: Programming Language :: Python :: 3.10
|
14
13
|
Classifier: Programming Language :: Python :: 3.11
|
15
14
|
Classifier: Programming Language :: Python :: 3.12
|
16
|
-
Provides-Extra: gunicorn
|
17
|
-
Provides-Extra: postgres
|
18
|
-
Provides-Extra: postgres-psycopg-binary
|
19
15
|
Requires-Dist: aiosqlite (>=0.19.0,<0.20.0)
|
20
16
|
Requires-Dist: alembic (>=1.13.1,<2.0.0)
|
21
|
-
Requires-Dist: asyncpg (>=0.29.0,<0.30.0) ; extra == "postgres"
|
22
17
|
Requires-Dist: bcrypt (==4.0.1)
|
23
18
|
Requires-Dist: cloudpickle (>=3.0.0,<3.1.0)
|
24
19
|
Requires-Dist: clusterfutures (>=0.5,<0.6)
|
25
20
|
Requires-Dist: fabric (>=3.2.2,<4.0.0)
|
26
21
|
Requires-Dist: fastapi (>=0.115.0,<0.116.0)
|
27
22
|
Requires-Dist: fastapi-users[oauth] (>=12.1.0,<13.0.0)
|
28
|
-
Requires-Dist: gunicorn (>=21.2,<23.0)
|
23
|
+
Requires-Dist: gunicorn (>=21.2,<23.0)
|
29
24
|
Requires-Dist: packaging (>=23.2,<24.0)
|
30
25
|
Requires-Dist: psutil (>=5.9.8,<6.0.0)
|
31
|
-
Requires-Dist:
|
32
|
-
Requires-Dist: psycopg[binary] (>=3.1.0,<4.0.0) ; extra == "postgres-psycopg-binary"
|
26
|
+
Requires-Dist: psycopg[binary] (>=3.1.0,<4.0.0)
|
33
27
|
Requires-Dist: pydantic (>=1.10.8,<2)
|
34
28
|
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
|
35
29
|
Requires-Dist: sqlalchemy[asyncio] (>=2.0.23,<2.1)
|
@@ -0,0 +1 @@
|
|
1
|
+
__VERSION__ = "2.7.1"
|
@@ -29,7 +29,6 @@ class TaskV2(SQLModel, table=True):
|
|
29
29
|
sa_column=Column(JSON, server_default="{}", default={}, nullable=False)
|
30
30
|
)
|
31
31
|
|
32
|
-
owner: Optional[str] = None
|
33
32
|
version: Optional[str] = None
|
34
33
|
args_schema_non_parallel: Optional[dict[str, Any]] = Field(
|
35
34
|
sa_column=Column(JSON), default=None
|
@@ -44,7 +43,7 @@ class TaskV2(SQLModel, table=True):
|
|
44
43
|
input_types: dict[str, bool] = Field(sa_column=Column(JSON), default={})
|
45
44
|
output_types: dict[str, bool] = Field(sa_column=Column(JSON), default={})
|
46
45
|
|
47
|
-
taskgroupv2_id:
|
46
|
+
taskgroupv2_id: int = Field(foreign_key="taskgroupv2.id")
|
48
47
|
|
49
48
|
category: Optional[str] = None
|
50
49
|
modality: Optional[str] = None
|
{fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/admin/v2/task_group.py
RENAMED
@@ -21,6 +21,7 @@ from fractal_server.app.routes.auth._aux_auth import (
|
|
21
21
|
)
|
22
22
|
from fractal_server.app.schemas.v2 import TaskGroupReadV2
|
23
23
|
from fractal_server.app.schemas.v2 import TaskGroupUpdateV2
|
24
|
+
from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
|
24
25
|
from fractal_server.logger import set_logger
|
25
26
|
|
26
27
|
router = APIRouter()
|
@@ -50,6 +51,8 @@ async def query_task_group_list(
|
|
50
51
|
user_group_id: Optional[int] = None,
|
51
52
|
private: Optional[bool] = None,
|
52
53
|
active: Optional[bool] = None,
|
54
|
+
pkg_name: Optional[str] = None,
|
55
|
+
origin: Optional[TaskGroupV2OriginEnum] = None,
|
53
56
|
user: UserOAuth = Depends(current_active_superuser),
|
54
57
|
db: AsyncSession = Depends(get_async_db),
|
55
58
|
) -> list[TaskGroupReadV2]:
|
@@ -75,6 +78,10 @@ async def query_task_group_list(
|
|
75
78
|
stm = stm.where(is_(TaskGroupV2.active, True))
|
76
79
|
else:
|
77
80
|
stm = stm.where(is_(TaskGroupV2.active, False))
|
81
|
+
if origin is not None:
|
82
|
+
stm = stm.where(TaskGroupV2.origin == origin)
|
83
|
+
if pkg_name is not None:
|
84
|
+
stm = stm.where(TaskGroupV2.pkg_name.icontains(pkg_name))
|
78
85
|
|
79
86
|
res = await db.execute(stm)
|
80
87
|
task_groups_list = res.scalars().all()
|
@@ -24,6 +24,7 @@ from fractal_server.app.models.v2 import TaskV2
|
|
24
24
|
from fractal_server.app.routes.auth import current_active_user
|
25
25
|
from fractal_server.app.routes.auth import current_active_verified_user
|
26
26
|
from fractal_server.app.schemas.v2 import TaskCreateV2
|
27
|
+
from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
|
27
28
|
from fractal_server.app.schemas.v2 import TaskReadV2
|
28
29
|
from fractal_server.app.schemas.v2 import TaskUpdateV2
|
29
30
|
from fractal_server.logger import set_logger
|
@@ -200,7 +201,7 @@ async def create_task(
|
|
200
201
|
user_group_id=user_group_id,
|
201
202
|
active=True,
|
202
203
|
task_list=[db_task],
|
203
|
-
origin=
|
204
|
+
origin=TaskGroupV2OriginEnum.OTHER,
|
204
205
|
version=db_task.version,
|
205
206
|
pkg_name=pkg_name,
|
206
207
|
)
|
{fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/routes/api/v2/task_collection.py
RENAMED
@@ -30,6 +30,7 @@ from ._aux_functions_tasks import _verify_non_duplication_user_constraint
|
|
30
30
|
from fractal_server.app.models import UserOAuth
|
31
31
|
from fractal_server.app.routes.auth import current_active_user
|
32
32
|
from fractal_server.app.routes.auth import current_active_verified_user
|
33
|
+
from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
|
33
34
|
from fractal_server.tasks.utils import _normalize_package_name
|
34
35
|
from fractal_server.tasks.utils import get_collection_log_v2
|
35
36
|
from fractal_server.tasks.v2.background_operations import (
|
@@ -121,11 +122,11 @@ async def collect_tasks_pip(
|
|
121
122
|
wheel_info["distribution"]
|
122
123
|
)
|
123
124
|
task_group_attrs["version"] = wheel_info["version"]
|
124
|
-
task_group_attrs["origin"] =
|
125
|
+
task_group_attrs["origin"] = TaskGroupV2OriginEnum.WHEELFILE
|
125
126
|
else:
|
126
127
|
pkg_name = task_collect.package
|
127
128
|
task_group_attrs["pkg_name"] = _normalize_package_name(pkg_name)
|
128
|
-
task_group_attrs["origin"] =
|
129
|
+
task_group_attrs["origin"] = TaskGroupV2OriginEnum.PYPI
|
129
130
|
latest_version = await get_package_version_from_pypi(
|
130
131
|
task_collect.package,
|
131
132
|
task_collect.package_version,
|
@@ -21,6 +21,7 @@ from fractal_server.app.routes.auth import current_active_verified_user
|
|
21
21
|
from fractal_server.app.schemas.v2 import TaskCollectCustomV2
|
22
22
|
from fractal_server.app.schemas.v2 import TaskCreateV2
|
23
23
|
from fractal_server.app.schemas.v2 import TaskGroupCreateV2
|
24
|
+
from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
|
24
25
|
from fractal_server.app.schemas.v2 import TaskReadV2
|
25
26
|
from fractal_server.config import get_settings
|
26
27
|
from fractal_server.logger import set_logger
|
@@ -140,7 +141,7 @@ async def collect_task_custom(
|
|
140
141
|
|
141
142
|
# Prepare task-group attributes
|
142
143
|
task_group_attrs = dict(
|
143
|
-
origin=
|
144
|
+
origin=TaskGroupV2OriginEnum.OTHER,
|
144
145
|
pkg_name=task_collect.label,
|
145
146
|
user_id=user.id,
|
146
147
|
user_group_id=user_group_id,
|
@@ -30,6 +30,7 @@ from .task_collection import TaskCollectPipV2 # noqa F401
|
|
30
30
|
from .task_group import TaskGroupCreateV2 # noqa F401
|
31
31
|
from .task_group import TaskGroupReadV2 # noqa F401
|
32
32
|
from .task_group import TaskGroupUpdateV2 # noqa F401
|
33
|
+
from .task_group import TaskGroupV2OriginEnum # noqa F401
|
33
34
|
from .workflow import WorkflowCreateV2 # noqa F401
|
34
35
|
from .workflow import WorkflowExportV2 # noqa F401
|
35
36
|
from .workflow import WorkflowImportV2 # noqa F401
|
{fractal_server-2.7.0a11 → fractal_server-2.7.1}/fractal_server/app/schemas/v2/task_group.py
RENAMED
@@ -1,4 +1,5 @@
|
|
1
1
|
from datetime import datetime
|
2
|
+
from enum import Enum
|
2
3
|
from typing import Literal
|
3
4
|
from typing import Optional
|
4
5
|
|
@@ -13,11 +14,17 @@ from .._validators import valstr
|
|
13
14
|
from .task import TaskReadV2
|
14
15
|
|
15
16
|
|
17
|
+
class TaskGroupV2OriginEnum(str, Enum):
|
18
|
+
PYPI = "pypi"
|
19
|
+
WHEELFILE = "wheel-file"
|
20
|
+
OTHER = "other"
|
21
|
+
|
22
|
+
|
16
23
|
class TaskGroupCreateV2(BaseModel, extra=Extra.forbid):
|
17
24
|
user_id: int
|
18
25
|
user_group_id: Optional[int] = None
|
19
26
|
active: bool = True
|
20
|
-
origin:
|
27
|
+
origin: TaskGroupV2OriginEnum
|
21
28
|
pkg_name: str
|
22
29
|
version: Optional[str] = None
|
23
30
|
python_version: Optional[str] = None
|
@@ -315,13 +315,20 @@ async def _create_first_user(
|
|
315
315
|
|
316
316
|
|
317
317
|
def _create_first_group():
|
318
|
+
"""
|
319
|
+
Create a `UserGroup` with `name=FRACTAL_DEFAULT_GROUP_NAME`, if missing.
|
320
|
+
"""
|
318
321
|
function_logger = set_logger("fractal_server.create_first_group")
|
319
322
|
|
320
323
|
function_logger.info(
|
321
324
|
f"START _create_first_group, with name '{FRACTAL_DEFAULT_GROUP_NAME}'"
|
322
325
|
)
|
323
326
|
with next(get_sync_db()) as db:
|
324
|
-
group_all = db.execute(
|
327
|
+
group_all = db.execute(
|
328
|
+
select(UserGroup).where(
|
329
|
+
UserGroup.name == FRACTAL_DEFAULT_GROUP_NAME
|
330
|
+
)
|
331
|
+
)
|
325
332
|
if group_all.scalars().one_or_none() is None:
|
326
333
|
first_group = UserGroup(name=FRACTAL_DEFAULT_GROUP_NAME)
|
327
334
|
db.add(first_group)
|
@@ -167,9 +167,9 @@ class Settings(BaseSettings):
|
|
167
167
|
###########################################################################
|
168
168
|
# DATABASE
|
169
169
|
###########################################################################
|
170
|
-
DB_ENGINE: Literal["sqlite", "postgres
|
170
|
+
DB_ENGINE: Literal["sqlite", "postgres-psycopg"] = "sqlite"
|
171
171
|
"""
|
172
|
-
|
172
|
+
Database engine to use (supported: `sqlite`, `postgres-psycopg`).
|
173
173
|
"""
|
174
174
|
DB_ECHO: bool = False
|
175
175
|
"""
|
@@ -203,16 +203,7 @@ class Settings(BaseSettings):
|
|
203
203
|
|
204
204
|
@property
|
205
205
|
def DATABASE_ASYNC_URL(self) -> URL:
|
206
|
-
if self.DB_ENGINE == "postgres":
|
207
|
-
url = URL.create(
|
208
|
-
drivername="postgresql+asyncpg",
|
209
|
-
username=self.POSTGRES_USER,
|
210
|
-
password=self.POSTGRES_PASSWORD,
|
211
|
-
host=self.POSTGRES_HOST,
|
212
|
-
port=self.POSTGRES_PORT,
|
213
|
-
database=self.POSTGRES_DB,
|
214
|
-
)
|
215
|
-
elif self.DB_ENGINE == "postgres-psycopg":
|
206
|
+
if self.DB_ENGINE == "postgres-psycopg":
|
216
207
|
url = URL.create(
|
217
208
|
drivername="postgresql+psycopg",
|
218
209
|
username=self.POSTGRES_USER,
|
@@ -235,11 +226,7 @@ class Settings(BaseSettings):
|
|
235
226
|
|
236
227
|
@property
|
237
228
|
def DATABASE_SYNC_URL(self):
|
238
|
-
if self.DB_ENGINE == "postgres":
|
239
|
-
return self.DATABASE_ASYNC_URL.set(
|
240
|
-
drivername="postgresql+psycopg2"
|
241
|
-
)
|
242
|
-
elif self.DB_ENGINE == "postgres-psycopg":
|
229
|
+
if self.DB_ENGINE == "postgres-psycopg":
|
243
230
|
return self.DATABASE_ASYNC_URL.set(drivername="postgresql+psycopg")
|
244
231
|
else:
|
245
232
|
if not self.SQLITE_PATH:
|
@@ -546,20 +533,13 @@ class Settings(BaseSettings):
|
|
546
533
|
"""
|
547
534
|
Checks that db environment variables are properly set.
|
548
535
|
"""
|
549
|
-
if self.DB_ENGINE == "postgres":
|
536
|
+
if self.DB_ENGINE == "postgres-psycopg":
|
550
537
|
if not self.POSTGRES_DB:
|
551
538
|
raise FractalConfigurationError(
|
552
|
-
"POSTGRES_DB cannot be None when DB_ENGINE=
|
553
|
-
|
554
|
-
try:
|
555
|
-
import psycopg2 # noqa: F401
|
556
|
-
import asyncpg # noqa: F401
|
557
|
-
except ModuleNotFoundError:
|
558
|
-
raise FractalConfigurationError(
|
559
|
-
"DB engine is `postgres` but `psycopg2` or `asyncpg` "
|
560
|
-
"are not available"
|
539
|
+
"POSTGRES_DB cannot be None when DB_ENGINE="
|
540
|
+
"postgres-psycopg."
|
561
541
|
)
|
562
|
-
|
542
|
+
|
563
543
|
try:
|
564
544
|
import psycopg # noqa: F401
|
565
545
|
except ModuleNotFoundError:
|
fractal_server-2.7.1/fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
"""Update TaskV2 post 2.7.0
|
2
|
+
|
3
|
+
Revision ID: 8e8f227a3e36
|
4
|
+
Revises: 034a469ec2eb
|
5
|
+
Create Date: 2024-10-29 09:01:33.075251
|
6
|
+
|
7
|
+
"""
|
8
|
+
import sqlalchemy as sa
|
9
|
+
from alembic import op
|
10
|
+
|
11
|
+
|
12
|
+
# revision identifiers, used by Alembic.
|
13
|
+
revision = "8e8f227a3e36"
|
14
|
+
down_revision = "034a469ec2eb"
|
15
|
+
branch_labels = None
|
16
|
+
depends_on = None
|
17
|
+
|
18
|
+
|
19
|
+
def upgrade() -> None:
|
20
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
21
|
+
with op.batch_alter_table("taskv2", schema=None) as batch_op:
|
22
|
+
batch_op.alter_column(
|
23
|
+
"taskgroupv2_id", existing_type=sa.INTEGER(), nullable=False
|
24
|
+
)
|
25
|
+
batch_op.drop_column("owner")
|
26
|
+
|
27
|
+
# ### end Alembic commands ###
|
28
|
+
|
29
|
+
|
30
|
+
def downgrade() -> None:
|
31
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
32
|
+
with op.batch_alter_table("taskv2", schema=None) as batch_op:
|
33
|
+
batch_op.add_column(
|
34
|
+
sa.Column(
|
35
|
+
"owner", sa.VARCHAR(), autoincrement=False, nullable=True
|
36
|
+
)
|
37
|
+
)
|
38
|
+
batch_op.alter_column(
|
39
|
+
"taskgroupv2_id", existing_type=sa.INTEGER(), nullable=True
|
40
|
+
)
|
41
|
+
|
42
|
+
# ### end Alembic commands ###
|
@@ -73,6 +73,11 @@ async def _pip_install(
|
|
73
73
|
),
|
74
74
|
logger_name=logger_name,
|
75
75
|
)
|
76
|
+
await execute_command(
|
77
|
+
cwd=Path(task_group.venv_path),
|
78
|
+
command=f"{python_bin} -m pip install setuptools",
|
79
|
+
logger_name=logger_name,
|
80
|
+
)
|
76
81
|
await execute_command(
|
77
82
|
cwd=Path(task_group.venv_path),
|
78
83
|
command=f"{python_bin} -m pip install {pip_install_str}",
|
@@ -205,7 +205,7 @@ def background_collect_pip_ssh(
|
|
205
205
|
remove_venv_folder_upon_failure = True
|
206
206
|
|
207
207
|
stdout = _customize_and_run_template(
|
208
|
-
script_filename="
|
208
|
+
script_filename="_2_preliminary_pip_operations.sh",
|
209
209
|
**common_args,
|
210
210
|
)
|
211
211
|
stdout = _customize_and_run_template(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "fractal-server"
|
3
|
-
version = "2.7.
|
3
|
+
version = "2.7.1"
|
4
4
|
description = "Server component of the Fractal analytics platform"
|
5
5
|
authors = [
|
6
6
|
"Tommaso Comparin <tommaso.comparin@exact-lab.it>",
|
@@ -24,7 +24,7 @@ exclude = [
|
|
24
24
|
|
25
25
|
|
26
26
|
[tool.poetry.dependencies]
|
27
|
-
python = "^3.
|
27
|
+
python = "^3.10"
|
28
28
|
python-dotenv = "^1.0.0"
|
29
29
|
fastapi = "^0.115.0"
|
30
30
|
sqlmodel = "^0.0.21"
|
@@ -40,17 +40,12 @@ clusterfutures = "^0.5"
|
|
40
40
|
cloudpickle = ">=3.0.0,<3.1.0"
|
41
41
|
fabric = "^3.2.2"
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
psycopg = { version = "^3.1.0", extras=["binary"], optional=true }
|
46
|
-
psycopg2 = { version = "^2.9.5", optional = true }
|
43
|
+
gunicorn = { version = ">=21.2,<23.0" }
|
44
|
+
psycopg = { version = "^3.1.0", extras=["binary"] }
|
47
45
|
psutil = "^5.9.8"
|
48
46
|
uvicorn-worker = "^0.2.0"
|
49
47
|
|
50
48
|
[tool.poetry.extras]
|
51
|
-
postgres = ["asyncpg", "psycopg2"]
|
52
|
-
gunicorn = ["gunicorn"]
|
53
|
-
postgres-psycopg-binary = ["psycopg"]
|
54
49
|
|
55
50
|
[tool.poetry.group.dev.dependencies]
|
56
51
|
asgi-lifespan = "^2"
|
@@ -92,7 +87,7 @@ filterwarnings = [
|
|
92
87
|
]
|
93
88
|
|
94
89
|
[tool.bumpver]
|
95
|
-
current_version = "2.7.
|
90
|
+
current_version = "2.7.1"
|
96
91
|
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
|
97
92
|
commit_message = "bump version {old_version} -> {new_version}"
|
98
93
|
commit = true
|
@@ -1 +0,0 @@
|
|
1
|
-
__VERSION__ = "2.7.0a11"
|