prefect-client 3.3.3.dev1__py3-none-any.whl → 3.3.4__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.
- prefect/_build_info.py +3 -3
- prefect/client/orchestration/_deployments/client.py +82 -46
- prefect/client/orchestration/routes.py +1 -0
- prefect/client/schemas/actions.py +19 -0
- prefect/client/schemas/objects.py +14 -0
- prefect/client/schemas/responses.py +23 -0
- prefect/deployments/base.py +5 -0
- prefect/runner/runner.py +4 -2
- prefect/runner/server.py +12 -0
- prefect/runner/submit.py +13 -1
- prefect/server/api/deployments.py +1 -0
- prefect/server/api/flow_runs.py +2 -2
- prefect/settings/models/server/events.py +1 -1
- prefect/settings/models/server/services.py +7 -0
- prefect/states.py +2 -2
- {prefect_client-3.3.3.dev1.dist-info → prefect_client-3.3.4.dist-info}/METADATA +1 -1
- {prefect_client-3.3.3.dev1.dist-info → prefect_client-3.3.4.dist-info}/RECORD +19 -19
- {prefect_client-3.3.3.dev1.dist-info → prefect_client-3.3.4.dist-info}/WHEEL +0 -0
- {prefect_client-3.3.3.dev1.dist-info → prefect_client-3.3.4.dist-info}/licenses/LICENSE +0 -0
prefect/_build_info.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Generated by versioningit
|
2
|
-
__version__ = "3.3.
|
3
|
-
__build_date__ = "2025-04-
|
4
|
-
__git_commit__ = "
|
2
|
+
__version__ = "3.3.4"
|
3
|
+
__build_date__ = "2025-04-11 00:26:30.248307+00:00"
|
4
|
+
__git_commit__ = "7ca03553d477301616da47ff29287096a4a785ea"
|
5
5
|
__dirty__ = False
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from collections.abc import Iterable
|
4
4
|
from typing import TYPE_CHECKING, Any, Union
|
5
|
+
from uuid import UUID
|
5
6
|
|
6
7
|
from httpx import HTTPStatusError, RequestError
|
7
8
|
|
@@ -10,7 +11,6 @@ from prefect.exceptions import ObjectNotFound
|
|
10
11
|
|
11
12
|
if TYPE_CHECKING:
|
12
13
|
import datetime
|
13
|
-
from uuid import UUID
|
14
14
|
|
15
15
|
from prefect.client.schemas import FlowRun
|
16
16
|
from prefect.client.schemas.actions import (
|
@@ -28,6 +28,7 @@ if TYPE_CHECKING:
|
|
28
28
|
)
|
29
29
|
from prefect.client.schemas.objects import (
|
30
30
|
ConcurrencyOptions,
|
31
|
+
DeploymentBranchingOptions,
|
31
32
|
DeploymentSchedule,
|
32
33
|
VersionInfo,
|
33
34
|
)
|
@@ -46,7 +47,7 @@ if TYPE_CHECKING:
|
|
46
47
|
class DeploymentClient(BaseClient):
|
47
48
|
def create_deployment(
|
48
49
|
self,
|
49
|
-
flow_id:
|
50
|
+
flow_id: UUID,
|
50
51
|
name: str,
|
51
52
|
version: str | None = None,
|
52
53
|
version_info: "VersionInfo | None" = None,
|
@@ -58,10 +59,10 @@ class DeploymentClient(BaseClient):
|
|
58
59
|
work_queue_name: str | None = None,
|
59
60
|
work_pool_name: str | None = None,
|
60
61
|
tags: list[str] | None = None,
|
61
|
-
storage_document_id:
|
62
|
+
storage_document_id: UUID | None = None,
|
62
63
|
path: str | None = None,
|
63
64
|
entrypoint: str | None = None,
|
64
|
-
infrastructure_document_id:
|
65
|
+
infrastructure_document_id: UUID | None = None,
|
65
66
|
parameter_openapi_schema: dict[str, Any] | None = None,
|
66
67
|
paused: bool | None = None,
|
67
68
|
pull_steps: list[dict[str, Any]] | None = None,
|
@@ -70,7 +71,7 @@ class DeploymentClient(BaseClient):
|
|
70
71
|
branch: str | None = None,
|
71
72
|
base: UUID | None = None,
|
72
73
|
root: UUID | None = None,
|
73
|
-
) ->
|
74
|
+
) -> UUID:
|
74
75
|
"""
|
75
76
|
Create a deployment.
|
76
77
|
|
@@ -94,7 +95,6 @@ class DeploymentClient(BaseClient):
|
|
94
95
|
Returns:
|
95
96
|
the ID of the deployment in the backend
|
96
97
|
"""
|
97
|
-
from uuid import UUID
|
98
98
|
|
99
99
|
from prefect.client.schemas.actions import DeploymentCreate
|
100
100
|
|
@@ -166,7 +166,7 @@ class DeploymentClient(BaseClient):
|
|
166
166
|
|
167
167
|
return UUID(deployment_id)
|
168
168
|
|
169
|
-
def set_deployment_paused_state(self, deployment_id:
|
169
|
+
def set_deployment_paused_state(self, deployment_id: UUID, paused: bool) -> None:
|
170
170
|
self.request(
|
171
171
|
"PATCH",
|
172
172
|
"/deployments/{id}",
|
@@ -176,7 +176,7 @@ class DeploymentClient(BaseClient):
|
|
176
176
|
|
177
177
|
def update_deployment(
|
178
178
|
self,
|
179
|
-
deployment_id:
|
179
|
+
deployment_id: UUID,
|
180
180
|
deployment: "DeploymentUpdate",
|
181
181
|
) -> None:
|
182
182
|
self.request(
|
@@ -190,12 +190,10 @@ class DeploymentClient(BaseClient):
|
|
190
190
|
),
|
191
191
|
)
|
192
192
|
|
193
|
-
def _create_deployment_from_schema(self, schema: "DeploymentCreate") ->
|
193
|
+
def _create_deployment_from_schema(self, schema: "DeploymentCreate") -> UUID:
|
194
194
|
"""
|
195
195
|
Create a deployment from a prepared `DeploymentCreate` schema.
|
196
196
|
"""
|
197
|
-
from uuid import UUID
|
198
|
-
|
199
197
|
# TODO: We are likely to remove this method once we have considered the
|
200
198
|
# packaging interface for deployments further.
|
201
199
|
response = self.request(
|
@@ -209,7 +207,7 @@ class DeploymentClient(BaseClient):
|
|
209
207
|
|
210
208
|
def read_deployment(
|
211
209
|
self,
|
212
|
-
deployment_id: Union[
|
210
|
+
deployment_id: Union[UUID, str],
|
213
211
|
) -> "DeploymentResponse":
|
214
212
|
"""
|
215
213
|
Query the Prefect API for a deployment by id.
|
@@ -220,7 +218,6 @@ class DeploymentClient(BaseClient):
|
|
220
218
|
Returns:
|
221
219
|
a [Deployment model][prefect.client.schemas.objects.Deployment] representation of the deployment
|
222
220
|
"""
|
223
|
-
from uuid import UUID
|
224
221
|
|
225
222
|
from prefect.client.schemas.responses import DeploymentResponse
|
226
223
|
|
@@ -346,7 +343,7 @@ class DeploymentClient(BaseClient):
|
|
346
343
|
|
347
344
|
def delete_deployment(
|
348
345
|
self,
|
349
|
-
deployment_id:
|
346
|
+
deployment_id: UUID,
|
350
347
|
) -> None:
|
351
348
|
"""
|
352
349
|
Delete deployment by id.
|
@@ -371,7 +368,7 @@ class DeploymentClient(BaseClient):
|
|
371
368
|
|
372
369
|
def create_deployment_schedules(
|
373
370
|
self,
|
374
|
-
deployment_id:
|
371
|
+
deployment_id: UUID,
|
375
372
|
schedules: list[tuple["SCHEDULE_TYPES", bool]],
|
376
373
|
) -> list["DeploymentSchedule"]:
|
377
374
|
"""
|
@@ -410,7 +407,7 @@ class DeploymentClient(BaseClient):
|
|
410
407
|
|
411
408
|
def read_deployment_schedules(
|
412
409
|
self,
|
413
|
-
deployment_id:
|
410
|
+
deployment_id: UUID,
|
414
411
|
) -> list["DeploymentSchedule"]:
|
415
412
|
"""
|
416
413
|
Query the Prefect API for a deployment's schedules.
|
@@ -438,8 +435,8 @@ class DeploymentClient(BaseClient):
|
|
438
435
|
|
439
436
|
def update_deployment_schedule(
|
440
437
|
self,
|
441
|
-
deployment_id:
|
442
|
-
schedule_id:
|
438
|
+
deployment_id: UUID,
|
439
|
+
schedule_id: UUID,
|
443
440
|
active: bool | None = None,
|
444
441
|
schedule: "SCHEDULE_TYPES | None" = None,
|
445
442
|
) -> None:
|
@@ -478,8 +475,8 @@ class DeploymentClient(BaseClient):
|
|
478
475
|
|
479
476
|
def delete_deployment_schedule(
|
480
477
|
self,
|
481
|
-
deployment_id:
|
482
|
-
schedule_id:
|
478
|
+
deployment_id: UUID,
|
479
|
+
schedule_id: UUID,
|
483
480
|
) -> None:
|
484
481
|
"""
|
485
482
|
Delete a deployment schedule.
|
@@ -505,7 +502,7 @@ class DeploymentClient(BaseClient):
|
|
505
502
|
|
506
503
|
def get_scheduled_flow_runs_for_deployments(
|
507
504
|
self,
|
508
|
-
deployment_ids: list[
|
505
|
+
deployment_ids: list[UUID],
|
509
506
|
scheduled_before: "datetime.datetime | None" = None,
|
510
507
|
limit: int | None = None,
|
511
508
|
) -> list["FlowRunResponse"]:
|
@@ -527,7 +524,7 @@ class DeploymentClient(BaseClient):
|
|
527
524
|
|
528
525
|
def create_flow_run_from_deployment(
|
529
526
|
self,
|
530
|
-
deployment_id:
|
527
|
+
deployment_id: UUID,
|
531
528
|
*,
|
532
529
|
parameters: dict[str, Any] | None = None,
|
533
530
|
context: dict[str, Any] | None = None,
|
@@ -535,7 +532,7 @@ class DeploymentClient(BaseClient):
|
|
535
532
|
name: str | None = None,
|
536
533
|
tags: Iterable[str] | None = None,
|
537
534
|
idempotency_key: str | None = None,
|
538
|
-
parent_task_run_id:
|
535
|
+
parent_task_run_id: UUID | None = None,
|
539
536
|
work_queue_name: str | None = None,
|
540
537
|
job_variables: dict[str, Any] | None = None,
|
541
538
|
labels: "KeyValueLabelsField | None" = None,
|
@@ -604,11 +601,33 @@ class DeploymentClient(BaseClient):
|
|
604
601
|
)
|
605
602
|
return FlowRun.model_validate(response.json())
|
606
603
|
|
604
|
+
def create_deployment_branch(
|
605
|
+
self,
|
606
|
+
deployment_id: UUID,
|
607
|
+
branch: str,
|
608
|
+
options: "DeploymentBranchingOptions | None" = None,
|
609
|
+
overrides: "DeploymentUpdate | None" = None,
|
610
|
+
) -> UUID:
|
611
|
+
from prefect.client.schemas.actions import DeploymentBranch
|
612
|
+
from prefect.client.schemas.objects import DeploymentBranchingOptions
|
613
|
+
|
614
|
+
response = self.request(
|
615
|
+
"POST",
|
616
|
+
"/deployments/{id}/branch",
|
617
|
+
path_params={"id": deployment_id},
|
618
|
+
json=DeploymentBranch(
|
619
|
+
branch=branch,
|
620
|
+
options=options or DeploymentBranchingOptions(),
|
621
|
+
overrides=overrides,
|
622
|
+
).model_dump(mode="json", exclude_unset=True),
|
623
|
+
)
|
624
|
+
return UUID(response.json().get("id"))
|
625
|
+
|
607
626
|
|
608
627
|
class DeploymentAsyncClient(BaseAsyncClient):
|
609
628
|
async def create_deployment(
|
610
629
|
self,
|
611
|
-
flow_id:
|
630
|
+
flow_id: UUID,
|
612
631
|
name: str,
|
613
632
|
version: str | None = None,
|
614
633
|
version_info: "VersionInfo | None" = None,
|
@@ -620,10 +639,10 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
620
639
|
work_queue_name: str | None = None,
|
621
640
|
work_pool_name: str | None = None,
|
622
641
|
tags: list[str] | None = None,
|
623
|
-
storage_document_id:
|
642
|
+
storage_document_id: UUID | None = None,
|
624
643
|
path: str | None = None,
|
625
644
|
entrypoint: str | None = None,
|
626
|
-
infrastructure_document_id:
|
645
|
+
infrastructure_document_id: UUID | None = None,
|
627
646
|
parameter_openapi_schema: dict[str, Any] | None = None,
|
628
647
|
paused: bool | None = None,
|
629
648
|
pull_steps: list[dict[str, Any]] | None = None,
|
@@ -632,7 +651,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
632
651
|
branch: str | None = None,
|
633
652
|
base: UUID | None = None,
|
634
653
|
root: UUID | None = None,
|
635
|
-
) ->
|
654
|
+
) -> UUID:
|
636
655
|
"""
|
637
656
|
Create a deployment.
|
638
657
|
|
@@ -656,7 +675,6 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
656
675
|
Returns:
|
657
676
|
the ID of the deployment in the backend
|
658
677
|
"""
|
659
|
-
from uuid import UUID
|
660
678
|
|
661
679
|
from prefect.client.schemas.actions import DeploymentCreate
|
662
680
|
|
@@ -729,7 +747,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
729
747
|
return UUID(deployment_id)
|
730
748
|
|
731
749
|
async def set_deployment_paused_state(
|
732
|
-
self, deployment_id:
|
750
|
+
self, deployment_id: UUID, paused: bool
|
733
751
|
) -> None:
|
734
752
|
await self.request(
|
735
753
|
"PATCH",
|
@@ -740,7 +758,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
740
758
|
|
741
759
|
async def update_deployment(
|
742
760
|
self,
|
743
|
-
deployment_id:
|
761
|
+
deployment_id: UUID,
|
744
762
|
deployment: "DeploymentUpdate",
|
745
763
|
) -> None:
|
746
764
|
await self.request(
|
@@ -754,13 +772,10 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
754
772
|
),
|
755
773
|
)
|
756
774
|
|
757
|
-
async def _create_deployment_from_schema(
|
758
|
-
self, schema: "DeploymentCreate"
|
759
|
-
) -> "UUID":
|
775
|
+
async def _create_deployment_from_schema(self, schema: "DeploymentCreate") -> UUID:
|
760
776
|
"""
|
761
777
|
Create a deployment from a prepared `DeploymentCreate` schema.
|
762
778
|
"""
|
763
|
-
from uuid import UUID
|
764
779
|
|
765
780
|
# TODO: We are likely to remove this method once we have considered the
|
766
781
|
# packaging interface for deployments further.
|
@@ -775,7 +790,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
775
790
|
|
776
791
|
async def read_deployment(
|
777
792
|
self,
|
778
|
-
deployment_id: Union[
|
793
|
+
deployment_id: Union[UUID, str],
|
779
794
|
) -> "DeploymentResponse":
|
780
795
|
"""
|
781
796
|
Query the Prefect API for a deployment by id.
|
@@ -786,7 +801,6 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
786
801
|
Returns:
|
787
802
|
a [Deployment model][prefect.client.schemas.objects.Deployment] representation of the deployment
|
788
803
|
"""
|
789
|
-
from uuid import UUID
|
790
804
|
|
791
805
|
from prefect.client.schemas.responses import DeploymentResponse
|
792
806
|
|
@@ -912,7 +926,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
912
926
|
|
913
927
|
async def delete_deployment(
|
914
928
|
self,
|
915
|
-
deployment_id:
|
929
|
+
deployment_id: UUID,
|
916
930
|
) -> None:
|
917
931
|
"""
|
918
932
|
Delete deployment by id.
|
@@ -937,7 +951,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
937
951
|
|
938
952
|
async def create_deployment_schedules(
|
939
953
|
self,
|
940
|
-
deployment_id:
|
954
|
+
deployment_id: UUID,
|
941
955
|
schedules: list[tuple["SCHEDULE_TYPES", bool]],
|
942
956
|
) -> list["DeploymentSchedule"]:
|
943
957
|
"""
|
@@ -976,7 +990,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
976
990
|
|
977
991
|
async def read_deployment_schedules(
|
978
992
|
self,
|
979
|
-
deployment_id:
|
993
|
+
deployment_id: UUID,
|
980
994
|
) -> list["DeploymentSchedule"]:
|
981
995
|
"""
|
982
996
|
Query the Prefect API for a deployment's schedules.
|
@@ -1004,8 +1018,8 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
1004
1018
|
|
1005
1019
|
async def update_deployment_schedule(
|
1006
1020
|
self,
|
1007
|
-
deployment_id:
|
1008
|
-
schedule_id:
|
1021
|
+
deployment_id: UUID,
|
1022
|
+
schedule_id: UUID,
|
1009
1023
|
active: bool | None = None,
|
1010
1024
|
schedule: "SCHEDULE_TYPES | None" = None,
|
1011
1025
|
) -> None:
|
@@ -1044,8 +1058,8 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
1044
1058
|
|
1045
1059
|
async def delete_deployment_schedule(
|
1046
1060
|
self,
|
1047
|
-
deployment_id:
|
1048
|
-
schedule_id:
|
1061
|
+
deployment_id: UUID,
|
1062
|
+
schedule_id: UUID,
|
1049
1063
|
) -> None:
|
1050
1064
|
"""
|
1051
1065
|
Delete a deployment schedule.
|
@@ -1071,7 +1085,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
1071
1085
|
|
1072
1086
|
async def get_scheduled_flow_runs_for_deployments(
|
1073
1087
|
self,
|
1074
|
-
deployment_ids: list[
|
1088
|
+
deployment_ids: list[UUID],
|
1075
1089
|
scheduled_before: "datetime.datetime | None" = None,
|
1076
1090
|
limit: int | None = None,
|
1077
1091
|
) -> list["FlowRun"]:
|
@@ -1093,7 +1107,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
1093
1107
|
|
1094
1108
|
async def create_flow_run_from_deployment(
|
1095
1109
|
self,
|
1096
|
-
deployment_id:
|
1110
|
+
deployment_id: UUID,
|
1097
1111
|
*,
|
1098
1112
|
parameters: dict[str, Any] | None = None,
|
1099
1113
|
context: dict[str, Any] | None = None,
|
@@ -1101,7 +1115,7 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
1101
1115
|
name: str | None = None,
|
1102
1116
|
tags: Iterable[str] | None = None,
|
1103
1117
|
idempotency_key: str | None = None,
|
1104
|
-
parent_task_run_id:
|
1118
|
+
parent_task_run_id: UUID | None = None,
|
1105
1119
|
work_queue_name: str | None = None,
|
1106
1120
|
job_variables: dict[str, Any] | None = None,
|
1107
1121
|
labels: "KeyValueLabelsField | None" = None,
|
@@ -1169,3 +1183,25 @@ class DeploymentAsyncClient(BaseAsyncClient):
|
|
1169
1183
|
json=flow_run_create.model_dump(mode="json", exclude_unset=True),
|
1170
1184
|
)
|
1171
1185
|
return FlowRun.model_validate(response.json())
|
1186
|
+
|
1187
|
+
async def create_deployment_branch(
|
1188
|
+
self,
|
1189
|
+
deployment_id: UUID,
|
1190
|
+
branch: str,
|
1191
|
+
options: "DeploymentBranchingOptions | None" = None,
|
1192
|
+
overrides: "DeploymentUpdate | None" = None,
|
1193
|
+
) -> UUID:
|
1194
|
+
from prefect.client.schemas.actions import DeploymentBranch
|
1195
|
+
from prefect.client.schemas.objects import DeploymentBranchingOptions
|
1196
|
+
|
1197
|
+
response = await self.request(
|
1198
|
+
"POST",
|
1199
|
+
"/deployments/{id}/branch",
|
1200
|
+
path_params={"id": deployment_id},
|
1201
|
+
json=DeploymentBranch(
|
1202
|
+
branch=branch,
|
1203
|
+
options=options or DeploymentBranchingOptions(),
|
1204
|
+
overrides=overrides,
|
1205
|
+
).model_dump(mode="json", exclude_unset=True),
|
1206
|
+
)
|
1207
|
+
return UUID(response.json().get("id"))
|
@@ -373,6 +373,25 @@ class DeploymentUpdate(ActionBaseModel):
|
|
373
373
|
jsonschema.validate(self.job_variables, variables_schema)
|
374
374
|
|
375
375
|
|
376
|
+
class DeploymentBranch(ActionBaseModel):
|
377
|
+
branch: str = Field(..., description="Name of the branch to create")
|
378
|
+
options: objects.DeploymentBranchingOptions = Field(
|
379
|
+
default_factory=objects.DeploymentBranchingOptions,
|
380
|
+
description="Configuration options for how the deployment should be branched",
|
381
|
+
)
|
382
|
+
overrides: Optional[DeploymentUpdate] = Field(
|
383
|
+
default=None,
|
384
|
+
description="Optional values to override in the branched deployment",
|
385
|
+
)
|
386
|
+
|
387
|
+
@field_validator("branch")
|
388
|
+
@classmethod
|
389
|
+
def validate_branch_length(cls, v: str) -> str:
|
390
|
+
if len(v.strip()) < 1:
|
391
|
+
raise ValueError("Branch name cannot be empty or contain only whitespace")
|
392
|
+
return v
|
393
|
+
|
394
|
+
|
376
395
|
class FlowRunUpdate(ActionBaseModel):
|
377
396
|
"""Data used by the Prefect REST API to update a flow run."""
|
378
397
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
3
3
|
import datetime
|
4
4
|
import warnings
|
5
5
|
from collections.abc import Callable, Mapping
|
6
|
+
from enum import Enum
|
6
7
|
from functools import partial
|
7
8
|
from typing import (
|
8
9
|
TYPE_CHECKING,
|
@@ -1107,6 +1108,19 @@ class VersionInfo(PrefectBaseModel, extra="allow"):
|
|
1107
1108
|
version: str = Field(default=..., description="The version of the deployment.")
|
1108
1109
|
|
1109
1110
|
|
1111
|
+
class BranchingScheduleHandling(str, Enum):
|
1112
|
+
KEEP = "keep"
|
1113
|
+
REMOVE = "remove"
|
1114
|
+
INACTIVE = "inactive"
|
1115
|
+
|
1116
|
+
|
1117
|
+
class DeploymentBranchingOptions(ObjectBaseModel):
|
1118
|
+
schedule_handling: BranchingScheduleHandling = Field(
|
1119
|
+
default=BranchingScheduleHandling.REMOVE,
|
1120
|
+
description="Whether to keep, remove, or set inactive the existing schedules when branching",
|
1121
|
+
)
|
1122
|
+
|
1123
|
+
|
1110
1124
|
class Deployment(ObjectBaseModel):
|
1111
1125
|
"""An ORM representation of deployment data."""
|
1112
1126
|
|
@@ -308,6 +308,8 @@ class FlowRunResponse(ObjectBaseModel):
|
|
308
308
|
|
309
309
|
class DeploymentResponse(ObjectBaseModel):
|
310
310
|
name: str = Field(default=..., description="The name of the deployment.")
|
311
|
+
|
312
|
+
# Versionining
|
311
313
|
version: Optional[str] = Field(
|
312
314
|
default=None, description="An optional version for the deployment."
|
313
315
|
)
|
@@ -317,6 +319,18 @@ class DeploymentResponse(ObjectBaseModel):
|
|
317
319
|
version_info: Optional[objects.VersionInfo] = Field(
|
318
320
|
default=None, description="A description of this version of the deployment."
|
319
321
|
)
|
322
|
+
|
323
|
+
# Branching
|
324
|
+
branch: Optional[str] = Field(
|
325
|
+
default=None, description="The branch of the deployment."
|
326
|
+
)
|
327
|
+
base: Optional[UUID] = Field(
|
328
|
+
default=None, description="The base deployment of the deployment."
|
329
|
+
)
|
330
|
+
root: Optional[UUID] = Field(
|
331
|
+
default=None, description="The root deployment of the deployment."
|
332
|
+
)
|
333
|
+
|
320
334
|
description: Optional[str] = Field(
|
321
335
|
default=None, description="A description for the deployment."
|
322
336
|
)
|
@@ -438,6 +452,15 @@ class DeploymentResponse(ObjectBaseModel):
|
|
438
452
|
"prefect.resource.name": self.name,
|
439
453
|
}
|
440
454
|
|
455
|
+
if self.branch:
|
456
|
+
labels["prefect.deployment.branch"] = self.branch
|
457
|
+
|
458
|
+
if self.base:
|
459
|
+
labels["prefect.deployment.base"] = f"prefect.deployment.{self.base}"
|
460
|
+
|
461
|
+
if self.root:
|
462
|
+
labels["prefect.deployment.root"] = f"prefect.deployment.{self.root}"
|
463
|
+
|
441
464
|
if self.version_id and self.version_info:
|
442
465
|
labels["prefect.deployment.version-id"] = str(self.version_id)
|
443
466
|
labels["prefect.deployment.version-type"] = self.version_info.type
|
prefect/deployments/base.py
CHANGED
@@ -110,6 +110,7 @@ def create_default_prefect_yaml(
|
|
110
110
|
f,
|
111
111
|
sort_keys=False,
|
112
112
|
)
|
113
|
+
|
113
114
|
return True
|
114
115
|
|
115
116
|
|
@@ -293,6 +294,10 @@ def _save_deployment_to_prefect_file(
|
|
293
294
|
|
294
295
|
current_directory_name = os.path.basename(os.getcwd())
|
295
296
|
if not prefect_file.exists():
|
297
|
+
if triggers:
|
298
|
+
deployment["triggers"] = triggers
|
299
|
+
if sla:
|
300
|
+
deployment["sla"] = sla
|
296
301
|
create_default_prefect_yaml(
|
297
302
|
".",
|
298
303
|
current_directory_name,
|
prefect/runner/runner.py
CHANGED
@@ -1363,7 +1363,9 @@ class Runner:
|
|
1363
1363
|
ready_to_submit = await self._propose_pending_state(flow_run)
|
1364
1364
|
|
1365
1365
|
if ready_to_submit:
|
1366
|
-
readiness_result
|
1366
|
+
readiness_result: (
|
1367
|
+
anyio.abc.Process | Exception
|
1368
|
+
) = await self._runs_task_group.start(
|
1367
1369
|
partial(
|
1368
1370
|
self._submit_run_and_capture_errors,
|
1369
1371
|
flow_run=flow_run,
|
@@ -1374,7 +1376,7 @@ class Runner:
|
|
1374
1376
|
if readiness_result and not isinstance(readiness_result, Exception):
|
1375
1377
|
async with self._flow_run_process_map_lock:
|
1376
1378
|
self._flow_run_process_map[flow_run.id] = ProcessMapEntry(
|
1377
|
-
pid=readiness_result, flow_run=flow_run
|
1379
|
+
pid=readiness_result.pid, flow_run=flow_run
|
1378
1380
|
)
|
1379
1381
|
# Heartbeats are opt-in and only emitted if a heartbeat frequency is set
|
1380
1382
|
if self.heartbeat_seconds is not None:
|
prefect/runner/server.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import uuid
|
4
|
+
from datetime import datetime
|
4
5
|
from typing import TYPE_CHECKING, Any, Callable, Coroutine, Hashable, Optional
|
5
6
|
|
6
7
|
import uvicorn
|
@@ -8,6 +9,7 @@ from fastapi import APIRouter, FastAPI, HTTPException, status
|
|
8
9
|
from fastapi.responses import JSONResponse
|
9
10
|
from typing_extensions import Literal
|
10
11
|
|
12
|
+
from prefect._internal.compatibility.deprecated import deprecated_callable
|
11
13
|
from prefect._internal.schemas.validators import validate_values_conform_to_schema
|
12
14
|
from prefect.client.orchestration import get_client
|
13
15
|
from prefect.exceptions import MissingFlowError, ScriptError
|
@@ -252,6 +254,11 @@ def _build_generic_endpoint_for_flows(
|
|
252
254
|
return _create_flow_run_for_flow_from_fqn
|
253
255
|
|
254
256
|
|
257
|
+
@deprecated_callable(
|
258
|
+
start_date=datetime(2025, 4, 1),
|
259
|
+
end_date=datetime(2025, 10, 1),
|
260
|
+
help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
|
261
|
+
)
|
255
262
|
async def build_server(runner: "Runner") -> FastAPI:
|
256
263
|
"""
|
257
264
|
Build a FastAPI server for a runner.
|
@@ -296,6 +303,11 @@ async def build_server(runner: "Runner") -> FastAPI:
|
|
296
303
|
return webserver
|
297
304
|
|
298
305
|
|
306
|
+
@deprecated_callable(
|
307
|
+
start_date=datetime(2025, 4, 1),
|
308
|
+
end_date=datetime(2025, 10, 1),
|
309
|
+
help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
|
310
|
+
)
|
299
311
|
def start_webserver(runner: "Runner", log_level: str | None = None) -> None:
|
300
312
|
"""
|
301
313
|
Run a FastAPI server for a runner.
|
prefect/runner/submit.py
CHANGED
@@ -3,12 +3,14 @@ from __future__ import annotations
|
|
3
3
|
import asyncio
|
4
4
|
import inspect
|
5
5
|
import uuid
|
6
|
+
from datetime import datetime
|
6
7
|
from typing import TYPE_CHECKING, Any, Union, overload
|
7
8
|
|
8
9
|
import anyio
|
9
10
|
import httpx
|
10
11
|
from typing_extensions import Literal, TypeAlias
|
11
12
|
|
13
|
+
from prefect._internal.compatibility.deprecated import deprecated_callable
|
12
14
|
from prefect.client.orchestration import get_client
|
13
15
|
from prefect.client.schemas.filters import (
|
14
16
|
FlowRunFilter,
|
@@ -119,6 +121,11 @@ def submit_to_runner(
|
|
119
121
|
) -> list[FlowRun]: ...
|
120
122
|
|
121
123
|
|
124
|
+
@deprecated_callable(
|
125
|
+
start_date=datetime(2025, 4, 1),
|
126
|
+
end_date=datetime(2025, 10, 1),
|
127
|
+
help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
|
128
|
+
)
|
122
129
|
@sync_compatible
|
123
130
|
async def submit_to_runner(
|
124
131
|
prefect_callable: Flow[Any, Any],
|
@@ -186,13 +193,18 @@ async def submit_to_runner(
|
|
186
193
|
return submitted_runs
|
187
194
|
|
188
195
|
|
196
|
+
@deprecated_callable(
|
197
|
+
start_date=datetime(2025, 4, 1),
|
198
|
+
end_date=datetime(2025, 10, 1),
|
199
|
+
help="Use background tasks (https://docs.prefect.io/v3/develop/deferred-tasks) or `run_deployment` and `.serve` instead of submitting runs to the Runner webserver.",
|
200
|
+
)
|
189
201
|
@sync_compatible
|
190
202
|
async def wait_for_submitted_runs(
|
191
203
|
flow_run_filter: FlowRunFilter | None = None,
|
192
204
|
task_run_filter: TaskRunFilter | None = None,
|
193
205
|
timeout: float | None = None,
|
194
206
|
poll_interval: float = 3.0,
|
195
|
-
):
|
207
|
+
) -> uuid.UUID | None:
|
196
208
|
"""
|
197
209
|
Wait for completion of any provided flow runs (eventually task runs), as well as subflow runs
|
198
210
|
of the current flow run (if called from within a flow run and subflow runs exist).
|
prefect/server/api/flow_runs.py
CHANGED
@@ -48,7 +48,7 @@ from prefect.server.schemas.responses import (
|
|
48
48
|
)
|
49
49
|
from prefect.server.utilities.server import PrefectRouter
|
50
50
|
from prefect.types import DateTime
|
51
|
-
from prefect.types._datetime import now
|
51
|
+
from prefect.types._datetime import earliest_possible_datetime, now
|
52
52
|
from prefect.utilities import schema_tools
|
53
53
|
|
54
54
|
if TYPE_CHECKING:
|
@@ -353,7 +353,7 @@ async def read_flow_run_graph_v1(
|
|
353
353
|
async def read_flow_run_graph_v2(
|
354
354
|
flow_run_id: UUID = Path(..., description="The flow run id", alias="id"),
|
355
355
|
since: datetime.datetime = Query(
|
356
|
-
default=jsonable_encoder(
|
356
|
+
default=jsonable_encoder(earliest_possible_datetime()),
|
357
357
|
description="Only include runs that start or end after this time.",
|
358
358
|
),
|
359
359
|
db: PrefectDBInterface = Depends(provide_database_interface),
|
@@ -50,7 +50,7 @@ class ServerEventsSettings(PrefectBaseSettings):
|
|
50
50
|
)
|
51
51
|
|
52
52
|
maximum_related_resources: int = Field(
|
53
|
-
default=
|
53
|
+
default=100,
|
54
54
|
description="The maximum number of related resources an Event may have.",
|
55
55
|
validation_alias=AliasChoices(
|
56
56
|
AliasPath("maximum_related_resources"),
|
@@ -385,6 +385,13 @@ class ServerServicesSchedulerSettings(ServicesBaseSetting):
|
|
385
385
|
),
|
386
386
|
)
|
387
387
|
|
388
|
+
recent_deployments_loop_seconds: float = Field(
|
389
|
+
default=5,
|
390
|
+
description="""
|
391
|
+
The number of seconds the recent deployments scheduler will wait between checking for recently updated deployments. Defaults to `5`.
|
392
|
+
""",
|
393
|
+
)
|
394
|
+
|
388
395
|
|
389
396
|
class ServerServicesPauseExpirationsSettings(ServicesBaseSetting):
|
390
397
|
"""
|
prefect/states.py
CHANGED
@@ -776,7 +776,7 @@ def AwaitingRetry(
|
|
776
776
|
"""Convenience function for creating `AwaitingRetry` states.
|
777
777
|
|
778
778
|
Returns:
|
779
|
-
State:
|
779
|
+
State: an AwaitingRetry state
|
780
780
|
"""
|
781
781
|
return Scheduled(
|
782
782
|
cls=cls, scheduled_time=scheduled_time, name="AwaitingRetry", **kwargs
|
@@ -791,7 +791,7 @@ def AwaitingConcurrencySlot(
|
|
791
791
|
"""Convenience function for creating `AwaitingConcurrencySlot` states.
|
792
792
|
|
793
793
|
Returns:
|
794
|
-
State:
|
794
|
+
State: an AwaitingConcurrencySlot state
|
795
795
|
"""
|
796
796
|
return Scheduled(
|
797
797
|
cls=cls, scheduled_time=scheduled_time, name="AwaitingConcurrencySlot", **kwargs
|
@@ -1,7 +1,7 @@
|
|
1
1
|
prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
|
2
2
|
prefect/__init__.py,sha256=iCdcC5ZmeewikCdnPEP6YBAjPNV5dvfxpYCTpw30Hkw,3685
|
3
3
|
prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
|
4
|
-
prefect/_build_info.py,sha256=
|
4
|
+
prefect/_build_info.py,sha256=6RJC3z2YmDGQcXgBE0UBptQmhmV-mbHV7Ksok0VNyVg,180
|
5
5
|
prefect/_result_records.py,sha256=S6QmsODkehGVSzbMm6ig022PYbI6gNKz671p_8kBYx4,7789
|
6
6
|
prefect/_waiters.py,sha256=Ia2ITaXdHzevtyWIgJoOg95lrEXQqNEOquHvw3T33UQ,9026
|
7
7
|
prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
@@ -22,7 +22,7 @@ prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
prefect/results.py,sha256=9mMOOZsj8ueqEch3oqxCaZPhF6D76Sn3P5TkqgVpbg8,36679
|
23
23
|
prefect/schedules.py,sha256=dhq4OhImRvcmtxF7UH1m8RbwYdHT5RQsp_FrxVXfODE,7289
|
24
24
|
prefect/serializers.py,sha256=QI0oEal_BO4HQaWSjr6ReSwT55Hn4sbSOXxGgQI1-y0,9249
|
25
|
-
prefect/states.py,sha256=
|
25
|
+
prefect/states.py,sha256=rh7l1bnIYpTXdlXt5nnpz66y9KLjBWAJrN9Eo5RwgQs,26023
|
26
26
|
prefect/task_engine.py,sha256=IIvDRl2bnnO3aKXTmtWsz0pnV8kL7xjOaUyJTlL6LaM,61491
|
27
27
|
prefect/task_runners.py,sha256=Ce_ngocfq_X-NA5zhPj13IdVmzZ5h6gXlmfxYWs2AXA,15828
|
28
28
|
prefect/task_runs.py,sha256=7LIzfo3fondCyEUpU05sYFN5IfpZigBDXrhG5yc-8t0,9039
|
@@ -84,7 +84,7 @@ prefect/client/subscriptions.py,sha256=b2gjoWjrTjshnv_s6zlPN3t0JIe2EKAdMqEzj3-kc
|
|
84
84
|
prefect/client/utilities.py,sha256=UEJD6nwYg2mD8-GSmru-E2ofXaBlmSFZ2-8T_5rIK6c,3472
|
85
85
|
prefect/client/orchestration/__init__.py,sha256=1GHRA9-JWPBX6oSVNytQ1qL6epFeslRT2oBgZdFDJ68,60807
|
86
86
|
prefect/client/orchestration/base.py,sha256=HM6ryHBZSzuHoCFQM9u5qR5k1dN9Bbr_ah6z1UPNbZQ,1542
|
87
|
-
prefect/client/orchestration/routes.py,sha256=
|
87
|
+
prefect/client/orchestration/routes.py,sha256=FHG9xyop_eXp6wtg0Fp0G14J6lO8UVsdnhGY5qvnJ9k,4396
|
88
88
|
prefect/client/orchestration/_artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
89
|
prefect/client/orchestration/_artifacts/client.py,sha256=0GEM4rJWeedKR2xVgWQcX6DpLyn0zKFJF9nfRCQ4tpM,8855
|
90
90
|
prefect/client/orchestration/_automations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -98,7 +98,7 @@ prefect/client/orchestration/_blocks_types/client.py,sha256=alA4xD-yp3mycAbzMyRu
|
|
98
98
|
prefect/client/orchestration/_concurrency_limits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
99
99
|
prefect/client/orchestration/_concurrency_limits/client.py,sha256=r_oyY7hQbgyG1rntwe7WWcsraQHBKhk6MOPFUAHWiVc,23678
|
100
100
|
prefect/client/orchestration/_deployments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
101
|
-
prefect/client/orchestration/_deployments/client.py,sha256=
|
101
|
+
prefect/client/orchestration/_deployments/client.py,sha256=I2-RhU15lbEI1_JX_-WJErfp3lkvTCJHja-p4y8hzLA,42923
|
102
102
|
prefect/client/orchestration/_flow_runs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
103
103
|
prefect/client/orchestration/_flow_runs/client.py,sha256=fjh5J-LG8tsny7BGYEvynbuGuHDAudYHpx-PamL0GYQ,32220
|
104
104
|
prefect/client/orchestration/_flows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -110,10 +110,10 @@ prefect/client/orchestration/_variables/client.py,sha256=wKBbZBLGgs5feDCil-xxKt3
|
|
110
110
|
prefect/client/orchestration/_work_pools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
111
111
|
prefect/client/orchestration/_work_pools/client.py,sha256=s1DfUQQBgB2sLiVVPhLNTlkueUDE6uFsh4mAzcSA1OE,19881
|
112
112
|
prefect/client/schemas/__init__.py,sha256=InZcDzdeWA2oaV0TlyvoMcyLcbi_aaqU1U9D6Gx-eoU,2747
|
113
|
-
prefect/client/schemas/actions.py,sha256=
|
113
|
+
prefect/client/schemas/actions.py,sha256=e4I21SQZt0zSIxdHgPox269eUUOPHzcv0xytgsmyKqY,34403
|
114
114
|
prefect/client/schemas/filters.py,sha256=zaiDkalrIpKjd38V4aP1GHlqD24KTPCZiKtPyX69ZWE,36607
|
115
|
-
prefect/client/schemas/objects.py,sha256=
|
116
|
-
prefect/client/schemas/responses.py,sha256=
|
115
|
+
prefect/client/schemas/objects.py,sha256=nyaodVdbZIl-p5e7BvF5olPoiHZkymXkn7nFkFnXqXA,59402
|
116
|
+
prefect/client/schemas/responses.py,sha256=Zdcx7jlIaluEa2uYIOE5mK1HsJvWPErRAcaWM20oY_I,17336
|
117
117
|
prefect/client/schemas/schedules.py,sha256=sxLFk0SmFY7X1Y9R9HyGDqOS3U5NINBWTciUU7vTTic,14836
|
118
118
|
prefect/client/schemas/sorting.py,sha256=L-2Mx-igZPtsUoRUguTcG3nIEstMEMPD97NwPM2Ox5s,2579
|
119
119
|
prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -133,7 +133,7 @@ prefect/concurrency/v1/context.py,sha256=BhK63TYp9BQYRCgTI1onUPXmgBoYaP7o27U695l
|
|
133
133
|
prefect/concurrency/v1/services.py,sha256=ppVCllzb2qeKc-xntobFu45dEh3J-ZTtLDPuHr1djxo,2958
|
134
134
|
prefect/concurrency/v1/sync.py,sha256=N_CHNkbV_eNQvDsJoJaehQo8H68MFlX6B1ObDZuYlTM,2112
|
135
135
|
prefect/deployments/__init__.py,sha256=_wb7NxDKhq11z9MjYsPckmT3o6MRhGLRgCV9TmvYtew,1002
|
136
|
-
prefect/deployments/base.py,sha256=
|
136
|
+
prefect/deployments/base.py,sha256=YY7g8MN6qzjNEjEA8wQXPxCrd47WnACIUeSRtI4nrEk,11849
|
137
137
|
prefect/deployments/deployments.py,sha256=K3Rgnpjxo_T8I8LMwlq24OKqZiZBTE8-YnPg-YGUStM,171
|
138
138
|
prefect/deployments/flow_runs.py,sha256=NYe-Bphsy6ENLqSSfywQuX5cRZt-uVgzqGmOsf3Sqw4,7643
|
139
139
|
prefect/deployments/runner.py,sha256=QNKdKsLEzx3TE7T_3dJcK7bGvTCvNLY2WCpgDxiQDno,54368
|
@@ -182,10 +182,10 @@ prefect/logging/highlighters.py,sha256=BCf_LNhFInIfGPqwuu8YVrGa4wVxNc4YXo2pYgftp
|
|
182
182
|
prefect/logging/loggers.py,sha256=rwFJv0i3dhdKr25XX-xUkQy4Vv4dy18bTy366jrC0OQ,12741
|
183
183
|
prefect/logging/logging.yml,sha256=tT7gTyC4NmngFSqFkCdHaw7R0GPNPDDsTCGZQByiJAQ,3169
|
184
184
|
prefect/runner/__init__.py,sha256=pQBd9wVrUVUDUFJlgiweKSnbahoBZwqnd2O2jkhrULY,158
|
185
|
-
prefect/runner/runner.py,sha256=
|
186
|
-
prefect/runner/server.py,sha256=
|
185
|
+
prefect/runner/runner.py,sha256=D2sTbcUvFW5eiQLsQgzUO8hSTyWMvwQ7-nTg35twuIY,64962
|
186
|
+
prefect/runner/server.py,sha256=YRYFNoYddA9XfiTIYtudxrnD1vCX-PaOLhvyGUOb9AQ,11966
|
187
187
|
prefect/runner/storage.py,sha256=L7aSjie5L6qbXYCDqYDX3ouQ_NsNMlmfjPeaWOC-ncs,28043
|
188
|
-
prefect/runner/submit.py,sha256=
|
188
|
+
prefect/runner/submit.py,sha256=qOEj-NChQ6RYFV35hHEVMTklrNmKwaGs2mR78ku9H0o,9474
|
189
189
|
prefect/runner/utils.py,sha256=19DbhyiV6nvSpTXmnWlt7qPNt1jrz1jscznYrRVGurw,3413
|
190
190
|
prefect/runtime/__init__.py,sha256=JswiTlYRup2zXOYu8AqJ7czKtgcw9Kxo0tTbS6aWCqY,407
|
191
191
|
prefect/runtime/deployment.py,sha256=0A_cUVpYiFk3ciJw2ixy95dk9xBJcjisyF69pakSCcQ,5091
|
@@ -205,11 +205,11 @@ prefect/server/api/concurrency_limits.py,sha256=E5TB2cJPIZjnxnm1pGxUJnwMDz5CS58g
|
|
205
205
|
prefect/server/api/concurrency_limits_v2.py,sha256=PGjG7W2Z65OojNTP0ezFu2z69plXo1N8paqwHlHAPj0,10183
|
206
206
|
prefect/server/api/csrf_token.py,sha256=BwysSjQAhre7O0OY_LF3ZcIiO53FdMQroNT11Q6OcOM,1344
|
207
207
|
prefect/server/api/dependencies.py,sha256=VujfcIGn41TGJxUunFHVabY5hE-6nY6uSHyhNFj8PdI,6634
|
208
|
-
prefect/server/api/deployments.py,sha256=
|
208
|
+
prefect/server/api/deployments.py,sha256=HQwgiFQXHJ0bpNFRrhW6cY0rQFua0JJfcsMnPyj1H8I,37963
|
209
209
|
prefect/server/api/events.py,sha256=3-Qdt6ORxFv3nLoogQqvd72zEulJSoAmcqZto2OULuk,9907
|
210
210
|
prefect/server/api/flow_run_notification_policies.py,sha256=F8xNm6bgZTC3nFe9xCUJS4NlU9tLXZ8fShtJqmhT2m4,4828
|
211
211
|
prefect/server/api/flow_run_states.py,sha256=lIdxVE9CqLgtDCuH9bTaKkzHNL81FPrr11liPzvONrw,1661
|
212
|
-
prefect/server/api/flow_runs.py,sha256=
|
212
|
+
prefect/server/api/flow_runs.py,sha256=Lmb165fLbN4DioxjxgDYaAJ5Qxj771iRYaqn-hYq9KM,33744
|
213
213
|
prefect/server/api/flows.py,sha256=Bz0ISh-9oY0W1X3mqA631_8678pQ6tuRGMpSgWAfxOc,7018
|
214
214
|
prefect/server/api/logs.py,sha256=0z78tM2B5sRgJWYRWJn5lHhRoLtZB_OU3C-uALV8tOs,1571
|
215
215
|
prefect/server/api/middleware.py,sha256=WkyuyeJIfo9Q0GAIVU5gO6yIGNVwoHwuBah5AB5oUyw,2733
|
@@ -261,10 +261,10 @@ prefect/settings/models/server/api.py,sha256=fhj9pt6RGtUHkyriaTPto4NnOwJD4XWLdIy
|
|
261
261
|
prefect/settings/models/server/database.py,sha256=Ilw452gS4L1L4tk53JP-G080JblPVdWzdSVxhfuXcXQ,11156
|
262
262
|
prefect/settings/models/server/deployments.py,sha256=LjWQr2U1mjItYhuuLqMT_QQ7P4KHqC-tKFfA-rEKefs,898
|
263
263
|
prefect/settings/models/server/ephemeral.py,sha256=rh8Py5Nxh-gq9KgfB7CDnIgT_nuOuv59OrLGuhMIGmk,1043
|
264
|
-
prefect/settings/models/server/events.py,sha256=
|
264
|
+
prefect/settings/models/server/events.py,sha256=9rdlbLz9SIg_easm1UcFTfX1seS935Xtv5d9y3r39Eo,5578
|
265
265
|
prefect/settings/models/server/flow_run_graph.py,sha256=PuAZqqdu6fzvrbUgXZzyntUH_Ii_bP7qezgcgvW7ULk,1146
|
266
266
|
prefect/settings/models/server/root.py,sha256=Dk_Zx4eGUy1h2cAetDKphnd6TWhDrK6DHOLJxdP7e1Y,5215
|
267
|
-
prefect/settings/models/server/services.py,sha256=
|
267
|
+
prefect/settings/models/server/services.py,sha256=FlU12Mw_J7KG_xsX-4Xp_t1WfTqDUDeniEGseV1WaEI,18866
|
268
268
|
prefect/settings/models/server/tasks.py,sha256=_CaOUfh3WDXvUhmHXmR-MkTRaQqocZck4efmX74iOg8,2976
|
269
269
|
prefect/settings/models/server/ui.py,sha256=hShsi4rPBtdJA2WnT1Er0tWqu-e5wUum8NkNgucShkk,1867
|
270
270
|
prefect/telemetry/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
@@ -316,7 +316,7 @@ prefect/workers/cloud.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
|
316
316
|
prefect/workers/process.py,sha256=uxOwcqA2Ps-V-W6WeSdKCQMINrCxBEVx1K1Un8pb7vs,8973
|
317
317
|
prefect/workers/server.py,sha256=2pmVeJZiVbEK02SO6BEZaBIvHMsn6G8LzjW8BXyiTtk,1952
|
318
318
|
prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
|
319
|
-
prefect_client-3.3.
|
320
|
-
prefect_client-3.3.
|
321
|
-
prefect_client-3.3.
|
322
|
-
prefect_client-3.3.
|
319
|
+
prefect_client-3.3.4.dist-info/METADATA,sha256=Zb7WtdACzoCAfciXzTJuUYKTxqRgd60APZGpyJpY1kA,7451
|
320
|
+
prefect_client-3.3.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
321
|
+
prefect_client-3.3.4.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
|
322
|
+
prefect_client-3.3.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|