fractal-server 2.7.0a0__tar.gz → 2.7.0a1__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.0a0 → fractal_server-2.7.0a1}/PKG-INFO +1 -1
- fractal_server-2.7.0a1/fractal_server/__init__.py +1 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/linkusergroup.py +11 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/task_group.py +11 -3
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/_aux_auth.py +30 -29
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/current_user.py +5 -5
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/router.py +0 -2
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/users.py +8 -7
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/user.py +1 -2
- fractal_server-2.7.0a1/fractal_server/migrations/versions/df7cc3501bf7_linkusergroup_timestamp_created.py +42 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/pyproject.toml +2 -2
- fractal_server-2.7.0a0/fractal_server/__init__.py +0 -1
- fractal_server-2.7.0a0/fractal_server/app/routes/auth/group_names.py +0 -34
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/LICENSE +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/README.md +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/__main__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/alembic.ini +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/db/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/linkuserproject.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/security.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/user_settings.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/dataset.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/project.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/state.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/task.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v1/workflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/collection_state.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/dataset.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/project.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/task.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/workflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/workflowtask.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/admin/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/admin/v1.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/admin/v2.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/_aux_functions.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/dataset.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/project.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/task.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/task_collection.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/workflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/workflowtask.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/_aux_functions.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/_aux_functions_tasks.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/dataset.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/images.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/project.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/status.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/submit.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/task.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/task_collection_custom.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/workflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/workflowtask.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/group.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/login.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/oauth.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/register.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/aux/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/aux/_job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/aux/_runner.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/aux/validate_user_settings.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/.gitignore +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/async_wrap.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/components.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/compress_folder.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/exceptions.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/_batching.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/_slurm_config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/remote.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/ssh/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/ssh/_executor_wait_thread.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/ssh/_slurm_job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/ssh/executor.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/sudo/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/sudo/_check_jobs_status.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/sudo/_executor_wait_thread.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/sudo/_subprocess_run_as_user.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/slurm/sudo/executor.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/extract_archive.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/filenames.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/run_subprocess.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/set_start_and_last_task_index.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/shutdown.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/task_files.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_common.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_local/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_local/_local_config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_local/_submit_setup.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_local/executor.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_slurm/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_slurm/_submit_setup.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_slurm/get_slurm_config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/common.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/handle_failed_job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local/_local_config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local/_submit_setup.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local/executor.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local_experimental/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local_experimental/_local_config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local_experimental/_submit_setup.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_local_experimental/executor.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_slurm_common/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_slurm_common/get_slurm_config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_slurm_ssh/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_slurm_ssh/_submit_setup.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_slurm_sudo/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/_slurm_sudo/_submit_setup.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/deduplicate_list.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/handle_failed_job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/merge_outputs.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/runner.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/runner_functions.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/runner_functions_low_level.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v2/task_interface.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/versions.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/_validators.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/user_group.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/user_settings.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/applyworkflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/dataset.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/dumps.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/manifest.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/project.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/state.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/task.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/task_collection.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v1/workflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/dataset.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/dumps.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/job.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/manifest.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/project.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/status.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/task.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/task_collection.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/task_group.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/workflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/security/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/user_settings.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/config.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/data_migrations/README.md +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/data_migrations/tools.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/gunicorn_fractal.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/images/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/images/models.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/images/tools.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/logger.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/main.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/README +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/env.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/naming_convention.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/script.py.mako +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/501961cfcd85_remove_link_between_v1_and_v2_tasks_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/7cf1baae8fb4_task_group_v2.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/9c5ae74c9b98_add_user_settings_table.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/da2cb2ac4255_user_group_viewer_paths.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/py.typed +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/ssh/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/ssh/_fabric.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/string_tools.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/syringe.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/utils.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v1/_TaskCollectPip.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v1/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v1/background_operations.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v1/endpoint_operations.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v1/get_collection_data.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v1/utils.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/_TaskCollectPip.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/__init__.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/_venv_pip.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/background_operations.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/background_operations_ssh.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/database_operations.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/endpoint_operations.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/templates/_1_create_venv.sh +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/templates/_2_upgrade_pip.sh +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/templates/_3_pip_install.sh +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/templates/_4_pip_freeze.sh +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/templates/_5_pip_show.sh +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/tasks/v2/utils.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/urls.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/utils.py +0 -0
- {fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/zip_tools.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
__VERSION__ = "2.7.0a1"
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/linkusergroup.py
RENAMED
@@ -1,6 +1,12 @@
|
|
1
|
+
from datetime import datetime
|
2
|
+
|
3
|
+
from sqlalchemy import Column
|
4
|
+
from sqlalchemy.types import DateTime
|
1
5
|
from sqlmodel import Field
|
2
6
|
from sqlmodel import SQLModel
|
3
7
|
|
8
|
+
from fractal_server.utils import get_timestamp
|
9
|
+
|
4
10
|
|
5
11
|
class LinkUserGroup(SQLModel, table=True):
|
6
12
|
"""
|
@@ -9,3 +15,8 @@ class LinkUserGroup(SQLModel, table=True):
|
|
9
15
|
|
10
16
|
group_id: int = Field(foreign_key="usergroup.id", primary_key=True)
|
11
17
|
user_id: int = Field(foreign_key="user_oauth.id", primary_key=True)
|
18
|
+
|
19
|
+
timestamp_created: datetime = Field(
|
20
|
+
default_factory=get_timestamp,
|
21
|
+
sa_column=Column(DateTime(timezone=True), nullable=False),
|
22
|
+
)
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/task_group.py
RENAMED
@@ -31,12 +31,17 @@ logger = set_logger(__name__)
|
|
31
31
|
async def get_task_group_list(
|
32
32
|
user: UserOAuth = Depends(current_active_user),
|
33
33
|
db: AsyncSession = Depends(get_async_db),
|
34
|
+
only_active: bool = False,
|
35
|
+
only_owner: bool = False,
|
34
36
|
) -> list[TaskGroupReadV2]:
|
35
37
|
"""
|
36
38
|
Get all accessible TaskGroups
|
37
39
|
"""
|
38
|
-
|
39
|
-
|
40
|
+
|
41
|
+
if only_owner:
|
42
|
+
condition = TaskGroupV2.user_id == user.id
|
43
|
+
else:
|
44
|
+
condition = or_(
|
40
45
|
TaskGroupV2.user_id == user.id,
|
41
46
|
TaskGroupV2.user_group_id.in_(
|
42
47
|
select(LinkUserGroup.group_id).where(
|
@@ -44,7 +49,10 @@ async def get_task_group_list(
|
|
44
49
|
)
|
45
50
|
),
|
46
51
|
)
|
47
|
-
)
|
52
|
+
stm = select(TaskGroupV2).where(condition)
|
53
|
+
if only_active:
|
54
|
+
stm = stm.where(TaskGroupV2.active)
|
55
|
+
|
48
56
|
res = await db.execute(stm)
|
49
57
|
task_groups = res.scalars().all()
|
50
58
|
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/_aux_auth.py
RENAMED
@@ -1,6 +1,7 @@
|
|
1
1
|
from fastapi import HTTPException
|
2
2
|
from fastapi import status
|
3
3
|
from sqlalchemy.ext.asyncio import AsyncSession
|
4
|
+
from sqlmodel import asc
|
4
5
|
from sqlmodel import select
|
5
6
|
|
6
7
|
from fractal_server.app.models.linkusergroup import LinkUserGroup
|
@@ -9,58 +10,58 @@ from fractal_server.app.models.security import UserOAuth
|
|
9
10
|
from fractal_server.app.schemas.user import UserRead
|
10
11
|
from fractal_server.app.schemas.user_group import UserGroupRead
|
11
12
|
from fractal_server.app.security import FRACTAL_DEFAULT_GROUP_NAME
|
13
|
+
from fractal_server.logger import set_logger
|
12
14
|
|
15
|
+
logger = set_logger(__name__)
|
13
16
|
|
14
|
-
|
17
|
+
|
18
|
+
async def _get_single_user_with_groups(
|
15
19
|
user: UserOAuth,
|
16
20
|
db: AsyncSession,
|
17
21
|
) -> UserRead:
|
18
22
|
"""
|
19
|
-
Enrich a user object by filling its `
|
23
|
+
Enrich a user object by filling its `group_ids_names` attribute.
|
20
24
|
|
21
25
|
Arguments:
|
22
26
|
user: The current `UserOAuth` object
|
23
27
|
db: Async db session
|
24
28
|
|
25
29
|
Returns:
|
26
|
-
A `UserRead` object with `
|
30
|
+
A `UserRead` object with `group_ids_names` dict
|
27
31
|
"""
|
28
32
|
stm_groups = (
|
29
33
|
select(UserGroup)
|
30
34
|
.join(LinkUserGroup)
|
31
|
-
.where(LinkUserGroup.user_id ==
|
35
|
+
.where(LinkUserGroup.user_id == user.id)
|
36
|
+
.order_by(asc(LinkUserGroup.timestamp_created))
|
32
37
|
)
|
33
38
|
res = await db.execute(stm_groups)
|
34
39
|
groups = res.scalars().unique().all()
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
+
group_ids_names = [(group.id, group.name) for group in groups]
|
41
|
+
|
42
|
+
# Check that Fractal Default Group is the first of the list. If not, fix.
|
43
|
+
index = next(
|
44
|
+
(
|
45
|
+
i
|
46
|
+
for i, group_tuple in enumerate(group_ids_names)
|
47
|
+
if group_tuple[1] == FRACTAL_DEFAULT_GROUP_NAME
|
48
|
+
),
|
49
|
+
None,
|
40
50
|
)
|
51
|
+
if index is None:
|
52
|
+
logger.warning(
|
53
|
+
f"User {user.id} not in "
|
54
|
+
f"default UserGroup '{FRACTAL_DEFAULT_GROUP_NAME}'"
|
55
|
+
)
|
56
|
+
elif index != 0:
|
57
|
+
default_group = group_ids_names.pop(index)
|
58
|
+
group_ids_names.insert(0, default_group)
|
59
|
+
else:
|
60
|
+
pass
|
41
61
|
|
42
|
-
|
43
|
-
async def _get_single_user_with_group_ids(
|
44
|
-
user: UserOAuth,
|
45
|
-
db: AsyncSession,
|
46
|
-
) -> UserRead:
|
47
|
-
"""
|
48
|
-
Enrich a user object by filling its `group_ids` attribute.
|
49
|
-
|
50
|
-
Arguments:
|
51
|
-
user: The current `UserOAuth` object
|
52
|
-
db: Async db session
|
53
|
-
|
54
|
-
Returns:
|
55
|
-
A `UserRead` object with `group_ids` set
|
56
|
-
"""
|
57
|
-
stm_links = select(LinkUserGroup).where(LinkUserGroup.user_id == user.id)
|
58
|
-
res = await db.execute(stm_links)
|
59
|
-
links = res.scalars().unique().all()
|
60
|
-
group_ids = [link.group_id for link in links]
|
61
62
|
return UserRead(
|
62
63
|
**user.model_dump(),
|
63
|
-
|
64
|
+
group_ids_names=group_ids_names,
|
64
65
|
oauth_accounts=user.oauth_accounts,
|
65
66
|
)
|
66
67
|
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/current_user.py
RENAMED
@@ -13,7 +13,7 @@ from ...schemas.user import UserRead
|
|
13
13
|
from ...schemas.user import UserUpdate
|
14
14
|
from ...schemas.user import UserUpdateStrict
|
15
15
|
from ..aux.validate_user_settings import verify_user_has_settings
|
16
|
-
from ._aux_auth import
|
16
|
+
from ._aux_auth import _get_single_user_with_groups
|
17
17
|
from fractal_server.app.models import LinkUserGroup
|
18
18
|
from fractal_server.app.models import UserGroup
|
19
19
|
from fractal_server.app.models import UserOAuth
|
@@ -28,15 +28,15 @@ router_current_user = APIRouter()
|
|
28
28
|
|
29
29
|
@router_current_user.get("/current-user/", response_model=UserRead)
|
30
30
|
async def get_current_user(
|
31
|
-
|
31
|
+
group_ids_names: bool = False,
|
32
32
|
user: UserOAuth = Depends(current_active_user),
|
33
33
|
db: AsyncSession = Depends(get_async_db),
|
34
34
|
):
|
35
35
|
"""
|
36
36
|
Return current user
|
37
37
|
"""
|
38
|
-
if
|
39
|
-
user_with_groups = await
|
38
|
+
if group_ids_names is True:
|
39
|
+
user_with_groups = await _get_single_user_with_groups(user, db)
|
40
40
|
return user_with_groups
|
41
41
|
else:
|
42
42
|
return user
|
@@ -65,7 +65,7 @@ async def patch_current_user(
|
|
65
65
|
patched_user = await db.get(
|
66
66
|
UserOAuth, validated_user.id, populate_existing=True
|
67
67
|
)
|
68
|
-
patched_user_with_groups = await
|
68
|
+
patched_user_with_groups = await _get_single_user_with_groups(
|
69
69
|
patched_user, db
|
70
70
|
)
|
71
71
|
return patched_user_with_groups
|
@@ -2,7 +2,6 @@ from fastapi import APIRouter
|
|
2
2
|
|
3
3
|
from .current_user import router_current_user
|
4
4
|
from .group import router_group
|
5
|
-
from .group_names import router_group_names
|
6
5
|
from .login import router_login
|
7
6
|
from .oauth import router_oauth
|
8
7
|
from .register import router_register
|
@@ -13,7 +12,6 @@ router_auth = APIRouter()
|
|
13
12
|
router_auth.include_router(router_register)
|
14
13
|
router_auth.include_router(router_current_user)
|
15
14
|
router_auth.include_router(router_login)
|
16
|
-
router_auth.include_router(router_group_names)
|
17
15
|
router_auth.include_router(router_users)
|
18
16
|
router_auth.include_router(router_group)
|
19
17
|
router_auth.include_router(router_oauth)
|
@@ -20,7 +20,7 @@ from ...schemas.user import UserRead
|
|
20
20
|
from ...schemas.user import UserUpdate
|
21
21
|
from ...schemas.user import UserUpdateWithNewGroupIds
|
22
22
|
from ..aux.validate_user_settings import verify_user_has_settings
|
23
|
-
from ._aux_auth import
|
23
|
+
from ._aux_auth import _get_single_user_with_groups
|
24
24
|
from fractal_server.app.models import LinkUserGroup
|
25
25
|
from fractal_server.app.models import UserGroup
|
26
26
|
from fractal_server.app.models import UserOAuth
|
@@ -41,13 +41,14 @@ logger = set_logger(__name__)
|
|
41
41
|
@router_users.get("/users/{user_id}/", response_model=UserRead)
|
42
42
|
async def get_user(
|
43
43
|
user_id: int,
|
44
|
-
|
44
|
+
group_ids_names: bool = True,
|
45
45
|
superuser: UserOAuth = Depends(current_active_superuser),
|
46
46
|
db: AsyncSession = Depends(get_async_db),
|
47
47
|
) -> UserRead:
|
48
48
|
user = await _user_or_404(user_id, db)
|
49
|
-
if
|
50
|
-
|
49
|
+
if group_ids_names:
|
50
|
+
user_with_groups = await _get_single_user_with_groups(user, db)
|
51
|
+
return user_with_groups
|
51
52
|
return user
|
52
53
|
|
53
54
|
|
@@ -163,12 +164,12 @@ async def patch_user(
|
|
163
164
|
# Nothing to do, just continue
|
164
165
|
patched_user = user_to_patch
|
165
166
|
|
166
|
-
# Enrich user object with `
|
167
|
-
|
167
|
+
# Enrich user object with `group_ids_names` attribute
|
168
|
+
patched_user_with_groups = await _get_single_user_with_groups(
|
168
169
|
patched_user, db
|
169
170
|
)
|
170
171
|
|
171
|
-
return
|
172
|
+
return patched_user_with_groups
|
172
173
|
|
173
174
|
|
174
175
|
@router_users.get("/users/", response_model=list[UserRead])
|
@@ -41,8 +41,7 @@ class UserRead(schemas.BaseUser[int]):
|
|
41
41
|
"""
|
42
42
|
|
43
43
|
username: Optional[str]
|
44
|
-
|
45
|
-
group_ids: Optional[list[int]] = None
|
44
|
+
group_ids_names: Optional[list[tuple[int, str]]] = None
|
46
45
|
oauth_accounts: list[OAuthAccountRead]
|
47
46
|
|
48
47
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
"""LinkUserGroup.timestamp_created
|
2
|
+
|
3
|
+
Revision ID: df7cc3501bf7
|
4
|
+
Revises: 7cf1baae8fb4
|
5
|
+
Create Date: 2024-10-03 13:55:53.272269
|
6
|
+
|
7
|
+
"""
|
8
|
+
from datetime import datetime
|
9
|
+
from datetime import timezone
|
10
|
+
|
11
|
+
import sqlalchemy as sa
|
12
|
+
from alembic import op
|
13
|
+
|
14
|
+
|
15
|
+
# revision identifiers, used by Alembic.
|
16
|
+
revision = "df7cc3501bf7"
|
17
|
+
down_revision = "7cf1baae8fb4"
|
18
|
+
branch_labels = None
|
19
|
+
depends_on = None
|
20
|
+
|
21
|
+
|
22
|
+
def upgrade() -> None:
|
23
|
+
with op.batch_alter_table("linkusergroup", schema=None) as batch_op:
|
24
|
+
batch_op.add_column(
|
25
|
+
sa.Column(
|
26
|
+
"timestamp_created",
|
27
|
+
sa.DateTime(timezone=True),
|
28
|
+
nullable=False,
|
29
|
+
server_default=str(datetime(2000, 1, 1, tzinfo=timezone.utc)),
|
30
|
+
)
|
31
|
+
)
|
32
|
+
|
33
|
+
with op.batch_alter_table("project", schema=None) as batch_op:
|
34
|
+
batch_op.alter_column("timestamp_created", server_default=None)
|
35
|
+
|
36
|
+
|
37
|
+
def downgrade() -> None:
|
38
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
39
|
+
with op.batch_alter_table("linkusergroup", schema=None) as batch_op:
|
40
|
+
batch_op.drop_column("timestamp_created")
|
41
|
+
|
42
|
+
# ### end Alembic commands ###
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "fractal-server"
|
3
|
-
version = "2.7.
|
3
|
+
version = "2.7.0a1"
|
4
4
|
description = "Server component of the Fractal analytics platform"
|
5
5
|
authors = [
|
6
6
|
"Tommaso Comparin <tommaso.comparin@exact-lab.it>",
|
@@ -92,7 +92,7 @@ filterwarnings = [
|
|
92
92
|
]
|
93
93
|
|
94
94
|
[tool.bumpver]
|
95
|
-
current_version = "2.7.
|
95
|
+
current_version = "2.7.0a1"
|
96
96
|
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
|
97
97
|
commit_message = "bump version {old_version} -> {new_version}"
|
98
98
|
commit = true
|
@@ -1 +0,0 @@
|
|
1
|
-
__VERSION__ = "2.7.0a0"
|
@@ -1,34 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Definition `/auth/group-names/` endpoints
|
3
|
-
"""
|
4
|
-
from fastapi import APIRouter
|
5
|
-
from fastapi import Depends
|
6
|
-
from fastapi import status
|
7
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
8
|
-
from sqlmodel import select
|
9
|
-
|
10
|
-
from . import current_active_user
|
11
|
-
from ...db import get_async_db
|
12
|
-
from fractal_server.app.models import UserGroup
|
13
|
-
from fractal_server.app.models import UserOAuth
|
14
|
-
|
15
|
-
router_group_names = APIRouter()
|
16
|
-
|
17
|
-
|
18
|
-
@router_group_names.get(
|
19
|
-
"/group-names/", response_model=list[str], status_code=status.HTTP_200_OK
|
20
|
-
)
|
21
|
-
async def get_list_user_group_names(
|
22
|
-
user: UserOAuth = Depends(current_active_user),
|
23
|
-
db: AsyncSession = Depends(get_async_db),
|
24
|
-
) -> list[str]:
|
25
|
-
"""
|
26
|
-
Return the available group names.
|
27
|
-
|
28
|
-
This endpoint is not restricted to superusers.
|
29
|
-
"""
|
30
|
-
stm_all_groups = select(UserGroup)
|
31
|
-
res = await db.execute(stm_all_groups)
|
32
|
-
groups = res.scalars().all()
|
33
|
-
group_names = [group.name for group in groups]
|
34
|
-
return group_names
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/linkuserproject.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/user_settings.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.7.0a0 → fractal_server-2.7.0a1}/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
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/models/v2/workflowtask.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/admin/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/__init__.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/_aux_functions.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/dataset.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/project.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/workflow.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v1/workflowtask.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/__init__.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/_aux_functions.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/dataset.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/images.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/project.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/status.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/submit.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/workflow.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/api/v2/workflowtask.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/routes/auth/register.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.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/compress_folder.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/executors/__init__.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
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/extract_archive.py
RENAMED
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/run_subprocess.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_local/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_local/executor.py
RENAMED
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/_slurm/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fractal_server-2.7.0a0 → fractal_server-2.7.0a1}/fractal_server/app/runner/v1/handle_failed_job.py
RENAMED
File without changes
|