fractal-server 2.18.0a0__tar.gz → 2.18.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.18.0a0 → fractal_server-2.18.0a1}/PKG-INFO +1 -1
- fractal_server-2.18.0a1/fractal_server/__init__.py +1 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/accounting.py +2 -2
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/job.py +2 -2
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/task.py +1 -1
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/task_group.py +82 -6
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/sharing.py +1 -2
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/workflowtask.py +5 -4
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/pyproject.toml +2 -2
- fractal_server-2.18.0a0/fractal_server/__init__.py +0 -1
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/LICENSE +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/README.md +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/__main__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/alembic.ini +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/db/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/linkusergroup.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/linkuserproject.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/security.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/accounting.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/dataset.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/history.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/job.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/profile.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/project.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/resource.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/task.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/task_group.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/workflow.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/workflowtask.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/_aux_functions.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/impersonate.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/profile.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/resource.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/sharing.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/task_group_lifecycle.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_functions.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_functions_history.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_functions_sharing.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_functions_task_version_update.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_functions_tasks.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/dataset.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/history.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/images.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/job.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/pre_submission_checks.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/project.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/status_legacy.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/submit.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_collection.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_collection_custom.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_collection_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_group.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_group_lifecycle.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_version_update.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/workflow.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/workflow_import.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/_aux_auth.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/current_user.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/group.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/login.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/oauth.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/register.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/router.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/users.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/aux/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/aux/_job.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/aux/_runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/aux/validate_user_profile.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/pagination.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/user.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/user_group.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/accounting.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/dataset.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/dumps.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/history.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/job.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/manifest.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/profile.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/project.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/resource.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/sharing.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/status_legacy.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/task.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/task_collection.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/task_group.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/workflow.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/workflowtask.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/security/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/security/signup_email.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/shutdown.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_data.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_database.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_email.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_main.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_oauth.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_settings_config.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/data_migrations/README.md +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/data_migrations/tools.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/exceptions.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/gunicorn_fractal.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/images/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/images/models.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/images/status_tools.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/images/tools.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/logger.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/main.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/env.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/naming_convention.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/034a469ec2eb_task_groups.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/0f5f85bb2ae7_add_pre_pinned_packages.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/19eca0dd47a9_user_settings_project_dir.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/1a83a5260664_rename.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/1eac13a26c83_drop_v1_tables.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/316140ff7ee1_remove_usersettings_cache_dir.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/40d6d6511b20_add_index_to_history_models.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/45fbb391d7af_make_resource_id_fk_non_nullable.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/47351f8c7ebc_drop_dataset_filters.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/49d0856e9569_drop_table.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/501961cfcd85_remove_link_between_v1_and_v2_tasks_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/5bf02391cfef_v2.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/7673fe18c05d_remove_project_dir_server_default.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/791ce783d3d8_add_indices.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/969d84257cac_add_historyrun_task_id.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/981d588fe248_add_executor_error_log.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/9c5ae74c9b98_add_user_settings_table.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/9db60297b8b2_set_ondelete.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/af1ef1c83c9b_add_accounting_tables.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/af8673379a5c_drop_old_filter_columns.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/b1e7f7a1ff71_task_group_for_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/b3ffb095f973_json_to_jsonb.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/bc0e8b3327a7_project_sharing.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/c90a7c76e996_job_id_in_history_run.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/caba9fb1ea5e_drop_useroauth_user_settings_id.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/d256a7379ab8_taskgroup_activity_and_venv_info_to_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/da2cb2ac4255_user_group_viewer_paths.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/db09233ad13a_split_filters_and_keep_old_columns.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/e0e717ae2f26_delete_linkuserproject_ondelete_project.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/e81103413827_add_job_type_filters.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/f37aceb45062_make_historyunit_logfile_required.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/versions/fbce16ff4e47_new_history_items.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/py.typed +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/components.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/config/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/config/_local.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/config/_slurm.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/config/slurm_mem_to_MB.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/exceptions.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/base_runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/call_command_wrapper.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/local/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/local/get_local_config.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/local/runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/_batching.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/_job_states.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/base_slurm_runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/get_slurm_config.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/remote.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/slurm_config.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_common/slurm_job_task_models.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_ssh/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_ssh/run_subprocess.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_ssh/runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_ssh/tar_commands.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_sudo/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_sudo/_subprocess_run_as_user.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/executors/slurm_sudo/runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/filenames.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/set_start_and_last_task_index.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/task_files.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/_local.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/_slurm_ssh.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/_slurm_sudo.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/db_tools.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/deduplicate_list.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/merge_outputs.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/runner.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/runner_functions.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/submit_workflow.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/v2/task_interface.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/runner/versions.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/ssh/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/ssh/_fabric.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/string_tools.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/syringe.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/config/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/config/_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/config/_python.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/utils.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/_utils.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/collect.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/collect_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/deactivate.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/deactivate_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/delete.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/reactivate.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/local/reactivate_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/_pixi_slurm_ssh.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/_utils.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/collect.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/collect_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/deactivate.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/deactivate_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/delete.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/reactivate.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/ssh/reactivate_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/1_create_venv.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/2_pip_install.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/3_pip_freeze.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/4_pip_show.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/5_get_venv_size_and_file_number.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/pixi_1_extract.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/pixi_2_install.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/templates/pixi_3_post_install.sh +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/utils_background.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/utils_database.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/utils_package_names.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/utils_pixi.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/utils_python_interpreter.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/tasks/v2/utils_templates.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/types/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/types/validators/__init__.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/types/validators/_common_validators.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/types/validators/_filter_validators.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/types/validators/_workflow_task_arguments_validators.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/urls.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/utils.py +0 -0
- {fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/zip_tools.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__VERSION__ = "2.18.0a1"
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/accounting.py
RENAMED
|
@@ -67,11 +67,11 @@ async def query_accounting(
|
|
|
67
67
|
res = await db.execute(stm)
|
|
68
68
|
records = res.scalars().all()
|
|
69
69
|
|
|
70
|
-
return
|
|
70
|
+
return dict(
|
|
71
71
|
total_count=total_count,
|
|
72
72
|
page_size=page_size,
|
|
73
73
|
current_page=page,
|
|
74
|
-
items=
|
|
74
|
+
items=records,
|
|
75
75
|
)
|
|
76
76
|
|
|
77
77
|
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/job.py
RENAMED
|
@@ -146,11 +146,11 @@ async def view_job(
|
|
|
146
146
|
for job in job_list:
|
|
147
147
|
setattr(job, "log", None)
|
|
148
148
|
|
|
149
|
-
return
|
|
149
|
+
return dict(
|
|
150
150
|
total_count=total_count,
|
|
151
151
|
page_size=page_size,
|
|
152
152
|
current_page=page,
|
|
153
|
-
items=
|
|
153
|
+
items=job_list,
|
|
154
154
|
)
|
|
155
155
|
|
|
156
156
|
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/task_group.py
RENAMED
|
@@ -5,6 +5,7 @@ from fastapi import status
|
|
|
5
5
|
from pydantic.types import AwareDatetime
|
|
6
6
|
from sqlalchemy.sql.operators import is_
|
|
7
7
|
from sqlalchemy.sql.operators import is_not
|
|
8
|
+
from sqlmodel import func
|
|
8
9
|
from sqlmodel import select
|
|
9
10
|
|
|
10
11
|
from fractal_server.app.db import AsyncSession
|
|
@@ -16,6 +17,9 @@ from fractal_server.app.routes.auth import current_superuser_act
|
|
|
16
17
|
from fractal_server.app.routes.auth._aux_auth import (
|
|
17
18
|
_verify_user_belongs_to_group,
|
|
18
19
|
)
|
|
20
|
+
from fractal_server.app.routes.pagination import PaginationRequest
|
|
21
|
+
from fractal_server.app.routes.pagination import PaginationResponse
|
|
22
|
+
from fractal_server.app.routes.pagination import get_pagination_params
|
|
19
23
|
from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
|
|
20
24
|
from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
|
|
21
25
|
from fractal_server.app.schemas.v2 import TaskGroupActivityV2Read
|
|
@@ -29,7 +33,9 @@ router = APIRouter()
|
|
|
29
33
|
logger = set_logger(__name__)
|
|
30
34
|
|
|
31
35
|
|
|
32
|
-
@router.get(
|
|
36
|
+
@router.get(
|
|
37
|
+
"/activity/", response_model=PaginationResponse[TaskGroupActivityV2Read]
|
|
38
|
+
)
|
|
33
39
|
async def get_task_group_activity_list(
|
|
34
40
|
task_group_activity_id: int | None = None,
|
|
35
41
|
user_id: int | None = None,
|
|
@@ -38,30 +44,65 @@ async def get_task_group_activity_list(
|
|
|
38
44
|
status: TaskGroupActivityStatusV2 | None = None,
|
|
39
45
|
action: TaskGroupActivityActionV2 | None = None,
|
|
40
46
|
timestamp_started_min: AwareDatetime | None = None,
|
|
47
|
+
pagination: PaginationRequest = Depends(get_pagination_params),
|
|
41
48
|
superuser: UserOAuth = Depends(current_superuser_act),
|
|
42
49
|
db: AsyncSession = Depends(get_async_db),
|
|
43
|
-
) ->
|
|
50
|
+
) -> PaginationResponse[TaskGroupActivityV2Read]:
|
|
51
|
+
# Assign pagination parameters
|
|
52
|
+
page = pagination.page
|
|
53
|
+
page_size = pagination.page_size
|
|
54
|
+
|
|
44
55
|
stm = select(TaskGroupActivityV2)
|
|
56
|
+
stm_count = select(func.count(TaskGroupActivityV2.id))
|
|
45
57
|
if task_group_activity_id is not None:
|
|
46
58
|
stm = stm.where(TaskGroupActivityV2.id == task_group_activity_id)
|
|
59
|
+
stm_count = stm_count.where(
|
|
60
|
+
TaskGroupActivityV2.id == task_group_activity_id
|
|
61
|
+
)
|
|
47
62
|
if user_id:
|
|
48
63
|
stm = stm.where(TaskGroupActivityV2.user_id == user_id)
|
|
64
|
+
stm_count = stm_count.where(TaskGroupActivityV2.user_id == user_id)
|
|
49
65
|
if taskgroupv2_id:
|
|
50
66
|
stm = stm.where(TaskGroupActivityV2.taskgroupv2_id == taskgroupv2_id)
|
|
67
|
+
stm_count = stm_count.where(
|
|
68
|
+
TaskGroupActivityV2.taskgroupv2_id == taskgroupv2_id
|
|
69
|
+
)
|
|
51
70
|
if pkg_name:
|
|
52
71
|
stm = stm.where(TaskGroupActivityV2.pkg_name.icontains(pkg_name))
|
|
72
|
+
stm_count = stm_count.where(
|
|
73
|
+
TaskGroupActivityV2.pkg_name.icontains(pkg_name)
|
|
74
|
+
)
|
|
53
75
|
if status:
|
|
54
76
|
stm = stm.where(TaskGroupActivityV2.status == status)
|
|
77
|
+
stm_count = stm_count.where(TaskGroupActivityV2.status == status)
|
|
55
78
|
if action:
|
|
56
79
|
stm = stm.where(TaskGroupActivityV2.action == action)
|
|
80
|
+
stm_count = stm_count.where(TaskGroupActivityV2.action == action)
|
|
57
81
|
if timestamp_started_min is not None:
|
|
58
82
|
stm = stm.where(
|
|
59
83
|
TaskGroupActivityV2.timestamp_started >= timestamp_started_min
|
|
60
84
|
)
|
|
85
|
+
stm_count = stm_count.where(
|
|
86
|
+
TaskGroupActivityV2.timestamp_started >= timestamp_started_min
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
# Find total number of elements
|
|
90
|
+
res_total_count = await db.execute(stm_count)
|
|
91
|
+
total_count = res_total_count.scalar()
|
|
92
|
+
if page_size is None:
|
|
93
|
+
page_size = total_count
|
|
94
|
+
else:
|
|
95
|
+
stm = stm.offset((page - 1) * page_size).limit(page_size)
|
|
61
96
|
|
|
62
97
|
res = await db.execute(stm)
|
|
63
98
|
activities = res.scalars().all()
|
|
64
|
-
|
|
99
|
+
|
|
100
|
+
return dict(
|
|
101
|
+
total_count=total_count,
|
|
102
|
+
page_size=page_size,
|
|
103
|
+
current_page=page,
|
|
104
|
+
items=activities,
|
|
105
|
+
)
|
|
65
106
|
|
|
66
107
|
|
|
67
108
|
@router.get("/{task_group_id}/", response_model=TaskGroupReadSuperuser)
|
|
@@ -79,7 +120,7 @@ async def query_task_group(
|
|
|
79
120
|
return task_group
|
|
80
121
|
|
|
81
122
|
|
|
82
|
-
@router.get("/", response_model=
|
|
123
|
+
@router.get("/", response_model=PaginationResponse[TaskGroupReadSuperuser])
|
|
83
124
|
async def query_task_group_list(
|
|
84
125
|
user_id: int | None = None,
|
|
85
126
|
user_group_id: int | None = None,
|
|
@@ -90,10 +131,16 @@ async def query_task_group_list(
|
|
|
90
131
|
timestamp_last_used_min: AwareDatetime | None = None,
|
|
91
132
|
timestamp_last_used_max: AwareDatetime | None = None,
|
|
92
133
|
resource_id: int | None = None,
|
|
134
|
+
pagination: PaginationRequest = Depends(get_pagination_params),
|
|
93
135
|
user: UserOAuth = Depends(current_superuser_act),
|
|
94
136
|
db: AsyncSession = Depends(get_async_db),
|
|
95
|
-
) ->
|
|
137
|
+
) -> PaginationResponse[TaskGroupReadSuperuser]:
|
|
138
|
+
# Assign pagination parameters
|
|
139
|
+
page = pagination.page
|
|
140
|
+
page_size = pagination.page_size
|
|
141
|
+
|
|
96
142
|
stm = select(TaskGroupV2)
|
|
143
|
+
stm_count = select(func.count(TaskGroupV2.id))
|
|
97
144
|
|
|
98
145
|
if user_group_id is not None and private is True:
|
|
99
146
|
raise HTTPException(
|
|
@@ -105,37 +152,66 @@ async def query_task_group_list(
|
|
|
105
152
|
)
|
|
106
153
|
if user_id is not None:
|
|
107
154
|
stm = stm.where(TaskGroupV2.user_id == user_id)
|
|
155
|
+
stm_count = stm_count.where(TaskGroupV2.user_id == user_id)
|
|
108
156
|
if user_group_id is not None:
|
|
109
157
|
stm = stm.where(TaskGroupV2.user_group_id == user_group_id)
|
|
158
|
+
stm_count = stm_count.where(TaskGroupV2.user_group_id == user_group_id)
|
|
110
159
|
if private is not None:
|
|
111
160
|
if private is True:
|
|
112
161
|
stm = stm.where(is_(TaskGroupV2.user_group_id, None))
|
|
162
|
+
stm_count = stm_count.where(is_(TaskGroupV2.user_group_id, None))
|
|
113
163
|
else:
|
|
114
164
|
stm = stm.where(is_not(TaskGroupV2.user_group_id, None))
|
|
165
|
+
stm_count = stm_count.where(is_not(TaskGroupV2.user_group_id, None))
|
|
115
166
|
if active is not None:
|
|
116
167
|
if active is True:
|
|
117
168
|
stm = stm.where(is_(TaskGroupV2.active, True))
|
|
169
|
+
stm_count = stm_count.where(is_(TaskGroupV2.active, True))
|
|
118
170
|
else:
|
|
119
171
|
stm = stm.where(is_(TaskGroupV2.active, False))
|
|
172
|
+
stm_count = stm_count.where(is_(TaskGroupV2.active, False))
|
|
120
173
|
if origin is not None:
|
|
121
174
|
stm = stm.where(TaskGroupV2.origin == origin)
|
|
175
|
+
stm_count = stm_count.where(TaskGroupV2.origin == origin)
|
|
122
176
|
if pkg_name is not None:
|
|
123
177
|
stm = stm.where(TaskGroupV2.pkg_name.icontains(pkg_name))
|
|
178
|
+
stm_count = stm_count.where(TaskGroupV2.pkg_name.icontains(pkg_name))
|
|
124
179
|
if timestamp_last_used_min is not None:
|
|
125
180
|
stm = stm.where(
|
|
126
181
|
TaskGroupV2.timestamp_last_used >= timestamp_last_used_min
|
|
127
182
|
)
|
|
183
|
+
stm_count = stm_count.where(
|
|
184
|
+
TaskGroupV2.timestamp_last_used >= timestamp_last_used_min
|
|
185
|
+
)
|
|
128
186
|
if timestamp_last_used_max is not None:
|
|
129
187
|
stm = stm.where(
|
|
130
188
|
TaskGroupV2.timestamp_last_used <= timestamp_last_used_max
|
|
131
189
|
)
|
|
190
|
+
stm_count = stm_count.where(
|
|
191
|
+
TaskGroupV2.timestamp_last_used <= timestamp_last_used_max
|
|
192
|
+
)
|
|
132
193
|
if resource_id is not None:
|
|
133
194
|
stm = stm.where(TaskGroupV2.resource_id == resource_id)
|
|
195
|
+
stm_count = stm_count.where(TaskGroupV2.resource_id == resource_id)
|
|
196
|
+
|
|
197
|
+
# Find total number of elements
|
|
198
|
+
res_total_count = await db.execute(stm_count)
|
|
199
|
+
total_count = res_total_count.scalar()
|
|
200
|
+
if page_size is None:
|
|
201
|
+
page_size = total_count
|
|
202
|
+
else:
|
|
203
|
+
stm = stm.offset((page - 1) * page_size).limit(page_size)
|
|
134
204
|
|
|
135
205
|
stm = stm.order_by(TaskGroupV2.id)
|
|
136
206
|
res = await db.execute(stm)
|
|
137
207
|
task_groups_list = res.scalars().all()
|
|
138
|
-
|
|
208
|
+
|
|
209
|
+
return dict(
|
|
210
|
+
total_count=total_count,
|
|
211
|
+
page_size=page_size,
|
|
212
|
+
current_page=page,
|
|
213
|
+
items=task_groups_list,
|
|
214
|
+
)
|
|
139
215
|
|
|
140
216
|
|
|
141
217
|
@router.patch("/{task_group_id}/", response_model=TaskGroupReadSuperuser)
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/sharing.py
RENAMED
|
@@ -243,9 +243,8 @@ async def get_access_info(
|
|
|
243
243
|
UserOAuth.id == LinkUserProjectV2.user_id,
|
|
244
244
|
)
|
|
245
245
|
.where(LinkUserProjectV2.is_owner.is_(True))
|
|
246
|
-
.where(LinkUserProjectV2.project_id ==
|
|
246
|
+
.where(LinkUserProjectV2.project_id == project_id)
|
|
247
247
|
.scalar_subquery()
|
|
248
|
-
.correlate(LinkUserProjectV2)
|
|
249
248
|
),
|
|
250
249
|
)
|
|
251
250
|
.where(LinkUserProjectV2.project_id == project_id)
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/workflowtask.py
RENAMED
|
@@ -69,13 +69,14 @@ async def create_workflowtask(
|
|
|
69
69
|
require_active=True,
|
|
70
70
|
)
|
|
71
71
|
except HTTPException as e:
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
raise (
|
|
73
|
+
HTTPException(
|
|
74
74
|
status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
|
|
75
75
|
detail="The task must be accessible to the project owner.",
|
|
76
76
|
)
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
if e.status_code == 403
|
|
78
|
+
else e
|
|
79
|
+
)
|
|
79
80
|
|
|
80
81
|
task = await _get_task_read_access(
|
|
81
82
|
task_id=task_id, user_id=user.id, db=db, require_active=True
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fractal-server"
|
|
3
|
-
version = "2.18.
|
|
3
|
+
version = "2.18.0a1"
|
|
4
4
|
description = "Backend component of the Fractal analytics platform"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name="Tommaso Comparin", email="tommaso.comparin@exact-lab.it" },
|
|
@@ -95,7 +95,7 @@ filterwarnings = [
|
|
|
95
95
|
markers = ["container", "ssh", "fails_on_macos", "oauth"]
|
|
96
96
|
|
|
97
97
|
[tool.bumpver]
|
|
98
|
-
current_version = "2.18.
|
|
98
|
+
current_version = "2.18.0a1"
|
|
99
99
|
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
|
|
100
100
|
commit_message = "bump version {old_version} -> {new_version}"
|
|
101
101
|
commit = true
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__VERSION__ = "2.18.0a0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/linkusergroup.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/linkuserproject.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/__init__.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/accounting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/resource.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/task_group.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/workflow.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/models/v2/workflowtask.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/__init__.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/profile.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/resource.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/admin/v2/sharing.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/__init__.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/__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
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/dataset.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/history.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/images.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/project.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/submit.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/task_group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/api/v2/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/__init__.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/_aux_auth.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/current_user.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/register.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/auth/router.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/aux/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/routes/aux/_runner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/user_group.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/__init__.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/accounting.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/history.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/manifest.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/profile.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/project.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/resource.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/sharing.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/status_legacy.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/task_collection.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/task_group.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/workflow.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/schemas/v2/workflowtask.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/app/security/signup_email.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
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/config/_settings_config.py
RENAMED
|
File without changes
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/data_migrations/README.md
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
|
{fractal_server-2.18.0a0 → fractal_server-2.18.0a1}/fractal_server/migrations/naming_convention.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
|