prefect-client 3.0.0rc6__py3-none-any.whl → 3.0.0rc8__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/task_runners.py CHANGED
@@ -1,9 +1,21 @@
1
1
  import abc
2
2
  import asyncio
3
+ import sys
3
4
  import uuid
4
5
  from concurrent.futures import ThreadPoolExecutor
5
6
  from contextvars import copy_context
6
- from typing import TYPE_CHECKING, Any, Dict, Generic, Iterable, Optional, Set
7
+ from typing import (
8
+ TYPE_CHECKING,
9
+ Any,
10
+ Coroutine,
11
+ Dict,
12
+ Generic,
13
+ Iterable,
14
+ List,
15
+ Optional,
16
+ Set,
17
+ overload,
18
+ )
7
19
 
8
20
  from typing_extensions import ParamSpec, Self, TypeVar
9
21
 
@@ -13,6 +25,7 @@ from prefect.futures import (
13
25
  PrefectConcurrentFuture,
14
26
  PrefectDistributedFuture,
15
27
  PrefectFuture,
28
+ PrefectFutureList,
16
29
  )
17
30
  from prefect.logging.loggers import get_logger, get_run_logger
18
31
  from prefect.utilities.annotations import allow_failure, quote, unmapped
@@ -29,6 +42,7 @@ if TYPE_CHECKING:
29
42
  P = ParamSpec("P")
30
43
  T = TypeVar("T")
31
44
  F = TypeVar("F", bound=PrefectFuture)
45
+ R = TypeVar("R")
32
46
 
33
47
 
34
48
  class TaskRunner(abc.ABC, Generic[F]):
@@ -84,7 +98,7 @@ class TaskRunner(abc.ABC, Generic[F]):
84
98
  task: "Task",
85
99
  parameters: Dict[str, Any],
86
100
  wait_for: Optional[Iterable[PrefectFuture]] = None,
87
- ) -> Iterable[F]:
101
+ ) -> PrefectFutureList[F]:
88
102
  """
89
103
  Submit multiple tasks to the task run engine.
90
104
 
@@ -156,7 +170,7 @@ class TaskRunner(abc.ABC, Generic[F]):
156
170
 
157
171
  map_length = list(lengths)[0]
158
172
 
159
- futures = []
173
+ futures: List[PrefectFuture] = []
160
174
  for i in range(map_length):
161
175
  call_parameters = {
162
176
  key: value[i] for key, value in iterable_parameters.items()
@@ -186,7 +200,7 @@ class TaskRunner(abc.ABC, Generic[F]):
186
200
  )
187
201
  )
188
202
 
189
- return futures
203
+ return PrefectFutureList(futures)
190
204
 
191
205
  def __enter__(self):
192
206
  if self._started:
@@ -205,18 +219,38 @@ class ThreadPoolTaskRunner(TaskRunner[PrefectConcurrentFuture]):
205
219
  def __init__(self, max_workers: Optional[int] = None):
206
220
  super().__init__()
207
221
  self._executor: Optional[ThreadPoolExecutor] = None
208
- self._max_workers = max_workers
222
+ self._max_workers = sys.maxsize if max_workers is None else max_workers
209
223
 
210
224
  def duplicate(self) -> "ThreadPoolTaskRunner":
211
225
  return type(self)(max_workers=self._max_workers)
212
226
 
227
+ @overload
228
+ def submit(
229
+ self,
230
+ task: "Task[P, Coroutine[Any, Any, R]]",
231
+ parameters: Dict[str, Any],
232
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
233
+ dependencies: Optional[Dict[str, Set[TaskRunInput]]] = None,
234
+ ) -> PrefectConcurrentFuture[R]:
235
+ ...
236
+
237
+ @overload
238
+ def submit(
239
+ self,
240
+ task: "Task[Any, R]",
241
+ parameters: Dict[str, Any],
242
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
243
+ dependencies: Optional[Dict[str, Set[TaskRunInput]]] = None,
244
+ ) -> PrefectConcurrentFuture[R]:
245
+ ...
246
+
213
247
  def submit(
214
248
  self,
215
249
  task: "Task",
216
250
  parameters: Dict[str, Any],
217
251
  wait_for: Optional[Iterable[PrefectFuture]] = None,
218
252
  dependencies: Optional[Dict[str, Set[TaskRunInput]]] = None,
219
- ) -> PrefectConcurrentFuture:
253
+ ):
220
254
  """
221
255
  Submit a task to the task run engine running in a separate thread.
222
256
 
@@ -277,6 +311,32 @@ class ThreadPoolTaskRunner(TaskRunner[PrefectConcurrentFuture]):
277
311
  )
278
312
  return prefect_future
279
313
 
314
+ @overload
315
+ def map(
316
+ self,
317
+ task: "Task[P, Coroutine[Any, Any, R]]",
318
+ parameters: Dict[str, Any],
319
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
320
+ ) -> PrefectFutureList[PrefectConcurrentFuture[R]]:
321
+ ...
322
+
323
+ @overload
324
+ def map(
325
+ self,
326
+ task: "Task[Any, R]",
327
+ parameters: Dict[str, Any],
328
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
329
+ ) -> PrefectFutureList[PrefectConcurrentFuture[R]]:
330
+ ...
331
+
332
+ def map(
333
+ self,
334
+ task: "Task",
335
+ parameters: Dict[str, Any],
336
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
337
+ ):
338
+ return super().map(task, parameters, wait_for)
339
+
280
340
  def __enter__(self):
281
341
  super().__enter__()
282
342
  self._executor = ThreadPoolExecutor(max_workers=self._max_workers)
@@ -305,13 +365,33 @@ class PrefectTaskRunner(TaskRunner[PrefectDistributedFuture]):
305
365
  def duplicate(self) -> "PrefectTaskRunner":
306
366
  return type(self)()
307
367
 
368
+ @overload
369
+ def submit(
370
+ self,
371
+ task: "Task[P, Coroutine[Any, Any, R]]",
372
+ parameters: Dict[str, Any],
373
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
374
+ dependencies: Optional[Dict[str, Set[TaskRunInput]]] = None,
375
+ ) -> PrefectDistributedFuture[R]:
376
+ ...
377
+
378
+ @overload
379
+ def submit(
380
+ self,
381
+ task: "Task[Any, R]",
382
+ parameters: Dict[str, Any],
383
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
384
+ dependencies: Optional[Dict[str, Set[TaskRunInput]]] = None,
385
+ ) -> PrefectDistributedFuture[R]:
386
+ ...
387
+
308
388
  def submit(
309
389
  self,
310
390
  task: "Task",
311
391
  parameters: Dict[str, Any],
312
392
  wait_for: Optional[Iterable[PrefectFuture]] = None,
313
393
  dependencies: Optional[Dict[str, Set[TaskRunInput]]] = None,
314
- ) -> PrefectDistributedFuture:
394
+ ):
315
395
  """
316
396
  Submit a task to the task run engine running in a separate thread.
317
397
 
@@ -341,3 +421,29 @@ class PrefectTaskRunner(TaskRunner[PrefectDistributedFuture]):
341
421
  return task.apply_async(
342
422
  kwargs=parameters, wait_for=wait_for, dependencies=dependencies
343
423
  )
424
+
425
+ @overload
426
+ def map(
427
+ self,
428
+ task: "Task[P, Coroutine[Any, Any, R]]",
429
+ parameters: Dict[str, Any],
430
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
431
+ ) -> PrefectFutureList[PrefectDistributedFuture[R]]:
432
+ ...
433
+
434
+ @overload
435
+ def map(
436
+ self,
437
+ task: "Task[Any, R]",
438
+ parameters: Dict[str, Any],
439
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
440
+ ) -> PrefectFutureList[PrefectDistributedFuture[R]]:
441
+ ...
442
+
443
+ def map(
444
+ self,
445
+ task: "Task",
446
+ parameters: Dict[str, Any],
447
+ wait_for: Optional[Iterable[PrefectFuture]] = None,
448
+ ):
449
+ return super().map(task, parameters, wait_for)
prefect/tasks.py CHANGED
@@ -14,6 +14,7 @@ from typing import (
14
14
  Any,
15
15
  Awaitable,
16
16
  Callable,
17
+ Coroutine,
17
18
  Dict,
18
19
  Generic,
19
20
  Iterable,
@@ -42,10 +43,11 @@ from prefect.context import (
42
43
  TaskRunContext,
43
44
  serialize_context,
44
45
  )
45
- from prefect.futures import PrefectDistributedFuture, PrefectFuture
46
+ from prefect.futures import PrefectDistributedFuture, PrefectFuture, PrefectFutureList
46
47
  from prefect.logging.loggers import get_logger
47
48
  from prefect.results import ResultFactory, ResultSerializer, ResultStorage
48
49
  from prefect.settings import (
50
+ PREFECT_RESULTS_PERSIST_BY_DEFAULT,
49
51
  PREFECT_TASK_DEFAULT_RETRIES,
50
52
  PREFECT_TASK_DEFAULT_RETRY_DELAY_SECONDS,
51
53
  )
@@ -219,8 +221,10 @@ class Task(Generic[P, R]):
219
221
  cannot exceed 50.
220
222
  retry_jitter_factor: An optional factor that defines the factor to which a retry
221
223
  can be jittered in order to avoid a "thundering herd".
222
- persist_result: An toggle indicating whether the result of this task
223
- should be persisted to result storage. Defaults to `True`.
224
+ persist_result: A toggle indicating whether the result of this task
225
+ should be persisted to result storage. Defaults to `None`, which
226
+ indicates that the global default should be used (which is `True` by
227
+ default).
224
228
  result_storage: An optional block to use to persist the result of this task.
225
229
  Defaults to the value set in the flow the task is called in.
226
230
  result_storage_key: An optional key to store the result in storage at when persisted.
@@ -272,7 +276,7 @@ class Task(Generic[P, R]):
272
276
  ]
273
277
  ] = None,
274
278
  retry_jitter_factor: Optional[float] = None,
275
- persist_result: bool = True,
279
+ persist_result: Optional[bool] = None,
276
280
  result_storage: Optional[ResultStorage] = None,
277
281
  result_serializer: Optional[ResultSerializer] = None,
278
282
  result_storage_key: Optional[str] = None,
@@ -380,6 +384,8 @@ class Task(Generic[P, R]):
380
384
  self.cache_expiration = cache_expiration
381
385
  self.refresh_cache = refresh_cache
382
386
 
387
+ if persist_result is None:
388
+ persist_result = PREFECT_RESULTS_PERSIST_BY_DEFAULT.value()
383
389
  if not persist_result:
384
390
  self.cache_policy = None if cache_policy is None else NONE
385
391
  if cache_policy and cache_policy is not NotSet and cache_policy != NONE:
@@ -824,25 +830,41 @@ class Task(Generic[P, R]):
824
830
  self: "Task[P, NoReturn]",
825
831
  *args: P.args,
826
832
  **kwargs: P.kwargs,
827
- ) -> PrefectFuture:
833
+ ) -> PrefectFuture[NoReturn]:
828
834
  # `NoReturn` matches if a type can't be inferred for the function which stops a
829
835
  # sync function from matching the `Coroutine` overload
830
836
  ...
831
837
 
832
838
  @overload
833
839
  def submit(
834
- self: "Task[P, T]",
840
+ self: "Task[P, Coroutine[Any, Any, T]]",
835
841
  *args: P.args,
836
842
  **kwargs: P.kwargs,
837
- ) -> PrefectFuture:
843
+ ) -> PrefectFuture[T]:
838
844
  ...
839
845
 
840
846
  @overload
841
847
  def submit(
842
848
  self: "Task[P, T]",
849
+ *args: P.args,
850
+ **kwargs: P.kwargs,
851
+ ) -> PrefectFuture[T]:
852
+ ...
853
+
854
+ @overload
855
+ def submit(
856
+ self: "Task[P, Coroutine[Any, Any, T]]",
857
+ *args: P.args,
843
858
  return_state: Literal[True],
844
- wait_for: Optional[Iterable[PrefectFuture]] = None,
859
+ **kwargs: P.kwargs,
860
+ ) -> State[T]:
861
+ ...
862
+
863
+ @overload
864
+ def submit(
865
+ self: "Task[P, T]",
845
866
  *args: P.args,
867
+ return_state: Literal[True],
846
868
  **kwargs: P.kwargs,
847
869
  ) -> State[T]:
848
870
  ...
@@ -974,26 +996,41 @@ class Task(Generic[P, R]):
974
996
  self: "Task[P, NoReturn]",
975
997
  *args: P.args,
976
998
  **kwargs: P.kwargs,
977
- ) -> List[PrefectFuture]:
978
- # `NoReturn` matches if a type can't be inferred for the function which stops a
979
- # sync function from matching the `Coroutine` overload
999
+ ) -> PrefectFutureList[PrefectFuture[NoReturn]]:
980
1000
  ...
981
1001
 
982
1002
  @overload
983
1003
  def map(
984
- self: "Task[P, T]",
1004
+ self: "Task[P, Coroutine[Any, Any, T]]",
985
1005
  *args: P.args,
986
1006
  **kwargs: P.kwargs,
987
- ) -> List[PrefectFuture]:
1007
+ ) -> PrefectFutureList[PrefectFuture[T]]:
988
1008
  ...
989
1009
 
990
1010
  @overload
991
1011
  def map(
992
1012
  self: "Task[P, T]",
1013
+ *args: P.args,
1014
+ **kwargs: P.kwargs,
1015
+ ) -> PrefectFutureList[PrefectFuture[T]]:
1016
+ ...
1017
+
1018
+ @overload
1019
+ def map(
1020
+ self: "Task[P, Coroutine[Any, Any, T]]",
1021
+ *args: P.args,
993
1022
  return_state: Literal[True],
1023
+ **kwargs: P.kwargs,
1024
+ ) -> PrefectFutureList[State[T]]:
1025
+ ...
1026
+
1027
+ @overload
1028
+ def map(
1029
+ self: "Task[P, T]",
994
1030
  *args: P.args,
1031
+ return_state: Literal[True],
995
1032
  **kwargs: P.kwargs,
996
- ) -> List[State[T]]:
1033
+ ) -> PrefectFutureList[State[T]]:
997
1034
  ...
998
1035
 
999
1036
  def map(
@@ -1007,8 +1044,9 @@ class Task(Generic[P, R]):
1007
1044
  """
1008
1045
  Submit a mapped run of the task to a worker.
1009
1046
 
1010
- Must be called within a flow function. If writing an async task, this
1011
- call must be awaited.
1047
+ Must be called within a flow run context. Will return a list of futures
1048
+ that should be waited on before exiting the flow context to ensure all
1049
+ mapped tasks have completed.
1012
1050
 
1013
1051
  Must be called with at least one iterable and all iterables must be
1014
1052
  the same length. Any arguments that are not iterable will be treated as
@@ -1046,15 +1084,14 @@ class Task(Generic[P, R]):
1046
1084
  >>> from prefect import flow
1047
1085
  >>> @flow
1048
1086
  >>> def my_flow():
1049
- >>> my_task.map([1, 2, 3])
1087
+ >>> return my_task.map([1, 2, 3])
1050
1088
 
1051
1089
  Wait for all mapped tasks to finish
1052
1090
 
1053
1091
  >>> @flow
1054
1092
  >>> def my_flow():
1055
1093
  >>> futures = my_task.map([1, 2, 3])
1056
- >>> for future in futures:
1057
- >>> future.wait()
1094
+ >>> futures.wait():
1058
1095
  >>> # Now all of the mapped tasks have finished
1059
1096
  >>> my_task(10)
1060
1097
 
@@ -1063,8 +1100,8 @@ class Task(Generic[P, R]):
1063
1100
  >>> @flow
1064
1101
  >>> def my_flow():
1065
1102
  >>> futures = my_task.map([1, 2, 3])
1066
- >>> for future in futures:
1067
- >>> print(future.result())
1103
+ >>> for x in futures.result():
1104
+ >>> print(x)
1068
1105
  >>> my_flow()
1069
1106
  2
1070
1107
  3
@@ -1085,6 +1122,7 @@ class Task(Generic[P, R]):
1085
1122
  >>>
1086
1123
  >>> # task 2 will wait for task_1 to complete
1087
1124
  >>> y = task_2.map([1, 2, 3], wait_for=[x])
1125
+ >>> return y
1088
1126
 
1089
1127
  Use a non-iterable input as a constant across mapped tasks
1090
1128
  >>> @task
@@ -1093,7 +1131,7 @@ class Task(Generic[P, R]):
1093
1131
  >>>
1094
1132
  >>> @flow
1095
1133
  >>> def my_flow():
1096
- >>> display.map("Check it out: ", [1, 2, 3])
1134
+ >>> return display.map("Check it out: ", [1, 2, 3])
1097
1135
  >>>
1098
1136
  >>> my_flow()
1099
1137
  Check it out: 1
@@ -1336,7 +1374,7 @@ def task(
1336
1374
  Callable[[int], List[float]],
1337
1375
  ] = 0,
1338
1376
  retry_jitter_factor: Optional[float] = None,
1339
- persist_result: bool = True,
1377
+ persist_result: Optional[bool] = None,
1340
1378
  result_storage: Optional[ResultStorage] = None,
1341
1379
  result_storage_key: Optional[str] = None,
1342
1380
  result_serializer: Optional[ResultSerializer] = None,
@@ -1368,7 +1406,7 @@ def task(
1368
1406
  float, int, List[float], Callable[[int], List[float]], None
1369
1407
  ] = None,
1370
1408
  retry_jitter_factor: Optional[float] = None,
1371
- persist_result: bool = True,
1409
+ persist_result: Optional[bool] = None,
1372
1410
  result_storage: Optional[ResultStorage] = None,
1373
1411
  result_storage_key: Optional[str] = None,
1374
1412
  result_serializer: Optional[ResultSerializer] = None,
@@ -1414,8 +1452,10 @@ def task(
1414
1452
  cannot exceed 50.
1415
1453
  retry_jitter_factor: An optional factor that defines the factor to which a retry
1416
1454
  can be jittered in order to avoid a "thundering herd".
1417
- persist_result: An toggle indicating whether the result of this task
1418
- should be persisted to result storage. Defaults to `True`.
1455
+ persist_result: A toggle indicating whether the result of this task
1456
+ should be persisted to result storage. Defaults to `None`, which
1457
+ indicates that the global default should be used (which is `True` by
1458
+ default).
1419
1459
  result_storage: An optional block to use to persist the result of this task.
1420
1460
  Defaults to the value set in the flow the task is called in.
1421
1461
  result_storage_key: An optional key to store the result in storage at when persisted.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 3.0.0rc6
3
+ Version: 3.0.0rc8
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -1,5 +1,5 @@
1
1
  prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
2
- prefect/__init__.py,sha256=YmPor6iCXeKOr8jfH08qD9CBiRsEY6pXs4mRSQRo6ro,2873
2
+ prefect/__init__.py,sha256=rFlBikby0TcAmljqECcleQE_se15eh1gLp5iac0ZhsU,3301
3
3
  prefect/_version.py,sha256=I9JsXwt7BjAAbMEZgtmE3a6dJ2jqV-wqWto9D6msb3k,24597
4
4
  prefect/artifacts.py,sha256=G-jCyce3XGtTyQpCk_s3L7e-TWFyJY8Dcnk_i4_CsY4,12647
5
5
  prefect/automations.py,sha256=NlQ62GPJzy-gnWQqX7c6CQJKw7p60WLGDAFcy82vtg4,5613
@@ -10,21 +10,22 @@ prefect/exceptions.py,sha256=kRiEX6qpT9errs0SuYJDYG7ioMNddTvqK7gT8RVFajk,11076
10
10
  prefect/filesystems.py,sha256=HrPoehZKpuVxzWDXaTiuJqgVCgxlQ4lyTEZKSYKiZUc,17169
11
11
  prefect/flow_engine.py,sha256=3JM3LpgqCGLUsTbrh5-CL3IFnHSHRWHbqV9xMEC3nyM,26149
12
12
  prefect/flow_runs.py,sha256=7mHGjb3-6MfR4XKQjy9sJPS9dS0yTxVO6MYQ8YlGjGw,16071
13
- prefect/flows.py,sha256=fODMwvsgkNkIy1eWCqh5zHLDpLaL1LXCN17Ygpg0MdU,79204
14
- prefect/futures.py,sha256=mI3WuaH3k0LkqwPbM6V7WbG0ssT-NjpX1wROS7vSKE0,9882
13
+ prefect/flows.py,sha256=wR3bkeS5MuAk_T2UzcBMWx5idghE66CfDVcgR4_6DIE,79033
14
+ prefect/futures.py,sha256=P3ZZdoOFaxJFDtquJce6PwUz4VWZd0G3Pf74uMVRGQY,11958
15
+ prefect/main.py,sha256=bab5nBn37a6gmxdPbTlRS2a9Cf0KY0GaCotDOSbcQ7M,1930
15
16
  prefect/manifests.py,sha256=477XcmfdC_yE81wT6zIAKnEUEJ0lH9ZLfOVSgX2FohE,676
16
- prefect/plugins.py,sha256=-IqPJvQGoMZBioHCF0s1IDNHYA7OxIRaUlkaGM2CgLY,4164
17
+ prefect/plugins.py,sha256=7AICJzHIu8iAeF9vl9wAYm28pR_k7dkdnm3OyJRfCv4,2229
17
18
  prefect/profiles.toml,sha256=Fs8hD_BdWHZgAijgk8pK_Zx-Pm-YFixqDIfEP6fM-qU,38
18
19
  prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- prefect/results.py,sha256=qG-5mAlZTRV7GneuQVS7GpHHt3QXcZbwLwn03fHAi4M,27326
20
+ prefect/results.py,sha256=Lty6G1zeDyxSmJTYHg3ESXhqt535DsK6gvbtkDsNYWg,25360
20
21
  prefect/serializers.py,sha256=8ON--RmaLX3Td3Rpd1lshGcqWyjlCFkmO3sblxsdT_c,8699
21
- prefect/settings.py,sha256=JkCgcFO7Zw0Kv_azK9XLabx08ypVgL76E6r8nD-HZLM,74598
22
- prefect/states.py,sha256=JdN01UMYFelFybPoAEKbiPJNuPaj6pksLJ3o0_oNz5Q,20690
23
- prefect/task_engine.py,sha256=wGN-jFfiLROth8pA8be9Y9_ghi5VS3T2Zpu4ZxTtHSk,32519
24
- prefect/task_runners.py,sha256=TQHyQATPkZE6BNVJ_JQBNmiL1kdgZRjY_Fjs3-N1UiE,11869
22
+ prefect/settings.py,sha256=IauUadC63B5D4CjVrLca7yaG2qYO4umPAW6t1zYShrE,70565
23
+ prefect/states.py,sha256=lw22xucH46cN9stkxiV9ByIvq689mH5iL3gErri-Y18,22207
24
+ prefect/task_engine.py,sha256=P8Tl7gp7PzvnxjBqk-M6iev2NTVDlsJ7FOPruJvnn0k,33018
25
+ prefect/task_runners.py,sha256=KulKKV1_Pkt7Pt2to3NLc1tp-idpV8EXdSuFJXS8ZyY,14622
25
26
  prefect/task_runs.py,sha256=eDWYH5H1K4SyduhKmn3GzO6vM3fZSwOZxAb8KhkMGsk,7798
26
27
  prefect/task_worker.py,sha256=iawQZn4hNcrXR-CHtM4jzhlnotqeNHiRuHc-eumJ9Oc,16788
27
- prefect/tasks.py,sha256=rA7FAqcb58hwhrju7ocxL-e982vXEKx86Zl8G-LYcQY,60300
28
+ prefect/tasks.py,sha256=CKFlMcJ7Sw3zYTgPp3fhZZK2oTy33RoQmLNvavgUAxg,61427
28
29
  prefect/transactions.py,sha256=XhEXdhid1457m5V7VTz1U8JCek6U6jSFD7EffGhCLag,9149
29
30
  prefect/variables.py,sha256=-t5LVY0N-K4f0fa6YwruVVQqwnU3fGWBMYXXE32XPkA,4821
30
31
  prefect/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -33,7 +34,7 @@ prefect/_internal/pytz.py,sha256=WWl9x16rKFWequGmcOGs_ljpCDPf2LDHMyZp_4D8e6c,137
33
34
  prefect/_internal/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
35
  prefect/_internal/compatibility/deprecated.py,sha256=nqevphK00rakKgCfkbqBQ4NCktdb4338uuROjFcq6xA,7517
35
36
  prefect/_internal/compatibility/experimental.py,sha256=nrIeeAe1vZ0yMb1cPw5AroVR6_msx-bzTeBLzY4au6o,5634
36
- prefect/_internal/compatibility/migration.py,sha256=4JF2FW0Ols-HGclraqPRVmGvq5FPTbPIwxxPPuwxDs4,4756
37
+ prefect/_internal/compatibility/migration.py,sha256=ec5H2VFCMT1diwW1hinkQpDDSz_PpiArdP1ypEOtNys,4792
37
38
  prefect/_internal/concurrency/__init__.py,sha256=YlTwU9ryjPNwbJa45adLJY00t_DGCh1QrdtY9WdVFfw,2140
38
39
  prefect/_internal/concurrency/api.py,sha256=mE2IahRxGX1DgyxIryDXhF6gwhOJ-cdghsTjJtNil9U,7132
39
40
  prefect/_internal/concurrency/calls.py,sha256=UlNgzCoy3awKEPnMpexBSa1dk_2MNwCWoZ5YQODEmG4,15437
@@ -69,14 +70,14 @@ prefect/client/base.py,sha256=laxz64IEhbetMIcRh67_YDYd5ThCmUK9fgUgco8WyXQ,24647
69
70
  prefect/client/cloud.py,sha256=5T84QP9IRa_cqL7rmY3lR1wxFW6C41PajFZgelurhK0,4124
70
71
  prefect/client/collections.py,sha256=I9EgbTg4Fn57gn8vwP_WdDmgnATbx9gfkm2jjhCORjw,1037
71
72
  prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
72
- prefect/client/orchestration.py,sha256=0wK6LEWgKgsrgy6kF654EiweorId8nmX5nzXp-BtSgU,142641
73
+ prefect/client/orchestration.py,sha256=W3tiqjND1lf0GtunLBayMRrUD5ykAcW0GfwxqT9fT-A,142479
73
74
  prefect/client/subscriptions.py,sha256=J9uK9NGHO4VX4Y3NGgBJ4pIG_0cf-dJWPhF3f3PGYL4,3388
74
75
  prefect/client/utilities.py,sha256=Ni1DsFDhnvxpXWerlvZpK8tCg-uZ8UyZwOmDTKEb1DI,3269
75
76
  prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
76
- prefect/client/schemas/actions.py,sha256=t-JJCikwa_ZrTPu7VJDwkLQ2fgNQuYHUwAi_3PHpwoU,28113
77
+ prefect/client/schemas/actions.py,sha256=wiyq87MrHBVbZZVqA6IX4Gy_rw7sogLfqRSXK3Id0cc,28019
77
78
  prefect/client/schemas/filters.py,sha256=HyIYZQowhkHa_D6syj83zUp5uFEzA8UADLaS9mt1MTo,35305
78
- prefect/client/schemas/objects.py,sha256=htwlQ1CYcouNPWENVLyWyWSGRfjNXRIxvuYG_nKcnlE,53308
79
- prefect/client/schemas/responses.py,sha256=YnofjvPxaDE0kPw7SLfK5TuZSJ0IlqP2G17rQgz_buk,15135
79
+ prefect/client/schemas/objects.py,sha256=tLFLEuSnISVeLPkOUDsgcZo5Rq7is1ZCladDa_abR-Q,53422
80
+ prefect/client/schemas/responses.py,sha256=xW9QKmVgBftSEmtuSr5gp9HBFvIDzF6aSFq-mhv7dE8,14948
80
81
  prefect/client/schemas/schedules.py,sha256=8rpqjOYtknu2-1n5_WD4cOplgu93P3mCyX86B22LfL4,13070
81
82
  prefect/client/schemas/sorting.py,sha256=EIQ6FUjUWMwk6fn6ckVLQLXOP-GI5kce7ftjUkDFWV0,2490
82
83
  prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -135,7 +136,7 @@ prefect/records/store.py,sha256=eQM1p2vZDshXZYg6SkJwL-DP3kUehL_Zgs8xa2-0DZs,224
135
136
  prefect/runner/__init__.py,sha256=7U-vAOXFkzMfRz1q8Uv6Otsvc0OrPYLLP44srwkJ_8s,89
136
137
  prefect/runner/runner.py,sha256=aR9Figoyvn0PAKv8zussaT7sJP9zM-SAmrcYZN19ZB8,45152
137
138
  prefect/runner/server.py,sha256=pXyNGDw2aBYCXRr3zyFCaflxUaQOG4M07zxwXiFngoQ,10676
138
- prefect/runner/storage.py,sha256=nuzkEjmAZYAjCEpXhuuZSGJAqBARICIBmDQNqDgI4yk,22316
139
+ prefect/runner/storage.py,sha256=FFHk28iF_OLw-cnXQtJIgGXUV4xecxF70mobiszP8C4,24557
139
140
  prefect/runner/submit.py,sha256=EpgYNR-tAub0VFVTIkijp8qwHcS1iojLAZN5NM0X39s,8552
140
141
  prefect/runner/utils.py,sha256=wVgVa7p5uUL7tfYfDOVuq6QIGf-I8U9dfAjYBmYf6n4,3286
141
142
  prefect/runtime/__init__.py,sha256=JswiTlYRup2zXOYu8AqJ7czKtgcw9Kxo0tTbS6aWCqY,407
@@ -179,8 +180,8 @@ prefect/workers/base.py,sha256=62E0Q41pPr3eQdSBSUBfiR4WYx01OfuqUp5INRqHGgo,46942
179
180
  prefect/workers/process.py,sha256=vylkSSswaSCew-V65YW0HcxIxyKI-uqWkbSKpkkLamQ,9372
180
181
  prefect/workers/server.py,sha256=EfPiMxI7TVgkqpHkdPwSaYG-ydi99sG7jwXhkAcACbI,1519
181
182
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
182
- prefect_client-3.0.0rc6.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
183
- prefect_client-3.0.0rc6.dist-info/METADATA,sha256=1aezCRgHP5WGBdbEDZGHjrfcnobQMNMOmtB1e-c8cHs,7392
184
- prefect_client-3.0.0rc6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
185
- prefect_client-3.0.0rc6.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
186
- prefect_client-3.0.0rc6.dist-info/RECORD,,
183
+ prefect_client-3.0.0rc8.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
184
+ prefect_client-3.0.0rc8.dist-info/METADATA,sha256=HxD4j94rGwv_w89XcuyGmUFJsgSjo22pZNJA99XFK1A,7392
185
+ prefect_client-3.0.0rc8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
186
+ prefect_client-3.0.0rc8.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
187
+ prefect_client-3.0.0rc8.dist-info/RECORD,,