prefect-client 3.0.0rc9__py3-none-any.whl → 3.0.0rc10__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/migration.py +48 -8
- prefect/agent.py +6 -0
- prefect/client/schemas/objects.py +2 -3
- prefect/context.py +6 -0
- prefect/deployments/schedules.py +5 -2
- prefect/events/schemas/automations.py +3 -3
- prefect/exceptions.py +4 -1
- prefect/filesystems.py +4 -3
- prefect/flow_engine.py +72 -8
- prefect/flows.py +48 -4
- prefect/infrastructure/__init__.py +6 -0
- prefect/infrastructure/base.py +6 -0
- prefect/results.py +50 -67
- prefect/serializers.py +3 -3
- prefect/settings.py +6 -32
- prefect/task_engine.py +77 -21
- prefect/task_runners.py +28 -16
- prefect/task_worker.py +6 -4
- prefect/tasks.py +30 -5
- prefect/transactions.py +2 -2
- prefect/utilities/asyncutils.py +8 -3
- prefect/utilities/importtools.py +1 -1
- prefect/utilities/timeout.py +20 -5
- prefect/workers/block.py +6 -0
- prefect/workers/cloud.py +6 -0
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc10.dist-info}/METADATA +2 -2
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc10.dist-info}/RECORD +30 -26
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc10.dist-info}/LICENSE +0 -0
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc10.dist-info}/WHEEL +0 -0
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc10.dist-info}/top_level.txt +0 -0
prefect/task_runners.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import abc
|
2
2
|
import asyncio
|
3
3
|
import sys
|
4
|
+
import threading
|
4
5
|
import uuid
|
5
6
|
from concurrent.futures import ThreadPoolExecutor
|
6
7
|
from contextvars import copy_context
|
@@ -41,8 +42,8 @@ if TYPE_CHECKING:
|
|
41
42
|
|
42
43
|
P = ParamSpec("P")
|
43
44
|
T = TypeVar("T")
|
44
|
-
F = TypeVar("F", bound=PrefectFuture)
|
45
45
|
R = TypeVar("R")
|
46
|
+
F = TypeVar("F", bound=PrefectFuture, default=PrefectConcurrentFuture)
|
46
47
|
|
47
48
|
|
48
49
|
class TaskRunner(abc.ABC, Generic[F]):
|
@@ -220,6 +221,7 @@ class ThreadPoolTaskRunner(TaskRunner[PrefectConcurrentFuture]):
|
|
220
221
|
super().__init__()
|
221
222
|
self._executor: Optional[ThreadPoolExecutor] = None
|
222
223
|
self._max_workers = sys.maxsize if max_workers is None else max_workers
|
224
|
+
self._cancel_events: Dict[uuid.UUID, threading.Event] = {}
|
223
225
|
|
224
226
|
def duplicate(self) -> "ThreadPoolTaskRunner":
|
225
227
|
return type(self)(max_workers=self._max_workers)
|
@@ -270,6 +272,8 @@ class ThreadPoolTaskRunner(TaskRunner[PrefectConcurrentFuture]):
|
|
270
272
|
from prefect.task_engine import run_task_async, run_task_sync
|
271
273
|
|
272
274
|
task_run_id = uuid.uuid4()
|
275
|
+
cancel_event = threading.Event()
|
276
|
+
self._cancel_events[task_run_id] = cancel_event
|
273
277
|
context = copy_context()
|
274
278
|
|
275
279
|
flow_run_ctx = FlowRunContext.get()
|
@@ -280,31 +284,29 @@ class ThreadPoolTaskRunner(TaskRunner[PrefectConcurrentFuture]):
|
|
280
284
|
else:
|
281
285
|
self.logger.info(f"Submitting task {task.name} to thread pool executor...")
|
282
286
|
|
287
|
+
submit_kwargs = dict(
|
288
|
+
task=task,
|
289
|
+
task_run_id=task_run_id,
|
290
|
+
parameters=parameters,
|
291
|
+
wait_for=wait_for,
|
292
|
+
return_type="state",
|
293
|
+
dependencies=dependencies,
|
294
|
+
context=dict(cancel_event=cancel_event),
|
295
|
+
)
|
296
|
+
|
283
297
|
if task.isasync:
|
284
298
|
# TODO: Explore possibly using a long-lived thread with an event loop
|
285
299
|
# for better performance
|
286
300
|
future = self._executor.submit(
|
287
301
|
context.run,
|
288
302
|
asyncio.run,
|
289
|
-
run_task_async(
|
290
|
-
task=task,
|
291
|
-
task_run_id=task_run_id,
|
292
|
-
parameters=parameters,
|
293
|
-
wait_for=wait_for,
|
294
|
-
return_type="state",
|
295
|
-
dependencies=dependencies,
|
296
|
-
),
|
303
|
+
run_task_async(**submit_kwargs),
|
297
304
|
)
|
298
305
|
else:
|
299
306
|
future = self._executor.submit(
|
300
307
|
context.run,
|
301
308
|
run_task_sync,
|
302
|
-
|
303
|
-
task_run_id=task_run_id,
|
304
|
-
parameters=parameters,
|
305
|
-
wait_for=wait_for,
|
306
|
-
return_type="state",
|
307
|
-
dependencies=dependencies,
|
309
|
+
**submit_kwargs,
|
308
310
|
)
|
309
311
|
prefect_future = PrefectConcurrentFuture(
|
310
312
|
task_run_id=task_run_id, wrapped_future=future
|
@@ -337,14 +339,24 @@ class ThreadPoolTaskRunner(TaskRunner[PrefectConcurrentFuture]):
|
|
337
339
|
):
|
338
340
|
return super().map(task, parameters, wait_for)
|
339
341
|
|
342
|
+
def cancel_all(self):
|
343
|
+
for event in self._cancel_events.values():
|
344
|
+
event.set()
|
345
|
+
self.logger.debug("Set cancel event")
|
346
|
+
|
347
|
+
if self._executor is not None:
|
348
|
+
self._executor.shutdown(cancel_futures=True)
|
349
|
+
self._executor = None
|
350
|
+
|
340
351
|
def __enter__(self):
|
341
352
|
super().__enter__()
|
342
353
|
self._executor = ThreadPoolExecutor(max_workers=self._max_workers)
|
343
354
|
return self
|
344
355
|
|
345
356
|
def __exit__(self, exc_type, exc_value, traceback):
|
357
|
+
self.cancel_all()
|
346
358
|
if self._executor is not None:
|
347
|
-
self._executor.shutdown()
|
359
|
+
self._executor.shutdown(cancel_futures=True)
|
348
360
|
self._executor = None
|
349
361
|
super().__exit__(exc_type, exc_value, traceback)
|
350
362
|
|
prefect/task_worker.py
CHANGED
@@ -37,6 +37,7 @@ from prefect.utilities.annotations import NotSet
|
|
37
37
|
from prefect.utilities.asyncutils import asyncnullcontext, sync_compatible
|
38
38
|
from prefect.utilities.engine import emit_task_run_state_change_event, propose_state
|
39
39
|
from prefect.utilities.processutils import _register_signal
|
40
|
+
from prefect.utilities.urls import url_for
|
40
41
|
|
41
42
|
logger = get_logger("task_worker")
|
42
43
|
|
@@ -288,10 +289,6 @@ class TaskWorker:
|
|
288
289
|
await self._client._client.delete(f"/task_runs/{task_run.id}")
|
289
290
|
return
|
290
291
|
|
291
|
-
logger.debug(
|
292
|
-
f"Submitting run {task_run.name!r} of task {task.name!r} to engine"
|
293
|
-
)
|
294
|
-
|
295
292
|
try:
|
296
293
|
new_state = Pending()
|
297
294
|
new_state.state_details.deferred = True
|
@@ -326,6 +323,11 @@ class TaskWorker:
|
|
326
323
|
validated_state=state,
|
327
324
|
)
|
328
325
|
|
326
|
+
if task_run_url := url_for(task_run):
|
327
|
+
logger.info(
|
328
|
+
f"Submitting task run {task_run.name!r} to engine. View run in the UI at {task_run_url!r}"
|
329
|
+
)
|
330
|
+
|
329
331
|
if task.isasync:
|
330
332
|
await run_task_async(
|
331
333
|
task=task,
|
prefect/tasks.py
CHANGED
@@ -50,7 +50,6 @@ from prefect.futures import PrefectDistributedFuture, PrefectFuture, PrefectFutu
|
|
50
50
|
from prefect.logging.loggers import get_logger
|
51
51
|
from prefect.results import ResultFactory, ResultSerializer, ResultStorage
|
52
52
|
from prefect.settings import (
|
53
|
-
PREFECT_RESULTS_PERSIST_BY_DEFAULT,
|
54
53
|
PREFECT_TASK_DEFAULT_RETRIES,
|
55
54
|
PREFECT_TASK_DEFAULT_RETRY_DELAY_SECONDS,
|
56
55
|
)
|
@@ -67,6 +66,7 @@ from prefect.utilities.callables import (
|
|
67
66
|
)
|
68
67
|
from prefect.utilities.hashing import hash_objects
|
69
68
|
from prefect.utilities.importtools import to_qualified_name
|
69
|
+
from prefect.utilities.urls import url_for
|
70
70
|
|
71
71
|
if TYPE_CHECKING:
|
72
72
|
from prefect.client.orchestration import PrefectClient
|
@@ -387,9 +387,20 @@ class Task(Generic[P, R]):
|
|
387
387
|
self.cache_expiration = cache_expiration
|
388
388
|
self.refresh_cache = refresh_cache
|
389
389
|
|
390
|
+
# result persistence settings
|
390
391
|
if persist_result is None:
|
391
|
-
|
392
|
-
|
392
|
+
if any(
|
393
|
+
[
|
394
|
+
cache_policy and cache_policy != NONE and cache_policy != NotSet,
|
395
|
+
cache_key_fn is not None,
|
396
|
+
result_storage_key is not None,
|
397
|
+
result_storage is not None,
|
398
|
+
result_serializer is not None,
|
399
|
+
]
|
400
|
+
):
|
401
|
+
persist_result = True
|
402
|
+
|
403
|
+
if persist_result is False:
|
393
404
|
self.cache_policy = None if cache_policy is None else NONE
|
394
405
|
if cache_policy and cache_policy is not NotSet and cache_policy != NONE:
|
395
406
|
logger.warning(
|
@@ -428,6 +439,14 @@ class Task(Generic[P, R]):
|
|
428
439
|
|
429
440
|
self.retry_jitter_factor = retry_jitter_factor
|
430
441
|
self.persist_result = persist_result
|
442
|
+
|
443
|
+
if result_storage and not isinstance(result_storage, str):
|
444
|
+
if getattr(result_storage, "_block_document_id", None) is None:
|
445
|
+
raise TypeError(
|
446
|
+
"Result storage configuration must be persisted server-side."
|
447
|
+
" Please call `.save()` on your block before passing it in."
|
448
|
+
)
|
449
|
+
|
431
450
|
self.result_storage = result_storage
|
432
451
|
self.result_serializer = result_serializer
|
433
452
|
self.result_storage_key = result_storage_key
|
@@ -1282,14 +1301,20 @@ class Task(Generic[P, R]):
|
|
1282
1301
|
# Convert the call args/kwargs to a parameter dict
|
1283
1302
|
parameters = get_call_parameters(self.fn, args, kwargs)
|
1284
1303
|
|
1285
|
-
task_run = run_coro_as_sync(
|
1304
|
+
task_run: TaskRun = run_coro_as_sync(
|
1286
1305
|
self.create_run(
|
1287
1306
|
parameters=parameters,
|
1288
1307
|
deferred=True,
|
1289
1308
|
wait_for=wait_for,
|
1290
1309
|
extra_task_inputs=dependencies,
|
1291
1310
|
)
|
1292
|
-
)
|
1311
|
+
) # type: ignore
|
1312
|
+
|
1313
|
+
if task_run_url := url_for(task_run):
|
1314
|
+
logger.info(
|
1315
|
+
f"Created task run {task_run.name!r}. View it in the UI at {task_run_url!r}"
|
1316
|
+
)
|
1317
|
+
|
1293
1318
|
return PrefectDistributedFuture(task_run_id=task_run.id)
|
1294
1319
|
|
1295
1320
|
def delay(self, *args: P.args, **kwargs: P.kwargs) -> PrefectDistributedFuture:
|
prefect/transactions.py
CHANGED
@@ -22,7 +22,7 @@ from prefect.records.result_store import ResultFactoryStore
|
|
22
22
|
from prefect.results import (
|
23
23
|
BaseResult,
|
24
24
|
ResultFactory,
|
25
|
-
|
25
|
+
get_default_result_storage,
|
26
26
|
)
|
27
27
|
from prefect.utilities.asyncutils import run_coro_as_sync
|
28
28
|
from prefect.utilities.collections import AutoEnum
|
@@ -297,7 +297,7 @@ def transaction(
|
|
297
297
|
}
|
298
298
|
)
|
299
299
|
else:
|
300
|
-
default_storage =
|
300
|
+
default_storage = get_default_result_storage(_sync=True)
|
301
301
|
if existing_factory:
|
302
302
|
new_factory = existing_factory.model_copy(
|
303
303
|
update={
|
prefect/utilities/asyncutils.py
CHANGED
@@ -184,7 +184,7 @@ def run_coro_as_sync(
|
|
184
184
|
coroutine: Awaitable[R],
|
185
185
|
force_new_thread: bool = False,
|
186
186
|
wait_for_result: bool = True,
|
187
|
-
) -> R:
|
187
|
+
) -> Union[R, None]:
|
188
188
|
"""
|
189
189
|
Runs a coroutine from a synchronous context, as if it were a synchronous
|
190
190
|
function.
|
@@ -216,7 +216,7 @@ def run_coro_as_sync(
|
|
216
216
|
else:
|
217
217
|
raise TypeError("`coroutine` must be a coroutine object")
|
218
218
|
|
219
|
-
async def coroutine_wrapper():
|
219
|
+
async def coroutine_wrapper() -> Union[R, None]:
|
220
220
|
"""
|
221
221
|
Set flags so that children (and grandchildren...) of this task know they are running in a new
|
222
222
|
thread and do not try to run on the run_sync thread, which would cause a
|
@@ -245,7 +245,12 @@ def run_coro_as_sync(
|
|
245
245
|
call = _cast_to_call(coroutine_wrapper)
|
246
246
|
runner = get_run_sync_loop()
|
247
247
|
runner.submit(call)
|
248
|
-
|
248
|
+
try:
|
249
|
+
return call.result()
|
250
|
+
except KeyboardInterrupt:
|
251
|
+
call.cancel()
|
252
|
+
logger.debug("Coroutine cancelled due to KeyboardInterrupt.")
|
253
|
+
raise
|
249
254
|
|
250
255
|
|
251
256
|
async def run_sync_in_worker_thread(
|
prefect/utilities/importtools.py
CHANGED
@@ -422,7 +422,7 @@ def safe_load_namespace(source_code: str):
|
|
422
422
|
logger.debug("Failed to import from %s: %s", node.module, e)
|
423
423
|
|
424
424
|
# Handle local definitions
|
425
|
-
for node in
|
425
|
+
for node in parsed_code.body:
|
426
426
|
if isinstance(node, (ast.ClassDef, ast.FunctionDef, ast.Assign)):
|
427
427
|
try:
|
428
428
|
# Compile and execute each class and function definition and assignment
|
prefect/utilities/timeout.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from asyncio import CancelledError
|
2
2
|
from contextlib import contextmanager
|
3
|
-
from typing import Optional
|
3
|
+
from typing import Optional, Type
|
4
4
|
|
5
5
|
from prefect._internal.concurrency.cancellation import (
|
6
6
|
cancel_async_after,
|
@@ -8,8 +8,19 @@ from prefect._internal.concurrency.cancellation import (
|
|
8
8
|
)
|
9
9
|
|
10
10
|
|
11
|
+
def fail_if_not_timeout_error(timeout_exc_type: Type[Exception]) -> None:
|
12
|
+
if not issubclass(timeout_exc_type, TimeoutError):
|
13
|
+
raise ValueError(
|
14
|
+
"The `timeout_exc_type` argument must be a subclass of `TimeoutError`."
|
15
|
+
)
|
16
|
+
|
17
|
+
|
11
18
|
@contextmanager
|
12
|
-
def timeout_async(
|
19
|
+
def timeout_async(
|
20
|
+
seconds: Optional[float] = None, timeout_exc_type: Type[TimeoutError] = TimeoutError
|
21
|
+
):
|
22
|
+
fail_if_not_timeout_error(timeout_exc_type)
|
23
|
+
|
13
24
|
if seconds is None:
|
14
25
|
yield
|
15
26
|
return
|
@@ -18,11 +29,15 @@ def timeout_async(seconds: Optional[float] = None):
|
|
18
29
|
with cancel_async_after(timeout=seconds):
|
19
30
|
yield
|
20
31
|
except CancelledError:
|
21
|
-
raise
|
32
|
+
raise timeout_exc_type(f"Scope timed out after {seconds} second(s).")
|
22
33
|
|
23
34
|
|
24
35
|
@contextmanager
|
25
|
-
def timeout(
|
36
|
+
def timeout(
|
37
|
+
seconds: Optional[float] = None, timeout_exc_type: Type[TimeoutError] = TimeoutError
|
38
|
+
):
|
39
|
+
fail_if_not_timeout_error(timeout_exc_type)
|
40
|
+
|
26
41
|
if seconds is None:
|
27
42
|
yield
|
28
43
|
return
|
@@ -31,4 +46,4 @@ def timeout(seconds: Optional[float] = None):
|
|
31
46
|
with cancel_sync_after(timeout=seconds):
|
32
47
|
yield
|
33
48
|
except CancelledError:
|
34
|
-
raise
|
49
|
+
raise timeout_exc_type(f"Scope timed out after {seconds} second(s).")
|
prefect/workers/block.py
ADDED
prefect/workers/cloud.py
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: prefect-client
|
3
|
-
Version: 3.0.
|
3
|
+
Version: 3.0.0rc10
|
4
4
|
Summary: Workflow orchestration and management.
|
5
5
|
Home-page: https://www.prefect.io
|
6
6
|
Author: Prefect Technologies, Inc.
|
@@ -58,7 +58,7 @@ Requires-Dist: sniffio <2.0.0,>=1.3.0
|
|
58
58
|
Requires-Dist: toml >=0.10.0
|
59
59
|
Requires-Dist: typing-extensions <5.0.0,>=4.5.0
|
60
60
|
Requires-Dist: ujson <6.0.0,>=5.8.0
|
61
|
-
Requires-Dist: uvicorn
|
61
|
+
Requires-Dist: uvicorn !=0.29.0,>=0.14.0
|
62
62
|
Requires-Dist: websockets <13.0,>=10.4
|
63
63
|
Requires-Dist: wrapt >=1.16.0
|
64
64
|
Requires-Dist: importlib-metadata >=4.4 ; python_version < "3.10"
|
@@ -1,32 +1,33 @@
|
|
1
1
|
prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
|
2
2
|
prefect/__init__.py,sha256=rFlBikby0TcAmljqECcleQE_se15eh1gLp5iac0ZhsU,3301
|
3
3
|
prefect/_version.py,sha256=I9JsXwt7BjAAbMEZgtmE3a6dJ2jqV-wqWto9D6msb3k,24597
|
4
|
+
prefect/agent.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
4
5
|
prefect/artifacts.py,sha256=G-jCyce3XGtTyQpCk_s3L7e-TWFyJY8Dcnk_i4_CsY4,12647
|
5
6
|
prefect/automations.py,sha256=NlQ62GPJzy-gnWQqX7c6CQJKw7p60WLGDAFcy82vtg4,5613
|
6
7
|
prefect/cache_policies.py,sha256=uEKNGO-PJ3N35B2tjhRDtQULN6ok72D9raIoJaUyXk0,6365
|
7
|
-
prefect/context.py,sha256=
|
8
|
+
prefect/context.py,sha256=GmCFJDsj8mEYBph8q_mQpzDebk3P43EeaXz-SiMeAmQ,19698
|
8
9
|
prefect/engine.py,sha256=BpmDbe6miZcTl1vRkxfCPYcWSXADLigGPCagFwucMz0,1976
|
9
|
-
prefect/exceptions.py,sha256=
|
10
|
-
prefect/filesystems.py,sha256=
|
11
|
-
prefect/flow_engine.py,sha256=
|
10
|
+
prefect/exceptions.py,sha256=3s69Z_IC3HKF6BKxcHrMPXkKdYwfbEfaTjy4-5LOtQ0,11132
|
11
|
+
prefect/filesystems.py,sha256=rbFvlqHXeeo71nK1Y5I0-ucmGOYUcdkbb6N2vpsRcWE,17229
|
12
|
+
prefect/flow_engine.py,sha256=niDSb2xeKvtE4ZZmkUR3zF-khqPFhpWuORnxZ_bJOD0,29246
|
12
13
|
prefect/flow_runs.py,sha256=EaXRIQTOnwnA0fO7_EjwafFRmS57K_CRy0Xsz3JDIhc,16070
|
13
|
-
prefect/flows.py,sha256=
|
14
|
+
prefect/flows.py,sha256=KfAulSaYhodoeLVROthtYWeVpchRhv7u9dsgYbR4Kzg,80833
|
14
15
|
prefect/futures.py,sha256=nGD195sLosqBIpBtESLeVMKAorUVRNLstipiqs6e7w8,12153
|
15
16
|
prefect/main.py,sha256=bab5nBn37a6gmxdPbTlRS2a9Cf0KY0GaCotDOSbcQ7M,1930
|
16
17
|
prefect/manifests.py,sha256=477XcmfdC_yE81wT6zIAKnEUEJ0lH9ZLfOVSgX2FohE,676
|
17
18
|
prefect/plugins.py,sha256=7AICJzHIu8iAeF9vl9wAYm28pR_k7dkdnm3OyJRfCv4,2229
|
18
19
|
prefect/profiles.toml,sha256=Fs8hD_BdWHZgAijgk8pK_Zx-Pm-YFixqDIfEP6fM-qU,38
|
19
20
|
prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
prefect/results.py,sha256=
|
21
|
-
prefect/serializers.py,sha256=
|
22
|
-
prefect/settings.py,sha256
|
21
|
+
prefect/results.py,sha256=gpX2pGIYyVfxMaVJkic5i1KbJ4RBARAoIizDL_C3auI,26152
|
22
|
+
prefect/serializers.py,sha256=Lo41EM0_qGzcfB_63390Izeo3DdK6cY6VZfxa9hpSGQ,8712
|
23
|
+
prefect/settings.py,sha256=-x6n7WpSgflBPCFRx9mP4i9cqDtMWVI3IKU7GFTRmP4,69747
|
23
24
|
prefect/states.py,sha256=lw22xucH46cN9stkxiV9ByIvq689mH5iL3gErri-Y18,22207
|
24
|
-
prefect/task_engine.py,sha256=
|
25
|
-
prefect/task_runners.py,sha256=
|
25
|
+
prefect/task_engine.py,sha256=94Acrmq04i-KjJtSa72_ofGAEfs_lKBAYqhRww0jH24,34957
|
26
|
+
prefect/task_runners.py,sha256=W1n0yMwbDIqnvffFVJADo9MGEbLaYkzWk52rqgnkMY4,15019
|
26
27
|
prefect/task_runs.py,sha256=eDWYH5H1K4SyduhKmn3GzO6vM3fZSwOZxAb8KhkMGsk,7798
|
27
|
-
prefect/task_worker.py,sha256=
|
28
|
-
prefect/tasks.py,sha256=
|
29
|
-
prefect/transactions.py,sha256=
|
28
|
+
prefect/task_worker.py,sha256=dH9hf_vKsOlWtXinp2-1d2wk2YCa69QyuH8YAV_Bp28,17342
|
29
|
+
prefect/tasks.py,sha256=VkliQAiiLiYSpBQvY1Xc4huqmGgMlgX0KChlBPOX9IY,62599
|
30
|
+
prefect/transactions.py,sha256=UBEFArEn1jWlacvHtYBxdtK6k57I4bHcCl5n8LDblRI,10460
|
30
31
|
prefect/variables.py,sha256=-t5LVY0N-K4f0fa6YwruVVQqwnU3fGWBMYXXE32XPkA,4821
|
31
32
|
prefect/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
33
|
prefect/_internal/_logging.py,sha256=HvNHY-8P469o5u4LYEDBTem69XZEt1QUeUaLToijpak,810
|
@@ -35,7 +36,7 @@ prefect/_internal/pytz.py,sha256=WWl9x16rKFWequGmcOGs_ljpCDPf2LDHMyZp_4D8e6c,137
|
|
35
36
|
prefect/_internal/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
37
|
prefect/_internal/compatibility/deprecated.py,sha256=7vqE1_PAPS0cDalTfTumHWUIOqIzkbKvQl1iwHlfynQ,9205
|
37
38
|
prefect/_internal/compatibility/experimental.py,sha256=nrIeeAe1vZ0yMb1cPw5AroVR6_msx-bzTeBLzY4au6o,5634
|
38
|
-
prefect/_internal/compatibility/migration.py,sha256=
|
39
|
+
prefect/_internal/compatibility/migration.py,sha256=O9HrcqxfQ-RrIklH0uGxeXMrQejPz1hmsgrw8zDLJuw,6801
|
39
40
|
prefect/_internal/concurrency/__init__.py,sha256=YlTwU9ryjPNwbJa45adLJY00t_DGCh1QrdtY9WdVFfw,2140
|
40
41
|
prefect/_internal/concurrency/api.py,sha256=mE2IahRxGX1DgyxIryDXhF6gwhOJ-cdghsTjJtNil9U,7132
|
41
42
|
prefect/_internal/concurrency/calls.py,sha256=UlNgzCoy3awKEPnMpexBSa1dk_2MNwCWoZ5YQODEmG4,15437
|
@@ -77,7 +78,7 @@ prefect/client/utilities.py,sha256=Qh1WdKLs8F_GuA04FeZ1GJsPYtiCN4DjKmLEaMfKmpQ,3
|
|
77
78
|
prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
|
78
79
|
prefect/client/schemas/actions.py,sha256=wiyq87MrHBVbZZVqA6IX4Gy_rw7sogLfqRSXK3Id0cc,28019
|
79
80
|
prefect/client/schemas/filters.py,sha256=HyIYZQowhkHa_D6syj83zUp5uFEzA8UADLaS9mt1MTo,35305
|
80
|
-
prefect/client/schemas/objects.py,sha256=
|
81
|
+
prefect/client/schemas/objects.py,sha256=ot3nxARccG3viFuXp2bli_6JaGcO6I1_U_8gP-F2j0w,53547
|
81
82
|
prefect/client/schemas/responses.py,sha256=xW9QKmVgBftSEmtuSr5gp9HBFvIDzF6aSFq-mhv7dE8,14948
|
82
83
|
prefect/client/schemas/schedules.py,sha256=8rpqjOYtknu2-1n5_WD4cOplgu93P3mCyX86B22LfL4,13070
|
83
84
|
prefect/client/schemas/sorting.py,sha256=EIQ6FUjUWMwk6fn6ckVLQLXOP-GI5kce7ftjUkDFWV0,2490
|
@@ -93,7 +94,7 @@ prefect/deployments/base.py,sha256=j2VUHkghXCqbfYJD8Joeh12Ejh4KCzr2DgVPRpDpbLw,1
|
|
93
94
|
prefect/deployments/deployments.py,sha256=EvC9qBdvJRc8CHJqRjFTqtzx75SE8bpZOl5C-2eULyA,109
|
94
95
|
prefect/deployments/flow_runs.py,sha256=eatcBD7pg-aaEqs9JxQQcKN_flf614O4gAvedAlRyNo,6803
|
95
96
|
prefect/deployments/runner.py,sha256=wVz2Ltis_tOpWLvLzPuOBJBIsdWqs8aXY2oCOuwhssc,41763
|
96
|
-
prefect/deployments/schedules.py,sha256=
|
97
|
+
prefect/deployments/schedules.py,sha256=KCYA6dOmLAoElHZuoWqdJn4Yno4TtOZtXfPOpTLb1cE,2046
|
97
98
|
prefect/deployments/steps/__init__.py,sha256=Dlz9VqMRyG1Gal8dj8vfGpPr0LyQhZdvcciozkK8WoY,206
|
98
99
|
prefect/deployments/steps/core.py,sha256=5vFf6BSpu992kkaYsvcPpsz-nZxFmayMIDmY9h0Hb8M,6846
|
99
100
|
prefect/deployments/steps/pull.py,sha256=ylp3fd72hEfmY67LQs7sMwdcK6KKobsTZOeay-YUl8Q,7125
|
@@ -110,11 +111,12 @@ prefect/events/worker.py,sha256=UGwqnoOHmtvAh_Y9yJlEB6RfKmYRu4Xsc5l9LolHV_0,3434
|
|
110
111
|
prefect/events/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
111
112
|
prefect/events/cli/automations.py,sha256=WIZ3-EcDibjQB5BrMEx7OZ7UfOqP8VjCI1dNh64Nmg0,11425
|
112
113
|
prefect/events/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
113
|
-
prefect/events/schemas/automations.py,sha256=
|
114
|
+
prefect/events/schemas/automations.py,sha256=he9_v0Oq8AtCJe5gMti5GDQiaGa50sM4Jz9soDf-upU,14396
|
114
115
|
prefect/events/schemas/deployment_triggers.py,sha256=i_BtKscXU9kOHAeqmxrYQr8itEYfuPIxAnCW3fo1YeE,3114
|
115
116
|
prefect/events/schemas/events.py,sha256=RqosMukGfHvLPnYDcyxkm6VuifCeH5-aQ4POdMPmaUA,8649
|
116
117
|
prefect/events/schemas/labelling.py,sha256=bU-XYaHXhI2MEBIHngth96R9D02m8HHb85KNcHZ_1Gc,3073
|
117
|
-
prefect/infrastructure/__init__.py,sha256=
|
118
|
+
prefect/infrastructure/__init__.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
119
|
+
prefect/infrastructure/base.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
118
120
|
prefect/infrastructure/provisioners/__init__.py,sha256=wn240gHrQbien2g_g2A8Ujb2iFyjmDgMHLQ7tgQngf4,1706
|
119
121
|
prefect/infrastructure/provisioners/cloud_run.py,sha256=K6_8AO_fZRfuI0hGx_EwvlRkiNPcmR5yD9P8B-QSjuc,17745
|
120
122
|
prefect/infrastructure/provisioners/container_instance.py,sha256=ZaiaAOywMjbhZI6emzqsDQh-xBePajzjjMT_JY8lwNA,41281
|
@@ -150,7 +152,7 @@ prefect/types/__init__.py,sha256=SAHJDtWEGidTKXQACJ38nj6fq8r57Gj0Pwo4Gy7pVWs,223
|
|
150
152
|
prefect/types/entrypoint.py,sha256=2FF03-wLPgtnqR_bKJDB2BsXXINPdu8ptY9ZYEZnXg8,328
|
151
153
|
prefect/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
154
|
prefect/utilities/annotations.py,sha256=bXB43j5Zsq5gaBcJe9qnszBlnNwCTwqSTgcu2OkkRLo,2776
|
153
|
-
prefect/utilities/asyncutils.py,sha256=
|
155
|
+
prefect/utilities/asyncutils.py,sha256=9utKsWwvZ2q4ZgXEEPwqlAF9rQ_lavAo_4yZowICkJQ,19997
|
154
156
|
prefect/utilities/callables.py,sha256=rkPPzwiVFRoVszSUq612s9S0v3nxcMC-rIwfXoJTn0E,24915
|
155
157
|
prefect/utilities/collections.py,sha256=pPa_SZZq80cja6l99b3TV7hRQy366WnuWpOW_FnutMI,17259
|
156
158
|
prefect/utilities/compat.py,sha256=mNQZDnzyKaOqy-OV-DnmH_dc7CNF5nQgW_EsA4xMr7g,906
|
@@ -160,7 +162,7 @@ prefect/utilities/dockerutils.py,sha256=kRozGQ7JO6Uxl-ljWtDryzxhf96rHL78aHYDh255
|
|
160
162
|
prefect/utilities/engine.py,sha256=E5WSLg9XsvkEN56M8Q5Wl4k0INUpaqmvdToQPFjYWNo,30160
|
161
163
|
prefect/utilities/filesystem.py,sha256=frAyy6qOeYa7c-jVbEUGZQEe6J1yF8I_SvUepPd59gI,4415
|
162
164
|
prefect/utilities/hashing.py,sha256=EOwZLmoIZImuSTxAvVqInabxJ-4RpEfYeg9e2EDQF8o,1752
|
163
|
-
prefect/utilities/importtools.py,sha256
|
165
|
+
prefect/utilities/importtools.py,sha256=YKmfib0_fYK_TaVjy8Ru1yxBI1OPH_Jh-utxlLpu2y8,15406
|
164
166
|
prefect/utilities/math.py,sha256=wLwcKVidpNeWQi1TUIWWLHGjlz9UgboX9FUGhx_CQzo,2821
|
165
167
|
prefect/utilities/names.py,sha256=x-stHcF7_tebJPvB1dz-5FvdXJXNBTg2kFZXSnIBBmk,1657
|
166
168
|
prefect/utilities/processutils.py,sha256=yo_GO48pZzgn4A0IK5irTAoqyUCYvWKDSqHXCrtP8c4,14547
|
@@ -170,7 +172,7 @@ prefect/utilities/services.py,sha256=WoYOkWFnuW0K5I2RPx2g7F7WhuVgz39zWK9xkgiSHC8
|
|
170
172
|
prefect/utilities/slugify.py,sha256=57Vb14t13F3zm1P65KAu8nVeAz0iJCd1Qc5eMG-R5y8,169
|
171
173
|
prefect/utilities/templating.py,sha256=nAiOGMMHGbIDFkGYy-g-dzcbY311WfycdgAhsM3cLpY,13298
|
172
174
|
prefect/utilities/text.py,sha256=eXGIsCcZ7h_6hy8T5GDQjL8GiKyktoOqavYub0QjgO4,445
|
173
|
-
prefect/utilities/timeout.py,sha256=
|
175
|
+
prefect/utilities/timeout.py,sha256=BRDIOWnqcw3B7X9tIk83Y3n9nQrJzZgduDQ63z-ns8w,1286
|
174
176
|
prefect/utilities/urls.py,sha256=GuiV3mk-XfzXx139ySyNQNbNaolA3T-hUZvW3T_PhXU,6396
|
175
177
|
prefect/utilities/visualization.py,sha256=Lum4IvLQ0nHsdLt6GGzS3Wwo-828u1rmOKc5mmWu994,6502
|
176
178
|
prefect/utilities/schema_tools/__init__.py,sha256=KsFsTEHQqgp89TkDpjggkgBBywoHQPxbx-m6YQhiNEI,322
|
@@ -178,11 +180,13 @@ prefect/utilities/schema_tools/hydration.py,sha256=Nitnmr35Mcn5z9NXIvh9DuZW5nCZx
|
|
178
180
|
prefect/utilities/schema_tools/validation.py,sha256=zZHL_UFxAlgaUzi-qsEOrhWtZ7EkFQvPkX_YN1EJNTo,8414
|
179
181
|
prefect/workers/__init__.py,sha256=8dP8SLZbWYyC_l9DRTQSE3dEbDgns5DZDhxkp_NfsbQ,35
|
180
182
|
prefect/workers/base.py,sha256=62E0Q41pPr3eQdSBSUBfiR4WYx01OfuqUp5INRqHGgo,46942
|
183
|
+
prefect/workers/block.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
184
|
+
prefect/workers/cloud.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
|
181
185
|
prefect/workers/process.py,sha256=vylkSSswaSCew-V65YW0HcxIxyKI-uqWkbSKpkkLamQ,9372
|
182
186
|
prefect/workers/server.py,sha256=EfPiMxI7TVgkqpHkdPwSaYG-ydi99sG7jwXhkAcACbI,1519
|
183
187
|
prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
|
184
|
-
prefect_client-3.0.
|
185
|
-
prefect_client-3.0.
|
186
|
-
prefect_client-3.0.
|
187
|
-
prefect_client-3.0.
|
188
|
-
prefect_client-3.0.
|
188
|
+
prefect_client-3.0.0rc10.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
|
189
|
+
prefect_client-3.0.0rc10.dist-info/METADATA,sha256=IrvEmM3lkAlZER89HpIGYjfXrekuvfgaxXCE4875OQ4,7424
|
190
|
+
prefect_client-3.0.0rc10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
191
|
+
prefect_client-3.0.0rc10.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
|
192
|
+
prefect_client-3.0.0rc10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|