fractal-server 2.17.1a0__py3-none-any.whl → 2.17.2__py3-none-any.whl
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/__init__.py +1 -1
- fractal_server/__main__.py +19 -18
- fractal_server/app/db/__init__.py +3 -3
- fractal_server/app/models/__init__.py +1 -1
- fractal_server/app/models/linkuserproject.py +3 -1
- fractal_server/app/models/security.py +22 -17
- fractal_server/app/models/v2/__init__.py +3 -1
- fractal_server/app/models/v2/accounting.py +9 -1
- fractal_server/app/models/v2/dataset.py +5 -1
- fractal_server/app/models/v2/history.py +15 -1
- fractal_server/app/models/v2/job.py +4 -0
- fractal_server/app/models/v2/profile.py +29 -0
- fractal_server/app/models/v2/project.py +5 -14
- fractal_server/app/models/v2/resource.py +4 -0
- fractal_server/app/models/v2/task_group.py +5 -7
- fractal_server/app/models/v2/workflow.py +2 -1
- fractal_server/app/routes/admin/v2/__init__.py +1 -2
- fractal_server/app/routes/admin/v2/accounting.py +1 -1
- fractal_server/app/routes/admin/v2/job.py +9 -9
- fractal_server/app/routes/admin/v2/profile.py +3 -2
- fractal_server/app/routes/admin/v2/resource.py +5 -5
- fractal_server/app/routes/admin/v2/task.py +28 -18
- fractal_server/app/routes/admin/v2/task_group.py +0 -1
- fractal_server/app/routes/admin/v2/task_group_lifecycle.py +1 -2
- fractal_server/app/routes/api/__init__.py +1 -0
- fractal_server/app/routes/api/v2/__init__.py +5 -6
- fractal_server/app/routes/api/v2/_aux_functions.py +70 -63
- fractal_server/app/routes/api/v2/_aux_functions_history.py +43 -20
- fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +2 -4
- fractal_server/app/routes/api/v2/_aux_functions_tasks.py +5 -7
- fractal_server/app/routes/api/v2/_aux_task_group_disambiguation.py +1 -2
- fractal_server/app/routes/api/v2/dataset.py +13 -32
- fractal_server/app/routes/api/v2/history.py +35 -21
- fractal_server/app/routes/api/v2/images.py +3 -2
- fractal_server/app/routes/api/v2/job.py +17 -14
- fractal_server/app/routes/api/v2/pre_submission_checks.py +5 -4
- fractal_server/app/routes/api/v2/project.py +22 -17
- fractal_server/app/routes/api/v2/status_legacy.py +12 -11
- fractal_server/app/routes/api/v2/submit.py +11 -12
- fractal_server/app/routes/api/v2/task.py +4 -3
- fractal_server/app/routes/api/v2/task_collection.py +28 -30
- fractal_server/app/routes/api/v2/task_collection_custom.py +8 -7
- fractal_server/app/routes/api/v2/task_collection_pixi.py +1 -2
- fractal_server/app/routes/api/v2/task_group.py +7 -6
- fractal_server/app/routes/api/v2/task_group_lifecycle.py +6 -6
- fractal_server/app/routes/api/v2/task_version_update.py +13 -12
- fractal_server/app/routes/api/v2/workflow.py +14 -31
- fractal_server/app/routes/api/v2/workflow_import.py +17 -19
- fractal_server/app/routes/api/v2/workflowtask.py +10 -12
- fractal_server/app/routes/auth/__init__.py +1 -3
- fractal_server/app/routes/auth/_aux_auth.py +1 -2
- fractal_server/app/routes/auth/current_user.py +4 -5
- fractal_server/app/routes/auth/group.py +7 -5
- fractal_server/app/routes/auth/login.py +1 -0
- fractal_server/app/routes/auth/oauth.py +4 -3
- fractal_server/app/routes/auth/register.py +4 -2
- fractal_server/app/routes/auth/users.py +10 -10
- fractal_server/app/routes/aux/_job.py +1 -1
- fractal_server/app/routes/aux/_runner.py +2 -2
- fractal_server/app/routes/pagination.py +1 -1
- fractal_server/app/schemas/user.py +3 -3
- fractal_server/app/schemas/v2/accounting.py +11 -0
- fractal_server/app/schemas/v2/dataset.py +28 -4
- fractal_server/app/schemas/v2/dumps.py +1 -0
- fractal_server/app/schemas/v2/manifest.py +4 -3
- fractal_server/app/schemas/v2/profile.py +53 -2
- fractal_server/app/schemas/v2/resource.py +109 -13
- fractal_server/app/schemas/v2/task.py +0 -1
- fractal_server/app/schemas/v2/task_collection.py +1 -1
- fractal_server/app/schemas/v2/workflowtask.py +4 -3
- fractal_server/app/security/__init__.py +4 -7
- fractal_server/app/security/signup_email.py +4 -5
- fractal_server/app/shutdown.py +23 -19
- fractal_server/config/_data.py +36 -25
- fractal_server/config/_database.py +19 -20
- fractal_server/config/_email.py +30 -38
- fractal_server/config/_main.py +34 -53
- fractal_server/config/_oauth.py +17 -21
- fractal_server/exceptions.py +4 -0
- fractal_server/images/models.py +3 -3
- fractal_server/images/status_tools.py +4 -2
- fractal_server/logger.py +1 -1
- fractal_server/main.py +4 -3
- fractal_server/migrations/versions/034a469ec2eb_task_groups.py +4 -8
- fractal_server/migrations/versions/091b01f51f88_add_usergroup_and_linkusergroup_table.py +1 -1
- fractal_server/migrations/versions/0f5f85bb2ae7_add_pre_pinned_packages.py +1 -0
- fractal_server/migrations/versions/19eca0dd47a9_user_settings_project_dir.py +1 -1
- fractal_server/migrations/versions/1a83a5260664_rename.py +1 -1
- fractal_server/migrations/versions/1eac13a26c83_drop_v1_tables.py +1 -0
- fractal_server/migrations/versions/316140ff7ee1_remove_usersettings_cache_dir.py +1 -1
- fractal_server/migrations/versions/40d6d6511b20_add_index_to_history_models.py +47 -0
- fractal_server/migrations/versions/45fbb391d7af_make_resource_id_fk_non_nullable.py +46 -0
- fractal_server/migrations/versions/47351f8c7ebc_drop_dataset_filters.py +1 -0
- fractal_server/migrations/versions/49d0856e9569_drop_table.py +62 -0
- fractal_server/migrations/versions/4c308bcaea2b_add_task_args_schema_and_task_args_.py +1 -1
- fractal_server/migrations/versions/4cedeb448a53_workflowtask_foreign_keys_not_nullables.py +1 -1
- fractal_server/migrations/versions/501961cfcd85_remove_link_between_v1_and_v2_tasks_.py +2 -1
- fractal_server/migrations/versions/50a13d6138fd_initial_schema.py +7 -19
- fractal_server/migrations/versions/5bf02391cfef_v2.py +4 -10
- fractal_server/migrations/versions/70e77f1c38b0_add_applyworkflow_first_task_index_and_.py +1 -0
- fractal_server/migrations/versions/71eefd1dd202_add_slurm_accounts.py +1 -1
- fractal_server/migrations/versions/7673fe18c05d_remove_project_dir_server_default.py +29 -0
- fractal_server/migrations/versions/791ce783d3d8_add_indices.py +1 -1
- fractal_server/migrations/versions/83bc2ad3ffcc_2_17_0.py +1 -0
- fractal_server/migrations/versions/84bf0fffde30_add_dumps_to_applyworkflow.py +1 -0
- fractal_server/migrations/versions/8e8f227a3e36_update_taskv2_post_2_7_0.py +2 -4
- fractal_server/migrations/versions/8f79bd162e35_add_docs_info_and_docs_link_to_task_.py +1 -1
- fractal_server/migrations/versions/94a47ea2d3ff_remove_cache_dir_slurm_user_and_slurm_.py +1 -0
- fractal_server/migrations/versions/969d84257cac_add_historyrun_task_id.py +1 -1
- fractal_server/migrations/versions/97f444d47249_add_applyworkflow_project_dump.py +1 -1
- fractal_server/migrations/versions/981d588fe248_add_executor_error_log.py +1 -1
- fractal_server/migrations/versions/99ea79d9e5d2_add_dataset_history.py +2 -4
- fractal_server/migrations/versions/9c5ae74c9b98_add_user_settings_table.py +1 -1
- fractal_server/migrations/versions/9db60297b8b2_set_ondelete.py +1 -1
- fractal_server/migrations/versions/9fd26a2b0de4_add_workflow_timestamp_created.py +1 -1
- fractal_server/migrations/versions/a7f4d6137b53_add_workflow_dump_to_applyworkflow.py +1 -1
- fractal_server/migrations/versions/af1ef1c83c9b_add_accounting_tables.py +1 -0
- fractal_server/migrations/versions/af8673379a5c_drop_old_filter_columns.py +1 -0
- fractal_server/migrations/versions/b1e7f7a1ff71_task_group_for_pixi.py +1 -1
- fractal_server/migrations/versions/b3ffb095f973_json_to_jsonb.py +1 -0
- fractal_server/migrations/versions/c90a7c76e996_job_id_in_history_run.py +1 -1
- fractal_server/migrations/versions/caba9fb1ea5e_drop_useroauth_user_settings_id.py +49 -0
- fractal_server/migrations/versions/d256a7379ab8_taskgroup_activity_and_venv_info_to_.py +4 -9
- fractal_server/migrations/versions/d4fe3708d309_make_applyworkflow_workflow_dump_non_.py +1 -0
- fractal_server/migrations/versions/da2cb2ac4255_user_group_viewer_paths.py +1 -1
- fractal_server/migrations/versions/db09233ad13a_split_filters_and_keep_old_columns.py +1 -0
- fractal_server/migrations/versions/e0e717ae2f26_delete_linkuserproject_ondelete_project.py +50 -0
- fractal_server/migrations/versions/e75cac726012_make_applyworkflow_start_timestamp_not_.py +1 -0
- fractal_server/migrations/versions/e81103413827_add_job_type_filters.py +1 -1
- fractal_server/migrations/versions/efa89c30e0a4_add_project_timestamp_created.py +1 -0
- fractal_server/migrations/versions/f37aceb45062_make_historyunit_logfile_required.py +1 -1
- fractal_server/migrations/versions/f384e1c0cf5d_drop_task_default_args_columns.py +1 -0
- fractal_server/migrations/versions/fbce16ff4e47_new_history_items.py +4 -9
- fractal_server/runner/config/_local.py +8 -5
- fractal_server/runner/config/_slurm.py +37 -33
- fractal_server/runner/config/slurm_mem_to_MB.py +0 -1
- fractal_server/runner/executors/base_runner.py +29 -4
- fractal_server/runner/executors/local/get_local_config.py +1 -0
- fractal_server/runner/executors/local/runner.py +14 -13
- fractal_server/runner/executors/slurm_common/_batching.py +5 -10
- fractal_server/runner/executors/slurm_common/base_slurm_runner.py +53 -27
- fractal_server/runner/executors/slurm_common/get_slurm_config.py +14 -7
- fractal_server/runner/executors/slurm_common/remote.py +3 -1
- fractal_server/runner/executors/slurm_common/slurm_config.py +1 -0
- fractal_server/runner/executors/slurm_common/slurm_job_task_models.py +1 -3
- fractal_server/runner/executors/slurm_ssh/runner.py +16 -11
- fractal_server/runner/executors/slurm_ssh/tar_commands.py +1 -0
- fractal_server/runner/executors/slurm_sudo/_subprocess_run_as_user.py +1 -0
- fractal_server/runner/executors/slurm_sudo/runner.py +16 -11
- fractal_server/runner/task_files.py +9 -3
- fractal_server/runner/v2/_local.py +9 -4
- fractal_server/runner/v2/_slurm_ssh.py +11 -5
- fractal_server/runner/v2/_slurm_sudo.py +11 -5
- fractal_server/runner/v2/db_tools.py +0 -1
- fractal_server/runner/v2/deduplicate_list.py +2 -1
- fractal_server/runner/v2/runner.py +11 -14
- fractal_server/runner/v2/runner_functions.py +11 -14
- fractal_server/runner/v2/submit_workflow.py +7 -6
- fractal_server/ssh/_fabric.py +6 -13
- fractal_server/string_tools.py +0 -1
- fractal_server/syringe.py +1 -1
- fractal_server/tasks/config/_pixi.py +1 -1
- fractal_server/tasks/config/_python.py +16 -9
- fractal_server/tasks/utils.py +0 -1
- fractal_server/tasks/v2/local/_utils.py +1 -1
- fractal_server/tasks/v2/local/collect.py +10 -12
- fractal_server/tasks/v2/local/collect_pixi.py +9 -10
- fractal_server/tasks/v2/local/deactivate.py +7 -8
- fractal_server/tasks/v2/local/deactivate_pixi.py +4 -4
- fractal_server/tasks/v2/local/delete.py +1 -3
- fractal_server/tasks/v2/local/reactivate.py +7 -7
- fractal_server/tasks/v2/local/reactivate_pixi.py +7 -7
- fractal_server/tasks/v2/ssh/_utils.py +3 -3
- fractal_server/tasks/v2/ssh/collect.py +14 -19
- fractal_server/tasks/v2/ssh/collect_pixi.py +17 -19
- fractal_server/tasks/v2/ssh/deactivate.py +10 -8
- fractal_server/tasks/v2/ssh/deactivate_pixi.py +6 -5
- fractal_server/tasks/v2/ssh/delete.py +7 -5
- fractal_server/tasks/v2/ssh/reactivate.py +11 -11
- fractal_server/tasks/v2/ssh/reactivate_pixi.py +8 -9
- fractal_server/tasks/v2/templates/1_create_venv.sh +2 -0
- fractal_server/tasks/v2/templates/2_pip_install.sh +2 -0
- fractal_server/tasks/v2/templates/3_pip_freeze.sh +2 -0
- fractal_server/tasks/v2/templates/4_pip_show.sh +2 -0
- fractal_server/tasks/v2/templates/5_get_venv_size_and_file_number.sh +3 -1
- fractal_server/tasks/v2/templates/6_pip_install_from_freeze.sh +2 -0
- fractal_server/tasks/v2/templates/pixi_1_extract.sh +2 -0
- fractal_server/tasks/v2/templates/pixi_2_install.sh +2 -0
- fractal_server/tasks/v2/templates/pixi_3_post_install.sh +2 -0
- fractal_server/tasks/v2/utils_background.py +3 -3
- fractal_server/tasks/v2/utils_package_names.py +1 -2
- fractal_server/tasks/v2/utils_pixi.py +1 -3
- fractal_server/types/__init__.py +76 -1
- fractal_server/types/validators/_common_validators.py +1 -3
- fractal_server/types/validators/_workflow_task_arguments_validators.py +1 -2
- fractal_server/utils.py +1 -0
- fractal_server/zip_tools.py +34 -0
- {fractal_server-2.17.1a0.dist-info → fractal_server-2.17.2.dist-info}/METADATA +1 -1
- fractal_server-2.17.2.dist-info/RECORD +265 -0
- fractal_server/app/models/user_settings.py +0 -37
- fractal_server/app/routes/admin/v2/project.py +0 -41
- fractal_server/data_migrations/2_17_0.py +0 -339
- fractal_server-2.17.1a0.dist-info/RECORD +0 -262
- {fractal_server-2.17.1a0.dist-info → fractal_server-2.17.2.dist-info}/WHEEL +0 -0
- {fractal_server-2.17.1a0.dist-info → fractal_server-2.17.2.dist-info}/entry_points.txt +0 -0
- {fractal_server-2.17.1a0.dist-info → fractal_server-2.17.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,11 +5,11 @@ Revises: 9fd26a2b0de4
|
|
|
5
5
|
Create Date: 2024-04-18 10:35:19.067833
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
# revision identifiers, used by Alembic.
|
|
14
14
|
revision = "5bf02391cfef"
|
|
15
15
|
down_revision = "9fd26a2b0de4"
|
|
@@ -50,9 +50,7 @@ def upgrade() -> None:
|
|
|
50
50
|
sqlmodel.sql.sqltypes.AutoString(),
|
|
51
51
|
nullable=True,
|
|
52
52
|
),
|
|
53
|
-
sa.Column(
|
|
54
|
-
"source", sqlmodel.sql.sqltypes.AutoString(), nullable=False
|
|
55
|
-
),
|
|
53
|
+
sa.Column("source", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
56
54
|
sa.Column(
|
|
57
55
|
"meta_non_parallel", sa.JSON(), server_default="{}", nullable=False
|
|
58
56
|
),
|
|
@@ -60,9 +58,7 @@ def upgrade() -> None:
|
|
|
60
58
|
"meta_parallel", sa.JSON(), server_default="{}", nullable=False
|
|
61
59
|
),
|
|
62
60
|
sa.Column("owner", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
63
|
-
sa.Column(
|
|
64
|
-
"version", sqlmodel.sql.sqltypes.AutoString(), nullable=True
|
|
65
|
-
),
|
|
61
|
+
sa.Column("version", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
66
62
|
sa.Column("args_schema_non_parallel", sa.JSON(), nullable=True),
|
|
67
63
|
sa.Column("args_schema_parallel", sa.JSON(), nullable=True),
|
|
68
64
|
sa.Column(
|
|
@@ -166,9 +162,7 @@ def upgrade() -> None:
|
|
|
166
162
|
"start_timestamp", sa.DateTime(timezone=True), nullable=False
|
|
167
163
|
),
|
|
168
164
|
sa.Column("end_timestamp", sa.DateTime(timezone=True), nullable=True),
|
|
169
|
-
sa.Column(
|
|
170
|
-
"status", sqlmodel.sql.sqltypes.AutoString(), nullable=False
|
|
171
|
-
),
|
|
165
|
+
sa.Column("status", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
172
166
|
sa.Column("log", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
173
167
|
sa.ForeignKeyConstraint(
|
|
174
168
|
["dataset_id"],
|
|
@@ -5,11 +5,11 @@ Revises: d4fe3708d309
|
|
|
5
5
|
Create Date: 2023-12-05 12:36:44.100065
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
# revision identifiers, used by Alembic.
|
|
14
14
|
revision = "71eefd1dd202"
|
|
15
15
|
down_revision = "d4fe3708d309"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Remove project_dir server_default
|
|
2
|
+
|
|
3
|
+
Revision ID: 7673fe18c05d
|
|
4
|
+
Revises: 49d0856e9569
|
|
5
|
+
Create Date: 2025-11-11 16:50:20.079193
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from alembic import op
|
|
10
|
+
|
|
11
|
+
# revision identifiers, used by Alembic.
|
|
12
|
+
revision = "7673fe18c05d"
|
|
13
|
+
down_revision = "49d0856e9569"
|
|
14
|
+
branch_labels = None
|
|
15
|
+
depends_on = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def upgrade() -> None:
|
|
19
|
+
"""
|
|
20
|
+
Remove `server_default` for `project_dir` column - see
|
|
21
|
+
https://alembic.sqlalchemy.org/en/latest/ops.html#alembic.operations.Operations.alter_column.params.server_default
|
|
22
|
+
"""
|
|
23
|
+
with op.batch_alter_table("user_oauth") as batch_op:
|
|
24
|
+
batch_op.alter_column("project_dir", server_default=None)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def downgrade() -> None:
|
|
28
|
+
with op.batch_alter_table("user_oauth") as batch_op:
|
|
29
|
+
batch_op.alter_column("project_dir", server_default="/PLACEHOLDER")
|
|
@@ -5,10 +5,10 @@ Revises: 034a469ec2eb
|
|
|
5
5
|
Create Date: 2024-10-29 09:01:33.075251
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
from alembic import op
|
|
10
11
|
|
|
11
|
-
|
|
12
12
|
# revision identifiers, used by Alembic.
|
|
13
13
|
revision = "8e8f227a3e36"
|
|
14
14
|
down_revision = "034a469ec2eb"
|
|
@@ -31,9 +31,7 @@ def downgrade() -> None:
|
|
|
31
31
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
32
32
|
with op.batch_alter_table("taskv2", schema=None) as batch_op:
|
|
33
33
|
batch_op.add_column(
|
|
34
|
-
sa.Column(
|
|
35
|
-
"owner", sa.VARCHAR(), autoincrement=False, nullable=True
|
|
36
|
-
)
|
|
34
|
+
sa.Column("owner", sa.VARCHAR(), autoincrement=False, nullable=True)
|
|
37
35
|
)
|
|
38
36
|
batch_op.alter_column(
|
|
39
37
|
"taskgroupv2_id", existing_type=sa.INTEGER(), nullable=True
|
|
@@ -5,11 +5,11 @@ Revises: a7f4d6137b53
|
|
|
5
5
|
Create Date: 2023-08-01 14:13:15.322398
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
# revision identifiers, used by Alembic.
|
|
14
14
|
revision = "8f79bd162e35"
|
|
15
15
|
down_revision = "a7f4d6137b53"
|
|
@@ -5,11 +5,11 @@ Revises: 0f5f85bb2ae7
|
|
|
5
5
|
Create Date: 2025-09-15 08:31:10.363449
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
# revision identifiers, used by Alembic.
|
|
14
14
|
revision = "981d588fe248"
|
|
15
15
|
down_revision = "0f5f85bb2ae7"
|
|
@@ -5,10 +5,10 @@ Revises: 8f79bd162e35
|
|
|
5
5
|
Create Date: 2023-10-16 09:45:15.132185
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
from alembic import op
|
|
10
11
|
|
|
11
|
-
|
|
12
12
|
# revision identifiers, used by Alembic.
|
|
13
13
|
revision = "99ea79d9e5d2"
|
|
14
14
|
down_revision = "8f79bd162e35"
|
|
@@ -20,9 +20,7 @@ def upgrade() -> None:
|
|
|
20
20
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
21
21
|
with op.batch_alter_table("dataset", schema=None) as batch_op:
|
|
22
22
|
batch_op.add_column(
|
|
23
|
-
sa.Column(
|
|
24
|
-
"history", sa.JSON(), server_default="[]", nullable=False
|
|
25
|
-
)
|
|
23
|
+
sa.Column("history", sa.JSON(), server_default="[]", nullable=False)
|
|
26
24
|
)
|
|
27
25
|
|
|
28
26
|
# ### end Alembic commands ###
|
|
@@ -5,11 +5,11 @@ Revises: d9a140db5d42
|
|
|
5
5
|
Create Date: 2024-09-24 12:01:13.393326
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
# revision identifiers, used by Alembic.
|
|
14
14
|
revision = "9c5ae74c9b98"
|
|
15
15
|
down_revision = "d9a140db5d42"
|
|
@@ -5,13 +5,13 @@ Revises: efa89c30e0a4
|
|
|
5
5
|
Create Date: 2024-01-11 09:31:20.950090
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
from datetime import datetime
|
|
9
10
|
from datetime import timezone
|
|
10
11
|
|
|
11
12
|
import sqlalchemy as sa
|
|
12
13
|
from alembic import op
|
|
13
14
|
|
|
14
|
-
|
|
15
15
|
# revision identifiers, used by Alembic.
|
|
16
16
|
revision = "9fd26a2b0de4"
|
|
17
17
|
down_revision = "4cedeb448a53"
|
|
@@ -5,11 +5,11 @@ Revises: 791ce783d3d8
|
|
|
5
5
|
Create Date: 2025-05-29 16:31:17.565973
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
# revision identifiers, used by Alembic.
|
|
14
14
|
revision = "b1e7f7a1ff71"
|
|
15
15
|
down_revision = "791ce783d3d8"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Drop UserOAuth.user_settings_id
|
|
2
|
+
|
|
3
|
+
Revision ID: caba9fb1ea5e
|
|
4
|
+
Revises: 83bc2ad3ffcc
|
|
5
|
+
Create Date: 2025-11-11 16:38:27.243693
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
|
|
12
|
+
# revision identifiers, used by Alembic.
|
|
13
|
+
revision = "caba9fb1ea5e"
|
|
14
|
+
down_revision = "83bc2ad3ffcc"
|
|
15
|
+
branch_labels = None
|
|
16
|
+
depends_on = None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def upgrade() -> None:
|
|
20
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
21
|
+
with op.batch_alter_table("user_oauth", schema=None) as batch_op:
|
|
22
|
+
batch_op.drop_constraint(
|
|
23
|
+
batch_op.f("fk_user_oauth_user_settings_id_user_settings"),
|
|
24
|
+
type_="foreignkey",
|
|
25
|
+
)
|
|
26
|
+
batch_op.drop_column("user_settings_id")
|
|
27
|
+
|
|
28
|
+
# ### end Alembic commands ###
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def downgrade() -> None:
|
|
32
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
33
|
+
with op.batch_alter_table("user_oauth", schema=None) as batch_op:
|
|
34
|
+
batch_op.add_column(
|
|
35
|
+
sa.Column(
|
|
36
|
+
"user_settings_id",
|
|
37
|
+
sa.INTEGER(),
|
|
38
|
+
autoincrement=False,
|
|
39
|
+
nullable=True,
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
batch_op.create_foreign_key(
|
|
43
|
+
batch_op.f("fk_user_oauth_user_settings_id_user_settings"),
|
|
44
|
+
"user_settings",
|
|
45
|
+
["user_settings_id"],
|
|
46
|
+
["id"],
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
# ### end Alembic commands ###
|
|
@@ -5,6 +5,7 @@ Revises: 19eca0dd47a9
|
|
|
5
5
|
Create Date: 2024-11-20 15:01:52.659832
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
@@ -33,16 +34,10 @@ def upgrade() -> None:
|
|
|
33
34
|
sa.Column(
|
|
34
35
|
"version", sqlmodel.sql.sqltypes.AutoString(), nullable=False
|
|
35
36
|
),
|
|
36
|
-
sa.Column(
|
|
37
|
-
|
|
38
|
-
),
|
|
39
|
-
sa.Column(
|
|
40
|
-
"action", sqlmodel.sql.sqltypes.AutoString(), nullable=False
|
|
41
|
-
),
|
|
37
|
+
sa.Column("status", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
38
|
+
sa.Column("action", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
42
39
|
sa.Column("log", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
43
|
-
sa.Column(
|
|
44
|
-
"timestamp_ended", sa.DateTime(timezone=True), nullable=True
|
|
45
|
-
),
|
|
40
|
+
sa.Column("timestamp_ended", sa.DateTime(timezone=True), nullable=True),
|
|
46
41
|
sa.ForeignKeyConstraint(
|
|
47
42
|
["taskgroupv2_id"],
|
|
48
43
|
["taskgroupv2.id"],
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""delete LinkUserProject ondelete Project
|
|
2
|
+
|
|
3
|
+
Revision ID: e0e717ae2f26
|
|
4
|
+
Revises: 40d6d6511b20
|
|
5
|
+
Create Date: 2025-11-17 14:33:56.348071
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from alembic import op
|
|
10
|
+
|
|
11
|
+
# revision identifiers, used by Alembic.
|
|
12
|
+
revision = "e0e717ae2f26"
|
|
13
|
+
down_revision = "40d6d6511b20"
|
|
14
|
+
branch_labels = None
|
|
15
|
+
depends_on = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def upgrade() -> None:
|
|
19
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
20
|
+
with op.batch_alter_table("linkuserprojectv2", schema=None) as batch_op:
|
|
21
|
+
batch_op.drop_constraint(
|
|
22
|
+
batch_op.f("fk_linkuserprojectv2_project_id_projectv2"),
|
|
23
|
+
type_="foreignkey",
|
|
24
|
+
)
|
|
25
|
+
batch_op.create_foreign_key(
|
|
26
|
+
batch_op.f("fk_linkuserprojectv2_project_id_projectv2"),
|
|
27
|
+
"projectv2",
|
|
28
|
+
["project_id"],
|
|
29
|
+
["id"],
|
|
30
|
+
ondelete="CASCADE",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# ### end Alembic commands ###
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def downgrade() -> None:
|
|
37
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
38
|
+
with op.batch_alter_table("linkuserprojectv2", schema=None) as batch_op:
|
|
39
|
+
batch_op.drop_constraint(
|
|
40
|
+
batch_op.f("fk_linkuserprojectv2_project_id_projectv2"),
|
|
41
|
+
type_="foreignkey",
|
|
42
|
+
)
|
|
43
|
+
batch_op.create_foreign_key(
|
|
44
|
+
batch_op.f("fk_linkuserprojectv2_project_id_projectv2"),
|
|
45
|
+
"projectv2",
|
|
46
|
+
["project_id"],
|
|
47
|
+
["id"],
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# ### end Alembic commands ###
|
|
@@ -5,6 +5,7 @@ Revises: af1ef1c83c9b
|
|
|
5
5
|
Create Date: 2025-03-14 15:25:01.083619
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import sqlalchemy as sa
|
|
9
10
|
import sqlmodel
|
|
10
11
|
from alembic import op
|
|
@@ -37,9 +38,7 @@ def upgrade() -> None:
|
|
|
37
38
|
sa.Column(
|
|
38
39
|
"timestamp_started", sa.DateTime(timezone=True), nullable=False
|
|
39
40
|
),
|
|
40
|
-
sa.Column(
|
|
41
|
-
"status", sqlmodel.sql.sqltypes.AutoString(), nullable=False
|
|
42
|
-
),
|
|
41
|
+
sa.Column("status", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
43
42
|
sa.Column("num_available_images", sa.Integer(), nullable=False),
|
|
44
43
|
sa.ForeignKeyConstraint(
|
|
45
44
|
["dataset_id"],
|
|
@@ -59,12 +58,8 @@ def upgrade() -> None:
|
|
|
59
58
|
"historyunit",
|
|
60
59
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
61
60
|
sa.Column("history_run_id", sa.Integer(), nullable=False),
|
|
62
|
-
sa.Column(
|
|
63
|
-
|
|
64
|
-
),
|
|
65
|
-
sa.Column(
|
|
66
|
-
"status", sqlmodel.sql.sqltypes.AutoString(), nullable=False
|
|
67
|
-
),
|
|
61
|
+
sa.Column("logfile", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
62
|
+
sa.Column("status", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
68
63
|
sa.Column("zarr_urls", postgresql.ARRAY(sa.String()), nullable=True),
|
|
69
64
|
sa.ForeignKeyConstraint(
|
|
70
65
|
["history_run_id"],
|
|
@@ -4,13 +4,16 @@ from pydantic import ConfigDict
|
|
|
4
4
|
|
|
5
5
|
class JobRunnerConfigLocal(BaseModel):
|
|
6
6
|
"""
|
|
7
|
-
|
|
7
|
+
Runner-configuration specifications, for a `local` resource.
|
|
8
|
+
|
|
9
|
+
The typical use case is that setting `parallel_tasks_per_job` to a
|
|
10
|
+
small number (e.g. 1) will limit parallelism when executing tasks
|
|
11
|
+
requiring a large amount of resources (e.g. memory) on a local machine.
|
|
8
12
|
|
|
9
13
|
Attributes:
|
|
10
14
|
parallel_tasks_per_job:
|
|
11
|
-
Maximum number of tasks to be run in parallel
|
|
12
|
-
|
|
13
|
-
start at the same time.
|
|
15
|
+
Maximum number of tasks to be run in parallel within a local
|
|
16
|
+
runner. If `None`, then all tasks may start at the same time.
|
|
14
17
|
"""
|
|
15
18
|
|
|
16
19
|
model_config = ConfigDict(extra="forbid")
|
|
@@ -18,4 +21,4 @@ class JobRunnerConfigLocal(BaseModel):
|
|
|
18
21
|
|
|
19
22
|
@property
|
|
20
23
|
def batch_size(self) -> int:
|
|
21
|
-
return self.parallel_tasks_per_job or
|
|
24
|
+
return self.parallel_tasks_per_job or 0
|