prefect-client 2.20.2__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 +423 -164
- 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 +667 -440
- 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 -2466
- 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 +124 -51
- 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 +138 -48
- 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.2.dist-info → prefect_client-3.0.0.dist-info}/METADATA +30 -26
- prefect_client-3.0.0.dist-info/RECORD +201 -0
- {prefect_client-2.20.2.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.2.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.2.dist-info → prefect_client-3.0.0.dist-info}/LICENSE +0 -0
- {prefect_client-2.20.2.dist-info → prefect_client-3.0.0.dist-info}/top_level.txt +0 -0
prefect/runtime/flow_run.py
CHANGED
@@ -40,6 +40,7 @@ __all__ = [
|
|
40
40
|
"parameters",
|
41
41
|
"parent_flow_run_id",
|
42
42
|
"parent_deployment_id",
|
43
|
+
"root_flow_run_id",
|
43
44
|
"run_count",
|
44
45
|
"api_url",
|
45
46
|
"ui_url",
|
@@ -120,7 +121,7 @@ async def _get_flow_from_run(flow_run_id):
|
|
120
121
|
return await client.read_flow(flow_run.flow_id)
|
121
122
|
|
122
123
|
|
123
|
-
def get_id() -> str:
|
124
|
+
def get_id() -> Optional[str]:
|
124
125
|
flow_run_ctx = FlowRunContext.get()
|
125
126
|
task_run_ctx = TaskRunContext.get()
|
126
127
|
if flow_run_ctx is not None:
|
@@ -254,11 +255,12 @@ def get_parent_flow_run_id() -> Optional[str]:
|
|
254
255
|
parent_task_run = from_sync.call_soon_in_loop_thread(
|
255
256
|
create_call(_get_task_run, parent_task_run_id)
|
256
257
|
).result()
|
257
|
-
return parent_task_run.flow_run_id
|
258
|
+
return str(parent_task_run.flow_run_id) if parent_task_run.flow_run_id else None
|
259
|
+
|
258
260
|
return None
|
259
261
|
|
260
262
|
|
261
|
-
def get_parent_deployment_id() ->
|
263
|
+
def get_parent_deployment_id() -> Optional[str]:
|
262
264
|
parent_flow_run_id = get_parent_flow_run_id()
|
263
265
|
if parent_flow_run_id is None:
|
264
266
|
return None
|
@@ -266,7 +268,39 @@ def get_parent_deployment_id() -> Dict[str, Any]:
|
|
266
268
|
parent_flow_run = from_sync.call_soon_in_loop_thread(
|
267
269
|
create_call(_get_flow_run, parent_flow_run_id)
|
268
270
|
).result()
|
269
|
-
|
271
|
+
|
272
|
+
if parent_flow_run:
|
273
|
+
return (
|
274
|
+
str(parent_flow_run.deployment_id)
|
275
|
+
if parent_flow_run.deployment_id
|
276
|
+
else None
|
277
|
+
)
|
278
|
+
|
279
|
+
return None
|
280
|
+
|
281
|
+
|
282
|
+
def get_root_flow_run_id() -> str:
|
283
|
+
run_id = get_id()
|
284
|
+
parent_flow_run_id = get_parent_flow_run_id()
|
285
|
+
if parent_flow_run_id is None:
|
286
|
+
return run_id
|
287
|
+
|
288
|
+
def _get_root_flow_run_id(flow_run_id):
|
289
|
+
flow_run = from_sync.call_soon_in_loop_thread(
|
290
|
+
create_call(_get_flow_run, flow_run_id)
|
291
|
+
).result()
|
292
|
+
|
293
|
+
if flow_run.parent_task_run_id is None:
|
294
|
+
return str(flow_run_id)
|
295
|
+
else:
|
296
|
+
parent_task_run = from_sync.call_soon_in_loop_thread(
|
297
|
+
create_call(_get_task_run, flow_run.parent_task_run_id)
|
298
|
+
).result()
|
299
|
+
return _get_root_flow_run_id(parent_task_run.flow_run_id)
|
300
|
+
|
301
|
+
root_flow_run_id = _get_root_flow_run_id(parent_flow_run_id)
|
302
|
+
|
303
|
+
return root_flow_run_id
|
270
304
|
|
271
305
|
|
272
306
|
def get_flow_run_api_url() -> Optional[str]:
|
@@ -289,11 +323,12 @@ FIELDS = {
|
|
289
323
|
"scheduled_start_time": get_scheduled_start_time,
|
290
324
|
"name": get_name,
|
291
325
|
"flow_name": get_flow_name,
|
292
|
-
"flow_version": get_flow_version,
|
293
326
|
"parameters": get_parameters,
|
294
327
|
"parent_flow_run_id": get_parent_flow_run_id,
|
295
328
|
"parent_deployment_id": get_parent_deployment_id,
|
329
|
+
"root_flow_run_id": get_root_flow_run_id,
|
296
330
|
"run_count": get_run_count,
|
297
331
|
"api_url": get_flow_run_api_url,
|
298
332
|
"ui_url": get_flow_run_ui_url,
|
333
|
+
"flow_version": get_flow_version,
|
299
334
|
}
|
prefect/runtime/task_run.py
CHANGED
prefect/serializers.py
CHANGED
@@ -13,9 +13,17 @@ bytes to an object respectively.
|
|
13
13
|
|
14
14
|
import abc
|
15
15
|
import base64
|
16
|
-
from typing import Any, Dict, Generic, Optional, Type
|
17
|
-
|
18
|
-
from
|
16
|
+
from typing import Any, Dict, Generic, Optional, Type
|
17
|
+
|
18
|
+
from pydantic import (
|
19
|
+
BaseModel,
|
20
|
+
ConfigDict,
|
21
|
+
Field,
|
22
|
+
TypeAdapter,
|
23
|
+
ValidationError,
|
24
|
+
field_validator,
|
25
|
+
)
|
26
|
+
from typing_extensions import Literal, Self, TypeVar
|
19
27
|
|
20
28
|
from prefect._internal.schemas.validators import (
|
21
29
|
cast_type_names_to_serializers,
|
@@ -23,33 +31,12 @@ from prefect._internal.schemas.validators import (
|
|
23
31
|
validate_dump_kwargs,
|
24
32
|
validate_load_kwargs,
|
25
33
|
validate_picklelib,
|
26
|
-
validate_picklelib_version,
|
27
34
|
)
|
28
|
-
from prefect.pydantic import HAS_PYDANTIC_V2
|
29
35
|
from prefect.utilities.dispatch import get_dispatch_key, lookup_type, register_base_type
|
30
36
|
from prefect.utilities.importtools import from_qualified_name, to_qualified_name
|
31
37
|
from prefect.utilities.pydantic import custom_pydantic_encoder
|
32
38
|
|
33
|
-
|
34
|
-
from pydantic.v1 import (
|
35
|
-
BaseModel,
|
36
|
-
Field,
|
37
|
-
ValidationError,
|
38
|
-
parse_obj_as,
|
39
|
-
root_validator,
|
40
|
-
validator,
|
41
|
-
)
|
42
|
-
else:
|
43
|
-
from pydantic import (
|
44
|
-
BaseModel,
|
45
|
-
Field,
|
46
|
-
ValidationError,
|
47
|
-
parse_obj_as,
|
48
|
-
root_validator,
|
49
|
-
validator,
|
50
|
-
)
|
51
|
-
|
52
|
-
D = TypeVar("D")
|
39
|
+
D = TypeVar("D", default=Any)
|
53
40
|
|
54
41
|
|
55
42
|
def prefect_json_object_encoder(obj: Any) -> Any:
|
@@ -73,7 +60,9 @@ def prefect_json_object_decoder(result: dict):
|
|
73
60
|
with `prefect_json_object_encoder`
|
74
61
|
"""
|
75
62
|
if "__class__" in result:
|
76
|
-
return
|
63
|
+
return TypeAdapter(from_qualified_name(result["__class__"])).validate_python(
|
64
|
+
result["data"]
|
65
|
+
)
|
77
66
|
elif "__exc_type__" in result:
|
78
67
|
return from_qualified_name(result["__exc_type__"])(result["message"])
|
79
68
|
else:
|
@@ -112,12 +101,12 @@ class Serializer(BaseModel, Generic[D], abc.ABC):
|
|
112
101
|
def loads(self, blob: bytes) -> D:
|
113
102
|
"""Decode the blob of bytes into an object."""
|
114
103
|
|
115
|
-
|
116
|
-
extra = "forbid"
|
104
|
+
model_config = ConfigDict(extra="forbid")
|
117
105
|
|
118
106
|
@classmethod
|
119
|
-
def __dispatch_key__(cls):
|
120
|
-
|
107
|
+
def __dispatch_key__(cls) -> str:
|
108
|
+
type_str = cls.model_fields["type"].default
|
109
|
+
return type_str if isinstance(type_str, str) else None
|
121
110
|
|
122
111
|
|
123
112
|
class PickleSerializer(Serializer):
|
@@ -133,15 +122,15 @@ class PickleSerializer(Serializer):
|
|
133
122
|
type: Literal["pickle"] = "pickle"
|
134
123
|
|
135
124
|
picklelib: str = "cloudpickle"
|
136
|
-
picklelib_version: str = None
|
125
|
+
picklelib_version: Optional[str] = None
|
137
126
|
|
138
|
-
@
|
127
|
+
@field_validator("picklelib")
|
139
128
|
def check_picklelib(cls, value):
|
140
129
|
return validate_picklelib(value)
|
141
130
|
|
142
|
-
@
|
143
|
-
def check_picklelib_version(cls, values):
|
144
|
-
|
131
|
+
# @model_validator(mode="before")
|
132
|
+
# def check_picklelib_version(cls, values):
|
133
|
+
# return validate_picklelib_version(values)
|
145
134
|
|
146
135
|
def dumps(self, obj: Any) -> bytes:
|
147
136
|
pickler = from_qualified_name(self.picklelib)
|
@@ -185,11 +174,11 @@ class JSONSerializer(Serializer):
|
|
185
174
|
dumps_kwargs: Dict[str, Any] = Field(default_factory=dict)
|
186
175
|
loads_kwargs: Dict[str, Any] = Field(default_factory=dict)
|
187
176
|
|
188
|
-
@
|
177
|
+
@field_validator("dumps_kwargs")
|
189
178
|
def dumps_kwargs_cannot_contain_default(cls, value):
|
190
179
|
return validate_dump_kwargs(value)
|
191
180
|
|
192
|
-
@
|
181
|
+
@field_validator("loads_kwargs")
|
193
182
|
def loads_kwargs_cannot_contain_object_hook(cls, value):
|
194
183
|
return validate_load_kwargs(value)
|
195
184
|
|
@@ -229,11 +218,11 @@ class CompressedSerializer(Serializer):
|
|
229
218
|
serializer: Serializer
|
230
219
|
compressionlib: str = "lzma"
|
231
220
|
|
232
|
-
@
|
221
|
+
@field_validator("serializer", mode="before")
|
233
222
|
def validate_serializer(cls, value):
|
234
223
|
return cast_type_names_to_serializers(value)
|
235
224
|
|
236
|
-
@
|
225
|
+
@field_validator("compressionlib")
|
237
226
|
def check_compressionlib(cls, value):
|
238
227
|
return validate_compressionlib(value)
|
239
228
|
|
@@ -1,14 +1,5 @@
|
|
1
1
|
{
|
2
2
|
"prefect": {
|
3
|
-
"prefect-agent": {
|
4
|
-
"type": "prefect-agent",
|
5
|
-
"documentation_url": "https://docs.prefect.io/latest/concepts/work-pools/#agent-overview",
|
6
|
-
"display_name": "Prefect Agent",
|
7
|
-
"logo_url": "https://cdn.sanity.io/images/3ugk85nk/production/c771bb53894c877e169c8db158c5598558b8f175-24x24.svg",
|
8
|
-
"install_command": "pip install prefect",
|
9
|
-
"default_base_job_configuration": {},
|
10
|
-
"description": "Execute flow runs on heterogeneous infrastructure using infrastructure blocks."
|
11
|
-
},
|
12
3
|
"process": {
|
13
4
|
"default_base_job_configuration": {
|
14
5
|
"job_configuration": {
|
@@ -806,7 +797,7 @@
|
|
806
797
|
"image": {
|
807
798
|
"title": "Image",
|
808
799
|
"description": "The image reference of a container image to use for created jobs. If not set, the latest Prefect image will be used.",
|
809
|
-
"example": "docker.io/prefecthq/prefect:
|
800
|
+
"example": "docker.io/prefecthq/prefect:3-latest",
|
810
801
|
"type": "string"
|
811
802
|
},
|
812
803
|
"registry_credentials": {
|
@@ -1040,7 +1031,7 @@
|
|
1040
1031
|
"image": {
|
1041
1032
|
"title": "Image Name",
|
1042
1033
|
"description": "The image to use for a new Cloud Run Job. If not set, the latest Prefect image will be used. See https://cloud.google.com/run/docs/deploying#images.",
|
1043
|
-
"example": "docker.io/prefecthq/prefect:
|
1034
|
+
"example": "docker.io/prefecthq/prefect:3-latest",
|
1044
1035
|
"type": "string"
|
1045
1036
|
},
|
1046
1037
|
"cpu": {
|
@@ -1211,7 +1202,7 @@
|
|
1211
1202
|
"image": {
|
1212
1203
|
"title": "Image Name",
|
1213
1204
|
"description": "The image to use for the Cloud Run job. If not provided the default Prefect image will be used.",
|
1214
|
-
"default": "prefecthq/prefect:
|
1205
|
+
"default": "prefecthq/prefect:3-latest",
|
1215
1206
|
"type": "string"
|
1216
1207
|
},
|
1217
1208
|
"args": {
|
@@ -1600,7 +1591,7 @@
|
|
1600
1591
|
"image": {
|
1601
1592
|
"title": "Image",
|
1602
1593
|
"description": "The image reference of a container image to use for created jobs. If not set, the latest Prefect image will be used.",
|
1603
|
-
"example": "docker.io/prefecthq/prefect:
|
1594
|
+
"example": "docker.io/prefecthq/prefect:3-latest",
|
1604
1595
|
"type": "string"
|
1605
1596
|
},
|
1606
1597
|
"service_account_name": {
|
@@ -1688,4 +1679,4 @@
|
|
1688
1679
|
"type": "kubernetes"
|
1689
1680
|
}
|
1690
1681
|
}
|
1691
|
-
}
|
1682
|
+
}
|