prefect-client 2.20.4__py3-none-any.whl → 3.0.0__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/__init__.py +74 -110
- prefect/_internal/compatibility/deprecated.py +6 -115
- prefect/_internal/compatibility/experimental.py +4 -79
- prefect/_internal/compatibility/migration.py +166 -0
- prefect/_internal/concurrency/__init__.py +2 -2
- prefect/_internal/concurrency/api.py +1 -35
- prefect/_internal/concurrency/calls.py +0 -6
- prefect/_internal/concurrency/cancellation.py +0 -3
- prefect/_internal/concurrency/event_loop.py +0 -20
- prefect/_internal/concurrency/inspection.py +3 -3
- prefect/_internal/concurrency/primitives.py +1 -0
- prefect/_internal/concurrency/services.py +23 -0
- prefect/_internal/concurrency/threads.py +35 -0
- prefect/_internal/concurrency/waiters.py +0 -28
- prefect/_internal/integrations.py +7 -0
- prefect/_internal/pydantic/__init__.py +0 -45
- prefect/_internal/pydantic/annotations/pendulum.py +2 -2
- prefect/_internal/pydantic/v1_schema.py +21 -22
- prefect/_internal/pydantic/v2_schema.py +0 -2
- prefect/_internal/pydantic/v2_validated_func.py +18 -23
- prefect/_internal/pytz.py +1 -1
- prefect/_internal/retries.py +61 -0
- prefect/_internal/schemas/bases.py +45 -177
- prefect/_internal/schemas/fields.py +1 -43
- prefect/_internal/schemas/validators.py +47 -233
- prefect/agent.py +3 -695
- prefect/artifacts.py +173 -14
- prefect/automations.py +39 -4
- prefect/blocks/abstract.py +1 -1
- prefect/blocks/core.py +405 -153
- prefect/blocks/fields.py +2 -57
- prefect/blocks/notifications.py +43 -28
- prefect/blocks/redis.py +168 -0
- prefect/blocks/system.py +67 -20
- prefect/blocks/webhook.py +2 -9
- prefect/cache_policies.py +239 -0
- prefect/client/__init__.py +4 -0
- prefect/client/base.py +33 -27
- prefect/client/cloud.py +65 -20
- prefect/client/collections.py +1 -1
- prefect/client/orchestration.py +650 -442
- prefect/client/schemas/actions.py +115 -100
- prefect/client/schemas/filters.py +46 -52
- prefect/client/schemas/objects.py +228 -178
- prefect/client/schemas/responses.py +18 -36
- prefect/client/schemas/schedules.py +55 -36
- prefect/client/schemas/sorting.py +2 -0
- prefect/client/subscriptions.py +8 -7
- prefect/client/types/flexible_schedule_list.py +11 -0
- prefect/client/utilities.py +9 -6
- prefect/concurrency/asyncio.py +60 -11
- prefect/concurrency/context.py +24 -0
- prefect/concurrency/events.py +2 -2
- prefect/concurrency/services.py +46 -16
- prefect/concurrency/sync.py +51 -7
- prefect/concurrency/v1/asyncio.py +143 -0
- prefect/concurrency/v1/context.py +27 -0
- prefect/concurrency/v1/events.py +61 -0
- prefect/concurrency/v1/services.py +116 -0
- prefect/concurrency/v1/sync.py +92 -0
- prefect/context.py +246 -149
- prefect/deployments/__init__.py +33 -18
- prefect/deployments/base.py +10 -15
- prefect/deployments/deployments.py +2 -1048
- prefect/deployments/flow_runs.py +178 -0
- prefect/deployments/runner.py +72 -173
- prefect/deployments/schedules.py +31 -25
- prefect/deployments/steps/__init__.py +0 -1
- prefect/deployments/steps/core.py +7 -0
- prefect/deployments/steps/pull.py +15 -21
- prefect/deployments/steps/utility.py +2 -1
- prefect/docker/__init__.py +20 -0
- prefect/docker/docker_image.py +82 -0
- prefect/engine.py +15 -2475
- prefect/events/actions.py +17 -23
- prefect/events/cli/automations.py +20 -7
- prefect/events/clients.py +142 -80
- prefect/events/filters.py +14 -18
- prefect/events/related.py +74 -75
- prefect/events/schemas/__init__.py +0 -5
- prefect/events/schemas/automations.py +55 -46
- prefect/events/schemas/deployment_triggers.py +7 -197
- prefect/events/schemas/events.py +46 -65
- prefect/events/schemas/labelling.py +10 -14
- prefect/events/utilities.py +4 -5
- prefect/events/worker.py +23 -8
- prefect/exceptions.py +15 -0
- prefect/filesystems.py +30 -529
- prefect/flow_engine.py +827 -0
- prefect/flow_runs.py +379 -7
- prefect/flows.py +470 -360
- prefect/futures.py +382 -331
- prefect/infrastructure/__init__.py +5 -26
- prefect/infrastructure/base.py +3 -320
- prefect/infrastructure/provisioners/__init__.py +5 -3
- prefect/infrastructure/provisioners/cloud_run.py +13 -8
- prefect/infrastructure/provisioners/container_instance.py +14 -9
- prefect/infrastructure/provisioners/ecs.py +10 -8
- prefect/infrastructure/provisioners/modal.py +8 -5
- prefect/input/__init__.py +4 -0
- prefect/input/actions.py +2 -4
- prefect/input/run_input.py +9 -9
- prefect/logging/formatters.py +2 -4
- prefect/logging/handlers.py +9 -14
- prefect/logging/loggers.py +5 -5
- prefect/main.py +72 -0
- prefect/plugins.py +2 -64
- prefect/profiles.toml +16 -2
- prefect/records/__init__.py +1 -0
- prefect/records/base.py +223 -0
- prefect/records/filesystem.py +207 -0
- prefect/records/memory.py +178 -0
- prefect/records/result_store.py +64 -0
- prefect/results.py +577 -504
- prefect/runner/runner.py +117 -47
- prefect/runner/server.py +32 -34
- prefect/runner/storage.py +3 -12
- prefect/runner/submit.py +2 -10
- prefect/runner/utils.py +2 -2
- prefect/runtime/__init__.py +1 -0
- prefect/runtime/deployment.py +1 -0
- prefect/runtime/flow_run.py +40 -5
- prefect/runtime/task_run.py +1 -0
- prefect/serializers.py +28 -39
- prefect/server/api/collections_data/views/aggregate-worker-metadata.json +5 -14
- prefect/settings.py +209 -332
- prefect/states.py +160 -63
- prefect/task_engine.py +1478 -57
- prefect/task_runners.py +383 -287
- prefect/task_runs.py +240 -0
- prefect/task_worker.py +463 -0
- prefect/tasks.py +684 -374
- prefect/transactions.py +410 -0
- prefect/types/__init__.py +72 -86
- prefect/types/entrypoint.py +13 -0
- prefect/utilities/annotations.py +4 -3
- prefect/utilities/asyncutils.py +227 -148
- prefect/utilities/callables.py +137 -45
- prefect/utilities/collections.py +134 -86
- prefect/utilities/dispatch.py +27 -14
- prefect/utilities/dockerutils.py +11 -4
- prefect/utilities/engine.py +186 -32
- prefect/utilities/filesystem.py +4 -5
- prefect/utilities/importtools.py +26 -27
- prefect/utilities/pydantic.py +128 -38
- prefect/utilities/schema_tools/hydration.py +18 -1
- prefect/utilities/schema_tools/validation.py +30 -0
- prefect/utilities/services.py +35 -9
- prefect/utilities/templating.py +12 -2
- prefect/utilities/timeout.py +20 -5
- prefect/utilities/urls.py +195 -0
- prefect/utilities/visualization.py +1 -0
- prefect/variables.py +78 -59
- prefect/workers/__init__.py +0 -1
- prefect/workers/base.py +237 -244
- prefect/workers/block.py +5 -226
- prefect/workers/cloud.py +6 -0
- prefect/workers/process.py +265 -12
- prefect/workers/server.py +29 -11
- {prefect_client-2.20.4.dist-info → prefect_client-3.0.0.dist-info}/METADATA +28 -24
- prefect_client-3.0.0.dist-info/RECORD +201 -0
- {prefect_client-2.20.4.dist-info → prefect_client-3.0.0.dist-info}/WHEEL +1 -1
- prefect/_internal/pydantic/_base_model.py +0 -51
- prefect/_internal/pydantic/_compat.py +0 -82
- prefect/_internal/pydantic/_flags.py +0 -20
- prefect/_internal/pydantic/_types.py +0 -8
- prefect/_internal/pydantic/utilities/config_dict.py +0 -72
- prefect/_internal/pydantic/utilities/field_validator.py +0 -150
- prefect/_internal/pydantic/utilities/model_construct.py +0 -56
- prefect/_internal/pydantic/utilities/model_copy.py +0 -55
- prefect/_internal/pydantic/utilities/model_dump.py +0 -136
- prefect/_internal/pydantic/utilities/model_dump_json.py +0 -112
- prefect/_internal/pydantic/utilities/model_fields.py +0 -50
- prefect/_internal/pydantic/utilities/model_fields_set.py +0 -29
- prefect/_internal/pydantic/utilities/model_json_schema.py +0 -82
- prefect/_internal/pydantic/utilities/model_rebuild.py +0 -80
- prefect/_internal/pydantic/utilities/model_validate.py +0 -75
- prefect/_internal/pydantic/utilities/model_validate_json.py +0 -68
- prefect/_internal/pydantic/utilities/model_validator.py +0 -87
- prefect/_internal/pydantic/utilities/type_adapter.py +0 -71
- prefect/_vendor/fastapi/__init__.py +0 -25
- prefect/_vendor/fastapi/applications.py +0 -946
- prefect/_vendor/fastapi/background.py +0 -3
- prefect/_vendor/fastapi/concurrency.py +0 -44
- prefect/_vendor/fastapi/datastructures.py +0 -58
- prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
- prefect/_vendor/fastapi/dependencies/models.py +0 -64
- prefect/_vendor/fastapi/dependencies/utils.py +0 -877
- prefect/_vendor/fastapi/encoders.py +0 -177
- prefect/_vendor/fastapi/exception_handlers.py +0 -40
- prefect/_vendor/fastapi/exceptions.py +0 -46
- prefect/_vendor/fastapi/logger.py +0 -3
- prefect/_vendor/fastapi/middleware/__init__.py +0 -1
- prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -25
- prefect/_vendor/fastapi/middleware/cors.py +0 -3
- prefect/_vendor/fastapi/middleware/gzip.py +0 -3
- prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -3
- prefect/_vendor/fastapi/middleware/trustedhost.py +0 -3
- prefect/_vendor/fastapi/middleware/wsgi.py +0 -3
- prefect/_vendor/fastapi/openapi/__init__.py +0 -0
- prefect/_vendor/fastapi/openapi/constants.py +0 -2
- prefect/_vendor/fastapi/openapi/docs.py +0 -203
- prefect/_vendor/fastapi/openapi/models.py +0 -480
- prefect/_vendor/fastapi/openapi/utils.py +0 -485
- prefect/_vendor/fastapi/param_functions.py +0 -340
- prefect/_vendor/fastapi/params.py +0 -453
- prefect/_vendor/fastapi/py.typed +0 -0
- prefect/_vendor/fastapi/requests.py +0 -4
- prefect/_vendor/fastapi/responses.py +0 -40
- prefect/_vendor/fastapi/routing.py +0 -1331
- prefect/_vendor/fastapi/security/__init__.py +0 -15
- prefect/_vendor/fastapi/security/api_key.py +0 -98
- prefect/_vendor/fastapi/security/base.py +0 -6
- prefect/_vendor/fastapi/security/http.py +0 -172
- prefect/_vendor/fastapi/security/oauth2.py +0 -227
- prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -34
- prefect/_vendor/fastapi/security/utils.py +0 -10
- prefect/_vendor/fastapi/staticfiles.py +0 -1
- prefect/_vendor/fastapi/templating.py +0 -3
- prefect/_vendor/fastapi/testclient.py +0 -1
- prefect/_vendor/fastapi/types.py +0 -3
- prefect/_vendor/fastapi/utils.py +0 -235
- prefect/_vendor/fastapi/websockets.py +0 -7
- prefect/_vendor/starlette/__init__.py +0 -1
- prefect/_vendor/starlette/_compat.py +0 -28
- prefect/_vendor/starlette/_exception_handler.py +0 -80
- prefect/_vendor/starlette/_utils.py +0 -88
- prefect/_vendor/starlette/applications.py +0 -261
- prefect/_vendor/starlette/authentication.py +0 -159
- prefect/_vendor/starlette/background.py +0 -43
- prefect/_vendor/starlette/concurrency.py +0 -59
- prefect/_vendor/starlette/config.py +0 -151
- prefect/_vendor/starlette/convertors.py +0 -87
- prefect/_vendor/starlette/datastructures.py +0 -707
- prefect/_vendor/starlette/endpoints.py +0 -130
- prefect/_vendor/starlette/exceptions.py +0 -60
- prefect/_vendor/starlette/formparsers.py +0 -276
- prefect/_vendor/starlette/middleware/__init__.py +0 -17
- prefect/_vendor/starlette/middleware/authentication.py +0 -52
- prefect/_vendor/starlette/middleware/base.py +0 -220
- prefect/_vendor/starlette/middleware/cors.py +0 -176
- prefect/_vendor/starlette/middleware/errors.py +0 -265
- prefect/_vendor/starlette/middleware/exceptions.py +0 -74
- prefect/_vendor/starlette/middleware/gzip.py +0 -113
- prefect/_vendor/starlette/middleware/httpsredirect.py +0 -19
- prefect/_vendor/starlette/middleware/sessions.py +0 -82
- prefect/_vendor/starlette/middleware/trustedhost.py +0 -64
- prefect/_vendor/starlette/middleware/wsgi.py +0 -147
- prefect/_vendor/starlette/py.typed +0 -0
- prefect/_vendor/starlette/requests.py +0 -328
- prefect/_vendor/starlette/responses.py +0 -347
- prefect/_vendor/starlette/routing.py +0 -933
- prefect/_vendor/starlette/schemas.py +0 -154
- prefect/_vendor/starlette/staticfiles.py +0 -248
- prefect/_vendor/starlette/status.py +0 -199
- prefect/_vendor/starlette/templating.py +0 -231
- prefect/_vendor/starlette/testclient.py +0 -804
- prefect/_vendor/starlette/types.py +0 -30
- prefect/_vendor/starlette/websockets.py +0 -193
- prefect/blocks/kubernetes.py +0 -119
- prefect/deprecated/__init__.py +0 -0
- prefect/deprecated/data_documents.py +0 -350
- prefect/deprecated/packaging/__init__.py +0 -12
- prefect/deprecated/packaging/base.py +0 -96
- prefect/deprecated/packaging/docker.py +0 -146
- prefect/deprecated/packaging/file.py +0 -92
- prefect/deprecated/packaging/orion.py +0 -80
- prefect/deprecated/packaging/serializers.py +0 -171
- prefect/events/instrument.py +0 -135
- prefect/infrastructure/container.py +0 -824
- prefect/infrastructure/kubernetes.py +0 -920
- prefect/infrastructure/process.py +0 -289
- prefect/manifests.py +0 -20
- prefect/new_flow_engine.py +0 -449
- prefect/new_task_engine.py +0 -423
- prefect/pydantic/__init__.py +0 -76
- prefect/pydantic/main.py +0 -39
- prefect/software/__init__.py +0 -2
- prefect/software/base.py +0 -50
- prefect/software/conda.py +0 -199
- prefect/software/pip.py +0 -122
- prefect/software/python.py +0 -52
- prefect/task_server.py +0 -322
- prefect_client-2.20.4.dist-info/RECORD +0 -294
- /prefect/{_internal/pydantic/utilities → client/types}/__init__.py +0 -0
- /prefect/{_vendor → concurrency/v1}/__init__.py +0 -0
- {prefect_client-2.20.4.dist-info → prefect_client-3.0.0.dist-info}/LICENSE +0 -0
- {prefect_client-2.20.4.dist-info → prefect_client-3.0.0.dist-info}/top_level.txt +0 -0
@@ -3,65 +3,46 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, TypeVar, Union
|
|
3
3
|
from uuid import UUID, uuid4
|
4
4
|
|
5
5
|
import jsonschema
|
6
|
-
|
7
|
-
from
|
8
|
-
from prefect._internal.pydantic import HAS_PYDANTIC_V2
|
9
|
-
|
10
|
-
if HAS_PYDANTIC_V2:
|
11
|
-
from pydantic.v1 import Field, root_validator, validator
|
12
|
-
else:
|
13
|
-
from pydantic import Field, root_validator, validator
|
6
|
+
from pydantic import Field, field_validator, model_validator
|
7
|
+
from pydantic_extra_types.pendulum_dt import DateTime
|
14
8
|
|
15
9
|
import prefect.client.schemas.objects as objects
|
16
10
|
from prefect._internal.schemas.bases import ActionBaseModel
|
17
|
-
from prefect._internal.schemas.fields import DateTimeTZ
|
18
|
-
from prefect._internal.schemas.serializers import orjson_dumps_extra_compatible
|
19
11
|
from prefect._internal.schemas.validators import (
|
20
|
-
|
21
|
-
raise_on_name_alphanumeric_underscores_only,
|
22
|
-
raise_on_name_with_banned_characters,
|
12
|
+
convert_to_strings,
|
23
13
|
remove_old_deployment_fields,
|
24
|
-
|
14
|
+
validate_artifact_key,
|
15
|
+
validate_block_document_name,
|
16
|
+
validate_block_type_slug,
|
25
17
|
validate_message_template_variables,
|
26
18
|
validate_name_present_on_nonanonymous_blocks,
|
27
19
|
validate_schedule_max_scheduled_runs,
|
20
|
+
validate_variable_name,
|
21
|
+
)
|
22
|
+
from prefect.client.schemas.objects import (
|
23
|
+
StateDetails,
|
24
|
+
StateType,
|
28
25
|
)
|
29
|
-
from prefect.client.schemas.objects import StateDetails, StateType
|
30
26
|
from prefect.client.schemas.schedules import SCHEDULE_TYPES
|
31
27
|
from prefect.settings import PREFECT_DEPLOYMENT_SCHEDULE_MAX_SCHEDULED_RUNS
|
32
|
-
from prefect.types import
|
28
|
+
from prefect.types import (
|
29
|
+
MAX_VARIABLE_NAME_LENGTH,
|
30
|
+
Name,
|
31
|
+
NonEmptyishName,
|
32
|
+
NonNegativeFloat,
|
33
|
+
NonNegativeInteger,
|
34
|
+
PositiveInteger,
|
35
|
+
StrictVariableValue,
|
36
|
+
)
|
33
37
|
from prefect.utilities.collections import listrepr
|
34
38
|
from prefect.utilities.pydantic import get_class_fields_only
|
35
39
|
|
36
40
|
if TYPE_CHECKING:
|
37
|
-
from prefect.deprecated.data_documents import DataDocument
|
38
41
|
from prefect.results import BaseResult
|
39
42
|
|
40
43
|
R = TypeVar("R")
|
41
44
|
|
42
45
|
|
43
|
-
def validate_block_type_slug(value):
|
44
|
-
raise_on_name_alphanumeric_dashes_only(value, field_name="Block type slug")
|
45
|
-
return value
|
46
|
-
|
47
|
-
|
48
|
-
def validate_block_document_name(value):
|
49
|
-
if value is not None:
|
50
|
-
raise_on_name_alphanumeric_dashes_only(value, field_name="Block document name")
|
51
|
-
return value
|
52
|
-
|
53
|
-
|
54
|
-
def validate_artifact_key(value):
|
55
|
-
raise_on_name_alphanumeric_dashes_only(value, field_name="Artifact key")
|
56
|
-
return value
|
57
|
-
|
58
|
-
|
59
|
-
def validate_variable_name(value):
|
60
|
-
if value is not None:
|
61
|
-
raise_on_name_alphanumeric_underscores_only(value, field_name="Variable name")
|
62
|
-
return value
|
63
|
-
|
64
|
-
|
65
46
|
class StateCreate(ActionBaseModel):
|
66
47
|
"""Data used by the Prefect REST API to create a new state."""
|
67
48
|
|
@@ -69,7 +50,7 @@ class StateCreate(ActionBaseModel):
|
|
69
50
|
name: Optional[str] = Field(default=None)
|
70
51
|
message: Optional[str] = Field(default=None, examples=["Run started"])
|
71
52
|
state_details: StateDetails = Field(default_factory=StateDetails)
|
72
|
-
data: Union["BaseResult[R]",
|
53
|
+
data: Union["BaseResult[R]", Any] = Field(
|
73
54
|
default=None,
|
74
55
|
)
|
75
56
|
|
@@ -117,7 +98,8 @@ class DeploymentScheduleCreate(ActionBaseModel):
|
|
117
98
|
description="Whether or not a worker should catch up on Late runs for the schedule.",
|
118
99
|
)
|
119
100
|
|
120
|
-
@
|
101
|
+
@field_validator("max_scheduled_runs")
|
102
|
+
@classmethod
|
121
103
|
def validate_max_scheduled_runs(cls, v):
|
122
104
|
return validate_schedule_max_scheduled_runs(
|
123
105
|
v, PREFECT_DEPLOYMENT_SCHEDULE_MAX_SCHEDULED_RUNS.value()
|
@@ -147,35 +129,45 @@ class DeploymentScheduleUpdate(ActionBaseModel):
|
|
147
129
|
description="Whether or not a worker should catch up on Late runs for the schedule.",
|
148
130
|
)
|
149
131
|
|
150
|
-
@
|
132
|
+
@field_validator("max_scheduled_runs")
|
133
|
+
@classmethod
|
151
134
|
def validate_max_scheduled_runs(cls, v):
|
152
135
|
return validate_schedule_max_scheduled_runs(
|
153
136
|
v, PREFECT_DEPLOYMENT_SCHEDULE_MAX_SCHEDULED_RUNS.value()
|
154
137
|
)
|
155
138
|
|
156
139
|
|
157
|
-
class DeploymentCreate(
|
140
|
+
class DeploymentCreate(ActionBaseModel):
|
158
141
|
"""Data used by the Prefect REST API to create a deployment."""
|
159
142
|
|
160
|
-
@
|
143
|
+
@model_validator(mode="before")
|
144
|
+
@classmethod
|
161
145
|
def remove_old_fields(cls, values):
|
162
146
|
return remove_old_deployment_fields(values)
|
163
147
|
|
148
|
+
@field_validator("description", "tags", mode="before")
|
149
|
+
@classmethod
|
150
|
+
def convert_to_strings(cls, values):
|
151
|
+
return convert_to_strings(values)
|
152
|
+
|
164
153
|
name: str = Field(..., description="The name of the deployment.")
|
165
154
|
flow_id: UUID = Field(..., description="The ID of the flow to deploy.")
|
166
|
-
is_schedule_active: Optional[bool] = Field(None)
|
167
155
|
paused: Optional[bool] = Field(None)
|
168
156
|
schedules: List[DeploymentScheduleCreate] = Field(
|
169
157
|
default_factory=list,
|
170
158
|
description="A list of schedules for the deployment.",
|
171
159
|
)
|
160
|
+
concurrency_limit: Optional[int] = Field(
|
161
|
+
default=None,
|
162
|
+
description="The concurrency limit for the deployment.",
|
163
|
+
)
|
172
164
|
enforce_parameter_schema: Optional[bool] = Field(
|
173
165
|
default=None,
|
174
166
|
description=(
|
175
167
|
"Whether or not the deployment should enforce the parameter schema."
|
176
168
|
),
|
177
169
|
)
|
178
|
-
parameter_openapi_schema: Optional[Dict[str, Any]] = Field(
|
170
|
+
parameter_openapi_schema: Optional[Dict[str, Any]] = Field(default_factory=dict)
|
179
171
|
parameters: Dict[str, Any] = Field(
|
180
172
|
default_factory=dict,
|
181
173
|
description="Parameters for flow runs scheduled by the deployment.",
|
@@ -183,7 +175,6 @@ class DeploymentCreate(DeprecatedInfraOverridesField, ActionBaseModel):
|
|
183
175
|
tags: List[str] = Field(default_factory=list)
|
184
176
|
pull_steps: Optional[List[dict]] = Field(None)
|
185
177
|
|
186
|
-
manifest_path: Optional[str] = Field(None)
|
187
178
|
work_queue_name: Optional[str] = Field(None)
|
188
179
|
work_pool_name: Optional[str] = Field(
|
189
180
|
default=None,
|
@@ -192,12 +183,11 @@ class DeploymentCreate(DeprecatedInfraOverridesField, ActionBaseModel):
|
|
192
183
|
)
|
193
184
|
storage_document_id: Optional[UUID] = Field(None)
|
194
185
|
infrastructure_document_id: Optional[UUID] = Field(None)
|
195
|
-
schedule: Optional[SCHEDULE_TYPES] = Field(None)
|
196
186
|
description: Optional[str] = Field(None)
|
197
187
|
path: Optional[str] = Field(None)
|
198
188
|
version: Optional[str] = Field(None)
|
199
189
|
entrypoint: Optional[str] = Field(None)
|
200
|
-
job_variables:
|
190
|
+
job_variables: Dict[str, Any] = Field(
|
201
191
|
default_factory=dict,
|
202
192
|
description="Overrides to apply to flow run infrastructure at runtime.",
|
203
193
|
)
|
@@ -222,25 +212,31 @@ class DeploymentCreate(DeprecatedInfraOverridesField, ActionBaseModel):
|
|
222
212
|
jsonschema.validate(self.job_variables, variables_schema)
|
223
213
|
|
224
214
|
|
225
|
-
class DeploymentUpdate(
|
215
|
+
class DeploymentUpdate(ActionBaseModel):
|
226
216
|
"""Data used by the Prefect REST API to update a deployment."""
|
227
217
|
|
228
|
-
@
|
218
|
+
@model_validator(mode="before")
|
219
|
+
@classmethod
|
229
220
|
def remove_old_fields(cls, values):
|
230
221
|
return remove_old_deployment_fields(values)
|
231
222
|
|
232
|
-
@validator("schedule")
|
233
|
-
def validate_none_schedule(cls, v):
|
234
|
-
return return_none_schedule(v)
|
235
|
-
|
236
223
|
version: Optional[str] = Field(None)
|
237
|
-
schedule: Optional[SCHEDULE_TYPES] = Field(None)
|
238
224
|
description: Optional[str] = Field(None)
|
239
|
-
is_schedule_active: bool = Field(None)
|
240
225
|
parameters: Optional[Dict[str, Any]] = Field(
|
241
226
|
default=None,
|
242
227
|
description="Parameters for flow runs scheduled by the deployment.",
|
243
228
|
)
|
229
|
+
paused: Optional[bool] = Field(
|
230
|
+
default=None, description="Whether or not the deployment is paused."
|
231
|
+
)
|
232
|
+
schedules: Optional[List[DeploymentScheduleCreate]] = Field(
|
233
|
+
default=None,
|
234
|
+
description="A list of schedules for the deployment.",
|
235
|
+
)
|
236
|
+
concurrency_limit: Optional[int] = Field(
|
237
|
+
default=None,
|
238
|
+
description="The concurrency limit for the deployment.",
|
239
|
+
)
|
244
240
|
tags: List[str] = Field(default_factory=list)
|
245
241
|
work_queue_name: Optional[str] = Field(None)
|
246
242
|
work_pool_name: Optional[str] = Field(
|
@@ -254,7 +250,6 @@ class DeploymentUpdate(DeprecatedInfraOverridesField, ActionBaseModel):
|
|
254
250
|
description="Overrides to apply to flow run infrastructure at runtime.",
|
255
251
|
)
|
256
252
|
entrypoint: Optional[str] = Field(None)
|
257
|
-
manifest_path: Optional[str] = Field(None)
|
258
253
|
storage_document_id: Optional[UUID] = Field(None)
|
259
254
|
infrastructure_document_id: Optional[UUID] = Field(None)
|
260
255
|
enforce_parameter_schema: Optional[bool] = Field(
|
@@ -290,7 +285,7 @@ class FlowRunUpdate(ActionBaseModel):
|
|
290
285
|
|
291
286
|
name: Optional[str] = Field(None)
|
292
287
|
flow_version: Optional[str] = Field(None)
|
293
|
-
parameters: Optional[Dict[str, Any]] = Field(
|
288
|
+
parameters: Optional[Dict[str, Any]] = Field(default_factory=dict)
|
294
289
|
empirical_policy: objects.FlowRunPolicy = Field(
|
295
290
|
default_factory=objects.FlowRunPolicy
|
296
291
|
)
|
@@ -302,6 +297,7 @@ class FlowRunUpdate(ActionBaseModel):
|
|
302
297
|
class TaskRunCreate(ActionBaseModel):
|
303
298
|
"""Data used by the Prefect REST API to create a task run"""
|
304
299
|
|
300
|
+
id: Optional[UUID] = Field(None, description="The ID to assign to the task run")
|
305
301
|
# TaskRunCreate states must be provided as StateCreate objects
|
306
302
|
state: Optional[StateCreate] = Field(
|
307
303
|
default=None, description="The state of the task run to create"
|
@@ -323,7 +319,7 @@ class TaskRunCreate(ActionBaseModel):
|
|
323
319
|
),
|
324
320
|
)
|
325
321
|
cache_key: Optional[str] = Field(None)
|
326
|
-
cache_expiration: Optional[objects.
|
322
|
+
cache_expiration: Optional[objects.DateTime] = Field(None)
|
327
323
|
task_version: Optional[str] = Field(None)
|
328
324
|
empirical_policy: objects.TaskRunPolicy = Field(
|
329
325
|
default_factory=objects.TaskRunPolicy,
|
@@ -373,9 +369,6 @@ class FlowRunCreate(ActionBaseModel):
|
|
373
369
|
tags: List[str] = Field(default_factory=list)
|
374
370
|
idempotency_key: Optional[str] = Field(None)
|
375
371
|
|
376
|
-
class Config(ActionBaseModel.Config):
|
377
|
-
json_dumps = orjson_dumps_extra_compatible
|
378
|
-
|
379
372
|
|
380
373
|
class DeploymentFlowRunCreate(ActionBaseModel):
|
381
374
|
"""Data used by the Prefect REST API to create a flow run from a deployment."""
|
@@ -389,6 +382,10 @@ class DeploymentFlowRunCreate(ActionBaseModel):
|
|
389
382
|
parameters: Dict[str, Any] = Field(
|
390
383
|
default_factory=dict, description="The parameters for the flow run."
|
391
384
|
)
|
385
|
+
enforce_parameter_schema: Optional[bool] = Field(
|
386
|
+
default=None,
|
387
|
+
description="Whether or not to enforce the parameter schema on this run.",
|
388
|
+
)
|
392
389
|
context: Dict[str, Any] = Field(
|
393
390
|
default_factory=dict, description="The context for the flow run."
|
394
391
|
)
|
@@ -421,6 +418,37 @@ class ConcurrencyLimitCreate(ActionBaseModel):
|
|
421
418
|
concurrency_limit: int = Field(default=..., description="The concurrency limit.")
|
422
419
|
|
423
420
|
|
421
|
+
class ConcurrencyLimitV2Create(ActionBaseModel):
|
422
|
+
"""Data used by the Prefect REST API to create a v2 concurrency limit."""
|
423
|
+
|
424
|
+
active: bool = Field(
|
425
|
+
default=True, description="Whether the concurrency limit is active."
|
426
|
+
)
|
427
|
+
name: Name = Field(default=..., description="The name of the concurrency limit.")
|
428
|
+
limit: NonNegativeInteger = Field(default=..., description="The concurrency limit.")
|
429
|
+
active_slots: NonNegativeInteger = Field(
|
430
|
+
default=0, description="The number of active slots."
|
431
|
+
)
|
432
|
+
denied_slots: NonNegativeInteger = Field(
|
433
|
+
default=0, description="The number of denied slots."
|
434
|
+
)
|
435
|
+
slot_decay_per_second: NonNegativeFloat = Field(
|
436
|
+
default=0,
|
437
|
+
description="The decay rate for active slots when used as a rate limit.",
|
438
|
+
)
|
439
|
+
|
440
|
+
|
441
|
+
class ConcurrencyLimitV2Update(ActionBaseModel):
|
442
|
+
"""Data used by the Prefect REST API to update a v2 concurrency limit."""
|
443
|
+
|
444
|
+
active: Optional[bool] = Field(None)
|
445
|
+
name: Optional[Name] = Field(None)
|
446
|
+
limit: Optional[NonNegativeInteger] = Field(None)
|
447
|
+
active_slots: Optional[NonNegativeInteger] = Field(None)
|
448
|
+
denied_slots: Optional[NonNegativeInteger] = Field(None)
|
449
|
+
slot_decay_per_second: Optional[NonNegativeFloat] = Field(None)
|
450
|
+
|
451
|
+
|
424
452
|
class BlockTypeCreate(ActionBaseModel):
|
425
453
|
"""Data used by the Prefect REST API to create a block type."""
|
426
454
|
|
@@ -442,9 +470,7 @@ class BlockTypeCreate(ActionBaseModel):
|
|
442
470
|
)
|
443
471
|
|
444
472
|
# validators
|
445
|
-
_validate_slug_format =
|
446
|
-
validate_block_type_slug
|
447
|
-
)
|
473
|
+
_validate_slug_format = field_validator("slug")(validate_block_type_slug)
|
448
474
|
|
449
475
|
|
450
476
|
class BlockTypeUpdate(ActionBaseModel):
|
@@ -480,7 +506,7 @@ class BlockSchemaCreate(ActionBaseModel):
|
|
480
506
|
class BlockDocumentCreate(ActionBaseModel):
|
481
507
|
"""Data used by the Prefect REST API to create a block document."""
|
482
508
|
|
483
|
-
name: Optional[
|
509
|
+
name: Optional[Name] = Field(
|
484
510
|
default=None, description="The name of the block document"
|
485
511
|
)
|
486
512
|
data: Dict[str, Any] = Field(
|
@@ -500,11 +526,9 @@ class BlockDocumentCreate(ActionBaseModel):
|
|
500
526
|
),
|
501
527
|
)
|
502
528
|
|
503
|
-
_validate_name_format =
|
504
|
-
validate_block_document_name
|
505
|
-
)
|
529
|
+
_validate_name_format = field_validator("name")(validate_block_document_name)
|
506
530
|
|
507
|
-
@
|
531
|
+
@model_validator(mode="before")
|
508
532
|
def validate_name_is_present_if_not_anonymous(cls, values):
|
509
533
|
return validate_name_present_on_nonanonymous_blocks(values)
|
510
534
|
|
@@ -545,7 +569,7 @@ class LogCreate(ActionBaseModel):
|
|
545
569
|
name: str = Field(default=..., description="The logger name.")
|
546
570
|
level: int = Field(default=..., description="The log level.")
|
547
571
|
message: str = Field(default=..., description="The log message.")
|
548
|
-
timestamp:
|
572
|
+
timestamp: DateTime = Field(default=..., description="The log timestamp.")
|
549
573
|
flow_run_id: Optional[UUID] = Field(None)
|
550
574
|
task_run_id: Optional[UUID] = Field(None)
|
551
575
|
|
@@ -553,7 +577,7 @@ class LogCreate(ActionBaseModel):
|
|
553
577
|
class WorkPoolCreate(ActionBaseModel):
|
554
578
|
"""Data used by the Prefect REST API to create a work pool."""
|
555
579
|
|
556
|
-
name:
|
580
|
+
name: NonEmptyishName = Field(
|
557
581
|
description="The name of the work pool.",
|
558
582
|
)
|
559
583
|
description: Optional[str] = Field(None)
|
@@ -591,11 +615,11 @@ class WorkQueueCreate(ActionBaseModel):
|
|
591
615
|
default=False,
|
592
616
|
description="Whether the work queue is paused.",
|
593
617
|
)
|
594
|
-
concurrency_limit: Optional[
|
618
|
+
concurrency_limit: Optional[NonNegativeInteger] = Field(
|
595
619
|
default=None,
|
596
620
|
description="A concurrency limit for the work queue.",
|
597
621
|
)
|
598
|
-
priority: Optional[
|
622
|
+
priority: Optional[PositiveInteger] = Field(
|
599
623
|
default=None,
|
600
624
|
description=(
|
601
625
|
"The queue's priority. Lower values are higher priority (1 is the highest)."
|
@@ -619,9 +643,11 @@ class WorkQueueUpdate(ActionBaseModel):
|
|
619
643
|
is_paused: bool = Field(
|
620
644
|
default=False, description="Whether or not the work queue is paused."
|
621
645
|
)
|
622
|
-
concurrency_limit: Optional[
|
623
|
-
priority: Optional[
|
624
|
-
|
646
|
+
concurrency_limit: Optional[NonNegativeInteger] = Field(None)
|
647
|
+
priority: Optional[PositiveInteger] = Field(
|
648
|
+
None, description="The queue's priority."
|
649
|
+
)
|
650
|
+
last_polled: Optional[DateTime] = Field(None)
|
625
651
|
|
626
652
|
# DEPRECATED
|
627
653
|
|
@@ -661,7 +687,8 @@ class FlowRunNotificationPolicyCreate(ActionBaseModel):
|
|
661
687
|
],
|
662
688
|
)
|
663
689
|
|
664
|
-
@
|
690
|
+
@field_validator("message_template")
|
691
|
+
@classmethod
|
665
692
|
def validate_message_template_variables(cls, v):
|
666
693
|
return validate_message_template_variables(v)
|
667
694
|
|
@@ -687,9 +714,7 @@ class ArtifactCreate(ActionBaseModel):
|
|
687
714
|
flow_run_id: Optional[UUID] = Field(None)
|
688
715
|
task_run_id: Optional[UUID] = Field(None)
|
689
716
|
|
690
|
-
_validate_artifact_format =
|
691
|
-
validate_artifact_key
|
692
|
-
)
|
717
|
+
_validate_artifact_format = field_validator("key")(validate_artifact_key)
|
693
718
|
|
694
719
|
|
695
720
|
class ArtifactUpdate(ActionBaseModel):
|
@@ -707,18 +732,17 @@ class VariableCreate(ActionBaseModel):
|
|
707
732
|
default=...,
|
708
733
|
description="The name of the variable",
|
709
734
|
examples=["my_variable"],
|
710
|
-
max_length=
|
735
|
+
max_length=MAX_VARIABLE_NAME_LENGTH,
|
711
736
|
)
|
712
|
-
value:
|
737
|
+
value: StrictVariableValue = Field(
|
713
738
|
default=...,
|
714
739
|
description="The value of the variable",
|
715
740
|
examples=["my-value"],
|
716
|
-
max_length=objects.MAX_VARIABLE_VALUE_LENGTH,
|
717
741
|
)
|
718
742
|
tags: Optional[List[str]] = Field(default=None)
|
719
743
|
|
720
744
|
# validators
|
721
|
-
_validate_name_format =
|
745
|
+
_validate_name_format = field_validator("name")(validate_variable_name)
|
722
746
|
|
723
747
|
|
724
748
|
class VariableUpdate(ActionBaseModel):
|
@@ -728,24 +752,23 @@ class VariableUpdate(ActionBaseModel):
|
|
728
752
|
default=None,
|
729
753
|
description="The name of the variable",
|
730
754
|
examples=["my_variable"],
|
731
|
-
max_length=
|
755
|
+
max_length=MAX_VARIABLE_NAME_LENGTH,
|
732
756
|
)
|
733
|
-
value:
|
757
|
+
value: StrictVariableValue = Field(
|
734
758
|
default=None,
|
735
759
|
description="The value of the variable",
|
736
760
|
examples=["my-value"],
|
737
|
-
max_length=objects.MAX_VARIABLE_NAME_LENGTH,
|
738
761
|
)
|
739
762
|
tags: Optional[List[str]] = Field(default=None)
|
740
763
|
|
741
764
|
# validators
|
742
|
-
_validate_name_format =
|
765
|
+
_validate_name_format = field_validator("name")(validate_variable_name)
|
743
766
|
|
744
767
|
|
745
768
|
class GlobalConcurrencyLimitCreate(ActionBaseModel):
|
746
769
|
"""Data used by the Prefect REST API to create a global concurrency limit."""
|
747
770
|
|
748
|
-
name:
|
771
|
+
name: Name = Field(description="The name of the global concurrency limit.")
|
749
772
|
limit: NonNegativeInteger = Field(
|
750
773
|
description=(
|
751
774
|
"The maximum number of slots that can be occupied on this concurrency"
|
@@ -768,20 +791,12 @@ class GlobalConcurrencyLimitCreate(ActionBaseModel):
|
|
768
791
|
),
|
769
792
|
)
|
770
793
|
|
771
|
-
@validator("name", check_fields=False)
|
772
|
-
def validate_name_characters(cls, v):
|
773
|
-
return raise_on_name_with_banned_characters(v)
|
774
|
-
|
775
794
|
|
776
795
|
class GlobalConcurrencyLimitUpdate(ActionBaseModel):
|
777
796
|
"""Data used by the Prefect REST API to update a global concurrency limit."""
|
778
797
|
|
779
|
-
name: Optional[
|
798
|
+
name: Optional[Name] = Field(None)
|
780
799
|
limit: Optional[NonNegativeInteger] = Field(None)
|
781
800
|
active: Optional[bool] = Field(None)
|
782
801
|
active_slots: Optional[NonNegativeInteger] = Field(None)
|
783
802
|
slot_decay_per_second: Optional[NonNegativeFloat] = Field(None)
|
784
|
-
|
785
|
-
@validator("name", check_fields=False)
|
786
|
-
def validate_name_characters(cls, v):
|
787
|
-
return raise_on_name_with_banned_characters(v)
|