prefect-client 3.0.1__py3-none-any.whl → 3.0.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- prefect/_internal/compatibility/deprecated.py +1 -1
- prefect/blocks/notifications.py +21 -0
- prefect/blocks/webhook.py +8 -0
- prefect/client/orchestration.py +39 -20
- prefect/client/schemas/actions.py +2 -2
- prefect/client/schemas/objects.py +24 -6
- prefect/client/types/flexible_schedule_list.py +1 -1
- prefect/concurrency/asyncio.py +45 -6
- prefect/concurrency/services.py +1 -1
- prefect/concurrency/sync.py +21 -27
- prefect/concurrency/v1/asyncio.py +3 -0
- prefect/concurrency/v1/sync.py +4 -5
- prefect/context.py +5 -1
- prefect/deployments/runner.py +1 -0
- prefect/events/actions.py +6 -0
- prefect/flow_engine.py +12 -4
- prefect/locking/filesystem.py +243 -0
- prefect/logging/handlers.py +0 -2
- prefect/logging/loggers.py +0 -18
- prefect/logging/logging.yml +1 -0
- prefect/main.py +19 -5
- prefect/records/base.py +12 -0
- prefect/records/filesystem.py +6 -2
- prefect/records/memory.py +6 -0
- prefect/records/result_store.py +6 -0
- prefect/results.py +169 -25
- prefect/runner/runner.py +74 -5
- prefect/settings.py +1 -1
- prefect/states.py +34 -17
- prefect/task_engine.py +31 -37
- prefect/transactions.py +105 -50
- prefect/utilities/engine.py +16 -8
- prefect/utilities/importtools.py +1 -0
- prefect/utilities/urls.py +70 -12
- prefect/workers/base.py +14 -6
- {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/METADATA +1 -1
- {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/RECORD +40 -39
- {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/LICENSE +0 -0
- {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/WHEEL +0 -0
- {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/top_level.txt +0 -0
prefect/utilities/importtools.py
CHANGED
@@ -398,6 +398,7 @@ def safe_load_namespace(
|
|
398
398
|
# Save original sys.path and modify it
|
399
399
|
original_sys_path = sys.path.copy()
|
400
400
|
sys.path.insert(0, parent_dir)
|
401
|
+
sys.path.insert(0, file_dir)
|
401
402
|
|
402
403
|
# Create a temporary module for import context
|
403
404
|
temp_module = ModuleType(package_name)
|
prefect/utilities/urls.py
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
import inspect
|
2
|
+
import ipaddress
|
3
|
+
import socket
|
2
4
|
import urllib.parse
|
3
|
-
from typing import Any, Literal, Optional, Union
|
5
|
+
from typing import TYPE_CHECKING, Any, Literal, Optional, Union
|
6
|
+
from urllib.parse import urlparse
|
4
7
|
from uuid import UUID
|
5
8
|
|
6
9
|
from pydantic import BaseModel
|
7
10
|
|
8
11
|
from prefect import settings
|
9
|
-
from prefect.blocks.core import Block
|
10
|
-
from prefect.events.schemas.automations import Automation
|
11
|
-
from prefect.events.schemas.events import ReceivedEvent, Resource
|
12
|
-
from prefect.futures import PrefectFuture
|
13
12
|
from prefect.logging.loggers import get_logger
|
14
|
-
|
13
|
+
|
14
|
+
if TYPE_CHECKING:
|
15
|
+
from prefect.blocks.core import Block
|
16
|
+
from prefect.events.schemas.automations import Automation
|
17
|
+
from prefect.events.schemas.events import ReceivedEvent, Resource
|
18
|
+
from prefect.futures import PrefectFuture
|
19
|
+
from prefect.variables import Variable
|
15
20
|
|
16
21
|
logger = get_logger("utilities.urls")
|
17
22
|
|
@@ -58,6 +63,54 @@ URLType = Literal["ui", "api"]
|
|
58
63
|
RUN_TYPES = {"flow-run", "task-run"}
|
59
64
|
|
60
65
|
|
66
|
+
def validate_restricted_url(url: str):
|
67
|
+
"""
|
68
|
+
Validate that the provided URL is safe for outbound requests. This prevents
|
69
|
+
attacks like SSRF (Server Side Request Forgery), where an attacker can make
|
70
|
+
requests to internal services (like the GCP metadata service, localhost addresses,
|
71
|
+
or in-cluster Kubernetes services)
|
72
|
+
|
73
|
+
Args:
|
74
|
+
url: The URL to validate.
|
75
|
+
|
76
|
+
Raises:
|
77
|
+
ValueError: If the URL is a restricted URL.
|
78
|
+
"""
|
79
|
+
|
80
|
+
try:
|
81
|
+
parsed_url = urlparse(url)
|
82
|
+
except ValueError:
|
83
|
+
raise ValueError(f"{url!r} is not a valid URL.")
|
84
|
+
|
85
|
+
if parsed_url.scheme not in ("http", "https"):
|
86
|
+
raise ValueError(
|
87
|
+
f"{url!r} is not a valid URL. Only HTTP and HTTPS URLs are allowed."
|
88
|
+
)
|
89
|
+
|
90
|
+
hostname = parsed_url.hostname or ""
|
91
|
+
|
92
|
+
# Remove IPv6 brackets if present
|
93
|
+
if hostname.startswith("[") and hostname.endswith("]"):
|
94
|
+
hostname = hostname[1:-1]
|
95
|
+
|
96
|
+
if not hostname:
|
97
|
+
raise ValueError(f"{url!r} is not a valid URL.")
|
98
|
+
|
99
|
+
try:
|
100
|
+
ip_address = socket.gethostbyname(hostname)
|
101
|
+
ip = ipaddress.ip_address(ip_address)
|
102
|
+
except socket.gaierror:
|
103
|
+
try:
|
104
|
+
ip = ipaddress.ip_address(hostname)
|
105
|
+
except ValueError:
|
106
|
+
raise ValueError(f"{url!r} is not a valid URL. It could not be resolved.")
|
107
|
+
|
108
|
+
if ip.is_private:
|
109
|
+
raise ValueError(
|
110
|
+
f"{url!r} is not a valid URL. It resolves to the private address {ip}."
|
111
|
+
)
|
112
|
+
|
113
|
+
|
61
114
|
def convert_class_to_name(obj: Any) -> str:
|
62
115
|
"""
|
63
116
|
Convert CamelCase class name to dash-separated lowercase name
|
@@ -69,12 +122,12 @@ def convert_class_to_name(obj: Any) -> str:
|
|
69
122
|
|
70
123
|
def url_for(
|
71
124
|
obj: Union[
|
72
|
-
PrefectFuture,
|
73
|
-
Block,
|
74
|
-
Variable,
|
75
|
-
Automation,
|
76
|
-
Resource,
|
77
|
-
ReceivedEvent,
|
125
|
+
"PrefectFuture",
|
126
|
+
"Block",
|
127
|
+
"Variable",
|
128
|
+
"Automation",
|
129
|
+
"Resource",
|
130
|
+
"ReceivedEvent",
|
78
131
|
BaseModel,
|
79
132
|
str,
|
80
133
|
],
|
@@ -105,6 +158,11 @@ def url_for(
|
|
105
158
|
url_for(obj=my_flow_run)
|
106
159
|
url_for("flow-run", obj_id="123e4567-e89b-12d3-a456-426614174000")
|
107
160
|
"""
|
161
|
+
from prefect.blocks.core import Block
|
162
|
+
from prefect.events.schemas.automations import Automation
|
163
|
+
from prefect.events.schemas.events import ReceivedEvent, Resource
|
164
|
+
from prefect.futures import PrefectFuture
|
165
|
+
|
108
166
|
if isinstance(obj, PrefectFuture):
|
109
167
|
name = "task-run"
|
110
168
|
elif isinstance(obj, Block):
|
prefect/workers/base.py
CHANGED
@@ -146,6 +146,12 @@ class BaseJobConfiguration(BaseModel):
|
|
146
146
|
)
|
147
147
|
variables.update(values)
|
148
148
|
|
149
|
+
# deep merge `env`
|
150
|
+
if isinstance(job_config.get("env"), dict) and (
|
151
|
+
hardcoded_env := variables.get("env")
|
152
|
+
):
|
153
|
+
job_config["env"] = hardcoded_env | job_config.get("env")
|
154
|
+
|
149
155
|
populated_configuration = apply_values(template=job_config, values=variables)
|
150
156
|
populated_configuration = await resolve_block_document_references(
|
151
157
|
template=populated_configuration, client=client
|
@@ -865,17 +871,19 @@ class BaseWorker(abc.ABC):
|
|
865
871
|
deployment = await self._client.read_deployment(flow_run.deployment_id)
|
866
872
|
if deployment and deployment.concurrency_limit:
|
867
873
|
limit_name = f"deployment:{deployment.id}"
|
868
|
-
concurrency_limit = deployment.concurrency_limit
|
869
874
|
concurrency_ctx = concurrency
|
875
|
+
|
876
|
+
# ensure that the global concurrency limit is available
|
877
|
+
# and up-to-date before attempting to acquire a slot
|
878
|
+
await self._client.upsert_global_concurrency_limit_by_name(
|
879
|
+
limit_name, deployment.concurrency_limit
|
880
|
+
)
|
870
881
|
else:
|
871
|
-
limit_name =
|
872
|
-
concurrency_limit = None
|
882
|
+
limit_name = ""
|
873
883
|
concurrency_ctx = asyncnullcontext
|
874
884
|
|
875
885
|
try:
|
876
|
-
async with concurrency_ctx(
|
877
|
-
limit_name, occupy=concurrency_limit, max_retries=0
|
878
|
-
):
|
886
|
+
async with concurrency_ctx(limit_name, max_retries=0, strict=True):
|
879
887
|
configuration = await self._get_configuration(flow_run, deployment)
|
880
888
|
submitted_event = self._emit_flow_run_submitted_event(configuration)
|
881
889
|
result = await self.run(
|
@@ -5,28 +5,28 @@ prefect/agent.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
|
5
5
|
prefect/artifacts.py,sha256=dsxFWmdg2r9zbHM3KgKOR5YbJ29_dXUYF9kipJpbxkE,13009
|
6
6
|
prefect/automations.py,sha256=NlQ62GPJzy-gnWQqX7c6CQJKw7p60WLGDAFcy82vtg4,5613
|
7
7
|
prefect/cache_policies.py,sha256=779dI23HIPmrtImx9X6eVEH5jc9M7wE9T2isivNo8uM,6570
|
8
|
-
prefect/context.py,sha256=
|
8
|
+
prefect/context.py,sha256=nim_XAgq9Vr63ceuUhKgokjB94UHGSFzc7lFXdjr40g,21948
|
9
9
|
prefect/engine.py,sha256=BpmDbe6miZcTl1vRkxfCPYcWSXADLigGPCagFwucMz0,1976
|
10
10
|
prefect/exceptions.py,sha256=ondjUe0fIXXjhoFnqg8twqgLoPMR02HuQv5Az-kSG50,11348
|
11
11
|
prefect/filesystems.py,sha256=7tqufyXIfEnMs2VE-hov3tJfBiELMhU9Dn9snmDh4B8,17304
|
12
|
-
prefect/flow_engine.py,sha256=
|
12
|
+
prefect/flow_engine.py,sha256=Z6xOO1ONAGwVNcvyvEIkJv_LB0VE5iBptV4ZWgTFqbc,30000
|
13
13
|
prefect/flow_runs.py,sha256=EaXRIQTOnwnA0fO7_EjwafFRmS57K_CRy0Xsz3JDIhc,16070
|
14
14
|
prefect/flows.py,sha256=cWzNAzY8Z3Du_XY4LbNFg29kP26uR4OP7eFi1lGVeGw,88735
|
15
15
|
prefect/futures.py,sha256=1Uq-Q3ommCHSku_lsASuP1s3yFuYoL980fGcHdCFg30,16298
|
16
|
-
prefect/main.py,sha256=
|
16
|
+
prefect/main.py,sha256=IdtnJR5-IwP8EZsfhMFKj92ylMhNyau9X_eMcTP2ZjM,2336
|
17
17
|
prefect/plugins.py,sha256=7AICJzHIu8iAeF9vl9wAYm28pR_k7dkdnm3OyJRfCv4,2229
|
18
18
|
prefect/profiles.toml,sha256=kTvqDNMzjH3fsm5OEI-NKY4dMmipor5EvQXRB6rPEjY,522
|
19
19
|
prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
prefect/results.py,sha256=
|
20
|
+
prefect/results.py,sha256=jzhIBgDWv38arLvdVGFdZqE4laRC70VIvKyaqiUOEik,44463
|
21
21
|
prefect/serializers.py,sha256=Lo41EM0_qGzcfB_63390Izeo3DdK6cY6VZfxa9hpSGQ,8712
|
22
|
-
prefect/settings.py,sha256=
|
23
|
-
prefect/states.py,sha256=
|
24
|
-
prefect/task_engine.py,sha256=
|
22
|
+
prefect/settings.py,sha256=dPlzt7sqF0kmxZTDiONjH90j4YO_5D3uWMJnwopvnGE,72527
|
23
|
+
prefect/states.py,sha256=2lysq6X5AvqPfE3eD3D0HYt-KpFA2OUgA0c4ZQ22A_U,24906
|
24
|
+
prefect/task_engine.py,sha256=_AeXff2cohUblfAF_itWkoBmCR9XiLPW5nPk6SrV2nc,57208
|
25
25
|
prefect/task_runners.py,sha256=W1n0yMwbDIqnvffFVJADo9MGEbLaYkzWk52rqgnkMY4,15019
|
26
26
|
prefect/task_runs.py,sha256=jkaQOkRKOHS8fgHUijteriFpjMSKv4zldn1D8tZHkUI,8777
|
27
27
|
prefect/task_worker.py,sha256=a8Uw78Ms4p3ikt_la50lENmPLIa-jjbuvunvjVXvRKQ,16785
|
28
28
|
prefect/tasks.py,sha256=35eOv7VfhziiC3hL9FxB3spYtG6tpxZBLzk5KP_8Ux8,68371
|
29
|
-
prefect/transactions.py,sha256
|
29
|
+
prefect/transactions.py,sha256=Dp3x5fr4n7QCO96x0FA84D-A3_xN5CP3vzxnQU5_cfo,16303
|
30
30
|
prefect/variables.py,sha256=023cfSj_ydwvz6lyChRKnjHFfkdoYZKK_zdTtuSxrYo,4665
|
31
31
|
prefect/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
32
|
prefect/_internal/_logging.py,sha256=HvNHY-8P469o5u4LYEDBTem69XZEt1QUeUaLToijpak,810
|
@@ -34,7 +34,7 @@ prefect/_internal/integrations.py,sha256=U4cZMDbnilzZSKaMxvzZcSL27a1tzRMjDoTfr2u
|
|
34
34
|
prefect/_internal/pytz.py,sha256=WWl9x16rKFWequGmcOGs_ljpCDPf2LDHMyZp_4D8e6c,13748
|
35
35
|
prefect/_internal/retries.py,sha256=8uuagUX32w5YANLHqjM_1hHmVe9b1HxcwuPMXb1G2Qk,2317
|
36
36
|
prefect/_internal/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
-
prefect/_internal/compatibility/deprecated.py,sha256=
|
37
|
+
prefect/_internal/compatibility/deprecated.py,sha256=PVME2C3Oe4_8tKIGufx1W4EpGkz5IQY8gFohPVOjNcM,7533
|
38
38
|
prefect/_internal/compatibility/experimental.py,sha256=nrIeeAe1vZ0yMb1cPw5AroVR6_msx-bzTeBLzY4au6o,5634
|
39
39
|
prefect/_internal/compatibility/migration.py,sha256=oifIj6mKwVUfrUO13ODLKOCwLON4YqaTXzhBFh8AK6E,6797
|
40
40
|
prefect/_internal/concurrency/__init__.py,sha256=YlTwU9ryjPNwbJa45adLJY00t_DGCh1QrdtY9WdVFfw,2140
|
@@ -63,44 +63,44 @@ prefect/blocks/__init__.py,sha256=BUfh6gIwA6HEjRyVCAiv0he3M1zfM-oY-JrlBfeWeY8,18
|
|
63
63
|
prefect/blocks/abstract.py,sha256=YLzCaf3yXv6wFCF5ZqCIHJNwH7fME1rLxC-SijARHzk,16319
|
64
64
|
prefect/blocks/core.py,sha256=sfP-ECLhKHPGysO66Kmd6SMKLC7tRiaFOzCQt8WXxIo,52724
|
65
65
|
prefect/blocks/fields.py,sha256=1m507VVmkpOnMF_7N-qboRjtw4_ceIuDneX3jZ3Jm54,63
|
66
|
-
prefect/blocks/notifications.py,sha256=
|
66
|
+
prefect/blocks/notifications.py,sha256=NEQqFobAOYWmvqbs6wPGHklrHPocJQSEsJow_CczwqE,29794
|
67
67
|
prefect/blocks/redis.py,sha256=GUKYyx2QLtyNvgf5FT_dJxbgQcOzWCja3I23J1-AXhM,5629
|
68
68
|
prefect/blocks/system.py,sha256=OacB-LLXaNiLY49bPx7aAjmvdEdBxNoaOdzsCUcDr2c,4563
|
69
|
-
prefect/blocks/webhook.py,sha256=
|
69
|
+
prefect/blocks/webhook.py,sha256=f4rPcrRE-898fN-A6nN92tSwS7UpNIMXGF3XNqsockY,2180
|
70
70
|
prefect/client/__init__.py,sha256=fFtCXsGIsBCsAMFKlUPgRVUoIeqq_CsGtFE1knhbHlU,593
|
71
71
|
prefect/client/base.py,sha256=2K8UiWzorZNNM4c8c-OiGeZ5i5ViUfZ_Q31oPobbOO0,24956
|
72
72
|
prefect/client/cloud.py,sha256=SOqPXvXmFxAatubTyRQQe9i3DkAf4-mZZIpSO3Oy-hA,5819
|
73
73
|
prefect/client/collections.py,sha256=u-96saqu0RALAazRI0YaZCJahnuafMppY21KN6ggx80,1059
|
74
74
|
prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
|
75
|
-
prefect/client/orchestration.py,sha256=
|
75
|
+
prefect/client/orchestration.py,sha256=EPDwR5kSbTVvB3sIe7N563XEM5HbwMDh1rUKtqLlKcU,149228
|
76
76
|
prefect/client/subscriptions.py,sha256=J9uK9NGHO4VX4Y3NGgBJ4pIG_0cf-dJWPhF3f3PGYL4,3388
|
77
77
|
prefect/client/utilities.py,sha256=89fmza0cRMOayxgXRdO51TKb11TczJ0ByOZmcZVrt44,3286
|
78
78
|
prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
|
79
|
-
prefect/client/schemas/actions.py,sha256=
|
79
|
+
prefect/client/schemas/actions.py,sha256=K_RvBsBY_x3HaYRnR2aT5cmKHnX6xsLFRdBHHHTsEIg,28530
|
80
80
|
prefect/client/schemas/filters.py,sha256=Pu0wB58_dsNwTeItpQdYII2mwGe0VlLV3ULsuI2PyCg,35648
|
81
|
-
prefect/client/schemas/objects.py,sha256=
|
81
|
+
prefect/client/schemas/objects.py,sha256=VOcbN7nXLcj8iU9xXEDtPvTI3D07FAsdn5Ic1hWBJMs,55001
|
82
82
|
prefect/client/schemas/responses.py,sha256=J61c8ZqrxfOjKkdf6MLLrRBScsS0tql6Q2SPVr04Ids,14767
|
83
83
|
prefect/client/schemas/schedules.py,sha256=8rpqjOYtknu2-1n5_WD4cOplgu93P3mCyX86B22LfL4,13070
|
84
84
|
prefect/client/schemas/sorting.py,sha256=L-2Mx-igZPtsUoRUguTcG3nIEstMEMPD97NwPM2Ox5s,2579
|
85
85
|
prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
|
-
prefect/client/types/flexible_schedule_list.py,sha256=
|
86
|
+
prefect/client/types/flexible_schedule_list.py,sha256=WjIiy-yZuA_k1iCMCrmZBW24JNNHYPDRkg3TOhlJGhw,370
|
87
87
|
prefect/concurrency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
-
prefect/concurrency/asyncio.py,sha256=
|
88
|
+
prefect/concurrency/asyncio.py,sha256=34evG-u6sZn9X78jUCSOAOE3TvNHJ2Fum4XLkSHixnU,7738
|
89
89
|
prefect/concurrency/context.py,sha256=hXt_QDXvj6hidP63k7AnoOUNI1-ZKd6EIrTuopQyzHU,942
|
90
90
|
prefect/concurrency/events.py,sha256=EjZwUbbtP-N-u8rk8nbyMIi-BnkshoLkHRYh913jUWU,1810
|
91
|
-
prefect/concurrency/services.py,sha256=
|
92
|
-
prefect/concurrency/sync.py,sha256=
|
91
|
+
prefect/concurrency/services.py,sha256=IecXILseqgLQWIrIsfXxoJj-o5MK5UC7jd_IjYinxi0,3831
|
92
|
+
prefect/concurrency/sync.py,sha256=nOAFmjptabztKtkJ_uAWgzTrb21vrkTwPulFkiIo8u4,4337
|
93
93
|
prefect/concurrency/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
|
-
prefect/concurrency/v1/asyncio.py,sha256=
|
94
|
+
prefect/concurrency/v1/asyncio.py,sha256=ROro7lFAbyr2oWUAXYUzN-IpTkKM-DHOWvcfpr7-8AA,4883
|
95
95
|
prefect/concurrency/v1/context.py,sha256=T3dDOqGx9PUSmDuiqKNEYBGiBJDXeyYoOFxZ3P8IPfw,1040
|
96
96
|
prefect/concurrency/v1/events.py,sha256=PhW3iV5z-ez97LBHnte4joHMVPYaZJNRJkNXsZlb0LM,1873
|
97
97
|
prefect/concurrency/v1/services.py,sha256=5IwRepJ4IMC0y-PmqXiDr5rR4wl3BuHbP6Tg6C3rrQg,4426
|
98
|
-
prefect/concurrency/v1/sync.py,sha256=
|
98
|
+
prefect/concurrency/v1/sync.py,sha256=qKE0YzNbrmYooTwP7pz4m1BUz61THCUIF45_PE5IyYg,2375
|
99
99
|
prefect/deployments/__init__.py,sha256=_wb7NxDKhq11z9MjYsPckmT3o6MRhGLRgCV9TmvYtew,1002
|
100
100
|
prefect/deployments/base.py,sha256=rEMb-AXUuO66a7Qwq0KFUI1L0Xrl_-8z7cgAKaysfwg,16136
|
101
101
|
prefect/deployments/deployments.py,sha256=EvC9qBdvJRc8CHJqRjFTqtzx75SE8bpZOl5C-2eULyA,109
|
102
102
|
prefect/deployments/flow_runs.py,sha256=tH6lpEkgHhQ5Ipr0bhVAjN6AeOoDwY7UKrkbJihJ6D0,6567
|
103
|
-
prefect/deployments/runner.py,sha256=
|
103
|
+
prefect/deployments/runner.py,sha256=vsBeY1w7tWMu0pzTXQzRBBgGVvX6FezPgV7kvtnqwlo,40123
|
104
104
|
prefect/deployments/schedules.py,sha256=KCYA6dOmLAoElHZuoWqdJn4Yno4TtOZtXfPOpTLb1cE,2046
|
105
105
|
prefect/deployments/steps/__init__.py,sha256=Dlz9VqMRyG1Gal8dj8vfGpPr0LyQhZdvcciozkK8WoY,206
|
106
106
|
prefect/deployments/steps/core.py,sha256=5vFf6BSpu992kkaYsvcPpsz-nZxFmayMIDmY9h0Hb8M,6846
|
@@ -109,7 +109,7 @@ prefect/deployments/steps/utility.py,sha256=s5mMBmHVCS1ZRBRUCunwPueU_7Dii_GK6CqC
|
|
109
109
|
prefect/docker/__init__.py,sha256=jumlacz2HY9l1ee0L9_kE0PFi9NO3l3pWINm9T5N9hs,524
|
110
110
|
prefect/docker/docker_image.py,sha256=Y84_ooCYA9NGl6FElJul9-FaW3teT-eia2SiNtZ1LG8,2999
|
111
111
|
prefect/events/__init__.py,sha256=GtKl2bE--pJduTxelH2xy7SadlLJmmis8WR1EYixhuA,2094
|
112
|
-
prefect/events/actions.py,sha256=
|
112
|
+
prefect/events/actions.py,sha256=A7jS8bo4zWGnrt3QfSoQs0uYC1xfKXio3IfU0XtTb5s,9129
|
113
113
|
prefect/events/clients.py,sha256=ym5LM1M69Ar3yKhMrASyqbSYnGsrln6UQgqO-ITDYyY,22136
|
114
114
|
prefect/events/filters.py,sha256=IJ1TF-TCC7Wk2nJsbYW-HyAANToDQ6z1MdD63qE-lfw,8186
|
115
115
|
prefect/events/related.py,sha256=TQPYIPJI_vZlZgZgq3YpsGCmFleiZCMDtn_jMrYBJRg,6537
|
@@ -133,23 +133,24 @@ prefect/input/__init__.py,sha256=Ue2h-YhYP71nEtsVJaslqMwO6C0ckjhjTYwwEgp-E3g,701
|
|
133
133
|
prefect/input/actions.py,sha256=IGdWjVcesnRjLmPCzB4ZM7FkRWXDKCku6yhE-7p0vKk,3777
|
134
134
|
prefect/input/run_input.py,sha256=2wG-0L3N0spwh61Z3xI0PM8AAjHEIQZcDN703Er_gLo,18728
|
135
135
|
prefect/locking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
136
|
+
prefect/locking/filesystem.py,sha256=F7Oc58FKlj7X4IDkYovQf6LPRPLiXhawSs907_Y57B0,7996
|
136
137
|
prefect/locking/memory.py,sha256=Y1fsMSUAk3jUILzRivbxlrE9Xv8OcVbaylVf-aiEGNc,7495
|
137
138
|
prefect/locking/protocol.py,sha256=o5-48SxvEDAdVwW8RIn7rCN32CmvIsaVHTztESUXuHU,4232
|
138
139
|
prefect/logging/__init__.py,sha256=zx9f5_dWrR4DbcTOFBpNGOPoCZ1QcPFudr7zxb2XRpA,148
|
139
140
|
prefect/logging/configuration.py,sha256=bYqFJm0QgLz92Dub1Lbl3JONjjm0lTK149pNAGbxPdM,3467
|
140
141
|
prefect/logging/filters.py,sha256=9keHLN4-cpnsWcii1qU0RITNi9-m7pOhkJ_t0MtCM4k,1117
|
141
142
|
prefect/logging/formatters.py,sha256=3nBWgawvD48slT0zgkKeus1gIyf0OjmDKdLwMEe5mPU,3923
|
142
|
-
prefect/logging/handlers.py,sha256=
|
143
|
+
prefect/logging/handlers.py,sha256=w532IhEH6890X3jlfwX3iYIxwJIM0WXDIHTT0K5e-U8,10453
|
143
144
|
prefect/logging/highlighters.py,sha256=BpSXOy0n3lFVvlKWa7jC-HetAiClFi9jnQtEq5-rgok,1681
|
144
|
-
prefect/logging/loggers.py,sha256=
|
145
|
-
prefect/logging/logging.yml,sha256=
|
145
|
+
prefect/logging/loggers.py,sha256=9fN5iTXQwBAHwKfE9iBo-90f2SyGs9Z3OKmkLPG91VY,10995
|
146
|
+
prefect/logging/logging.yml,sha256=ALNY_E1i3E7tkagCB3Qg35IvuRBHt-t9QqVJvsSq5xA,3185
|
146
147
|
prefect/records/__init__.py,sha256=rJJhaJBa0AWu63fJhtB-yHBi64qL6p4svo7F0qvm2sc,30
|
147
|
-
prefect/records/base.py,sha256=
|
148
|
-
prefect/records/filesystem.py,sha256=
|
149
|
-
prefect/records/memory.py,sha256=
|
150
|
-
prefect/records/result_store.py,sha256=
|
148
|
+
prefect/records/base.py,sha256=Ne-7pRGNfmk0a_Vm3t5zRrj26KgGr_L2_XfLID0XzIY,8035
|
149
|
+
prefect/records/filesystem.py,sha256=X-h7r5deiHH5IaaDk4ugOCmR5ZKnJeU2cLgp0AkMt0E,7316
|
150
|
+
prefect/records/memory.py,sha256=YdzQvEfb-CX0sKxAZK5TaNxVvAlyYlZse9qdoer6Xbk,6447
|
151
|
+
prefect/records/result_store.py,sha256=3ZUFNHCCv_qBQhmIFdvlK_GMnPZcFacaI9dVdDKWdwA,2431
|
151
152
|
prefect/runner/__init__.py,sha256=7U-vAOXFkzMfRz1q8Uv6Otsvc0OrPYLLP44srwkJ_8s,89
|
152
|
-
prefect/runner/runner.py,sha256=
|
153
|
+
prefect/runner/runner.py,sha256=SPCbcJP3JJMenwBRMRJ4OBPCGNmuK_UAEOuODuAAeic,50146
|
153
154
|
prefect/runner/server.py,sha256=2o5vhrL7Zbn-HBStWhCjqqViex5Ye9GiQ1EW9RSEzdo,10500
|
154
155
|
prefect/runner/storage.py,sha256=OsBa4nWdFxOTiAMNLFpexBdi5K3iuxidQx4YWZwditE,24734
|
155
156
|
prefect/runner/submit.py,sha256=RuyDr-ved9wjYYarXiehY5oJVFf_HE3XKKACNWpxpPc,8131
|
@@ -171,10 +172,10 @@ prefect/utilities/compat.py,sha256=mNQZDnzyKaOqy-OV-DnmH_dc7CNF5nQgW_EsA4xMr7g,9
|
|
171
172
|
prefect/utilities/context.py,sha256=BThuUW94-IYgFYTeMIM9KMo8ShT3oiI7w5ajZHzU1j0,1377
|
172
173
|
prefect/utilities/dispatch.py,sha256=EthEmyRwv-4W8z2BJclrsOQHJ_pJoZYL0t2cyYPEa-E,6098
|
173
174
|
prefect/utilities/dockerutils.py,sha256=kRozGQ7JO6Uxl-ljWtDryzxhf96rHL78aHYDh255Em4,20324
|
174
|
-
prefect/utilities/engine.py,sha256=
|
175
|
+
prefect/utilities/engine.py,sha256=dRjO7PhqacdhIBBOcAXPCPSG4EozbWrPsMXVkGX-Zgk,31879
|
175
176
|
prefect/utilities/filesystem.py,sha256=frAyy6qOeYa7c-jVbEUGZQEe6J1yF8I_SvUepPd59gI,4415
|
176
177
|
prefect/utilities/hashing.py,sha256=EOwZLmoIZImuSTxAvVqInabxJ-4RpEfYeg9e2EDQF8o,1752
|
177
|
-
prefect/utilities/importtools.py,sha256=
|
178
|
+
prefect/utilities/importtools.py,sha256=aO-xhf2h2KzsLGvSKwRAZLB4ITeW9rsV0Ys-gwq3i7o,19426
|
178
179
|
prefect/utilities/math.py,sha256=wLwcKVidpNeWQi1TUIWWLHGjlz9UgboX9FUGhx_CQzo,2821
|
179
180
|
prefect/utilities/names.py,sha256=x-stHcF7_tebJPvB1dz-5FvdXJXNBTg2kFZXSnIBBmk,1657
|
180
181
|
prefect/utilities/processutils.py,sha256=yo_GO48pZzgn4A0IK5irTAoqyUCYvWKDSqHXCrtP8c4,14547
|
@@ -185,20 +186,20 @@ prefect/utilities/slugify.py,sha256=57Vb14t13F3zm1P65KAu8nVeAz0iJCd1Qc5eMG-R5y8,
|
|
185
186
|
prefect/utilities/templating.py,sha256=nAiOGMMHGbIDFkGYy-g-dzcbY311WfycdgAhsM3cLpY,13298
|
186
187
|
prefect/utilities/text.py,sha256=eXGIsCcZ7h_6hy8T5GDQjL8GiKyktoOqavYub0QjgO4,445
|
187
188
|
prefect/utilities/timeout.py,sha256=BRDIOWnqcw3B7X9tIk83Y3n9nQrJzZgduDQ63z-ns8w,1286
|
188
|
-
prefect/utilities/urls.py,sha256=
|
189
|
+
prefect/utilities/urls.py,sha256=tKB7Bmbhbe3lBpiAIp7Idb_TWDmmDZI6nNTnDkwDKKI,8207
|
189
190
|
prefect/utilities/visualization.py,sha256=Lum4IvLQ0nHsdLt6GGzS3Wwo-828u1rmOKc5mmWu994,6502
|
190
191
|
prefect/utilities/schema_tools/__init__.py,sha256=KsFsTEHQqgp89TkDpjggkgBBywoHQPxbx-m6YQhiNEI,322
|
191
192
|
prefect/utilities/schema_tools/hydration.py,sha256=k12qVCdLLrK-mNo1hPCdhxM5f_N14Nj0vJdtiWYWffk,8858
|
192
193
|
prefect/utilities/schema_tools/validation.py,sha256=2GCjxwApTFwzey40ul9OkcAXrU3r-kWK__9ucMo0qbk,9744
|
193
194
|
prefect/workers/__init__.py,sha256=8dP8SLZbWYyC_l9DRTQSE3dEbDgns5DZDhxkp_NfsbQ,35
|
194
|
-
prefect/workers/base.py,sha256=
|
195
|
+
prefect/workers/base.py,sha256=DWIbfOrjYgFOHUmkswTNk3Ih3Hl_t7o2jZ2-EvKjZy8,46139
|
195
196
|
prefect/workers/block.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
196
197
|
prefect/workers/cloud.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
197
198
|
prefect/workers/process.py,sha256=tcJ3fbiraLCfpVGpv8dOHwMSfVzeD_kyguUOvPuIz6I,19796
|
198
199
|
prefect/workers/server.py,sha256=lgh2FfSuaNU7b6HPxSFm8JtKvAvHsZGkiOo4y4tW1Cw,2022
|
199
200
|
prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
|
200
|
-
prefect_client-3.0.
|
201
|
-
prefect_client-3.0.
|
202
|
-
prefect_client-3.0.
|
203
|
-
prefect_client-3.0.
|
204
|
-
prefect_client-3.0.
|
201
|
+
prefect_client-3.0.2.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
|
202
|
+
prefect_client-3.0.2.dist-info/METADATA,sha256=zLFH-1v5yn_-48sgKItsPN-4OYAUBp1MeW7iGW_qFGQ,7332
|
203
|
+
prefect_client-3.0.2.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
204
|
+
prefect_client-3.0.2.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
|
205
|
+
prefect_client-3.0.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|