prefect-client 3.0.0rc17__py3-none-any.whl → 3.0.0rc19__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.
Files changed (45) hide show
  1. prefect/_internal/concurrency/services.py +14 -0
  2. prefect/_internal/schemas/bases.py +1 -0
  3. prefect/blocks/core.py +36 -29
  4. prefect/client/orchestration.py +97 -2
  5. prefect/client/schemas/actions.py +14 -4
  6. prefect/client/schemas/filters.py +20 -0
  7. prefect/client/schemas/objects.py +3 -0
  8. prefect/client/schemas/responses.py +3 -0
  9. prefect/client/schemas/sorting.py +2 -0
  10. prefect/concurrency/v1/__init__.py +0 -0
  11. prefect/concurrency/v1/asyncio.py +143 -0
  12. prefect/concurrency/v1/context.py +27 -0
  13. prefect/concurrency/v1/events.py +61 -0
  14. prefect/concurrency/v1/services.py +116 -0
  15. prefect/concurrency/v1/sync.py +92 -0
  16. prefect/context.py +2 -2
  17. prefect/deployments/flow_runs.py +0 -7
  18. prefect/deployments/runner.py +11 -0
  19. prefect/events/clients.py +41 -0
  20. prefect/events/related.py +72 -73
  21. prefect/events/utilities.py +2 -0
  22. prefect/events/worker.py +12 -3
  23. prefect/flow_engine.py +2 -0
  24. prefect/flows.py +7 -0
  25. prefect/records/__init__.py +1 -1
  26. prefect/records/base.py +223 -0
  27. prefect/records/filesystem.py +207 -0
  28. prefect/records/memory.py +178 -0
  29. prefect/records/result_store.py +19 -14
  30. prefect/results.py +11 -0
  31. prefect/runner/runner.py +7 -4
  32. prefect/settings.py +0 -8
  33. prefect/task_engine.py +98 -209
  34. prefect/task_worker.py +7 -39
  35. prefect/tasks.py +2 -9
  36. prefect/transactions.py +67 -19
  37. prefect/utilities/asyncutils.py +3 -3
  38. prefect/utilities/callables.py +1 -3
  39. prefect/utilities/engine.py +7 -6
  40. {prefect_client-3.0.0rc17.dist-info → prefect_client-3.0.0rc19.dist-info}/METADATA +3 -4
  41. {prefect_client-3.0.0rc17.dist-info → prefect_client-3.0.0rc19.dist-info}/RECORD +44 -36
  42. prefect/records/store.py +0 -9
  43. {prefect_client-3.0.0rc17.dist-info → prefect_client-3.0.0rc19.dist-info}/LICENSE +0 -0
  44. {prefect_client-3.0.0rc17.dist-info → prefect_client-3.0.0rc19.dist-info}/WHEEL +0 -0
  45. {prefect_client-3.0.0rc17.dist-info → prefect_client-3.0.0rc19.dist-info}/top_level.txt +0 -0
prefect/transactions.py CHANGED
@@ -2,6 +2,7 @@ import copy
2
2
  import logging
3
3
  from contextlib import contextmanager
4
4
  from contextvars import ContextVar, Token
5
+ from functools import partial
5
6
  from typing import (
6
7
  Any,
7
8
  Callable,
@@ -18,9 +19,8 @@ from typing_extensions import Self
18
19
 
19
20
  from prefect.context import ContextModel, FlowRunContext, TaskRunContext
20
21
  from prefect.exceptions import MissingContextError
21
- from prefect.logging.loggers import PrefectLogAdapter, get_logger, get_run_logger
22
+ from prefect.logging.loggers import get_logger, get_run_logger
22
23
  from prefect.records import RecordStore
23
- from prefect.records.result_store import ResultFactoryStore
24
24
  from prefect.results import (
25
25
  BaseResult,
26
26
  ResultFactory,
@@ -60,13 +60,16 @@ class Transaction(ContextModel):
60
60
  key: Optional[str] = None
61
61
  children: List["Transaction"] = Field(default_factory=list)
62
62
  commit_mode: Optional[CommitMode] = None
63
+ isolation_level: Optional[IsolationLevel] = IsolationLevel.READ_COMMITTED
63
64
  state: TransactionState = TransactionState.PENDING
64
65
  on_commit_hooks: List[Callable[["Transaction"], None]] = Field(default_factory=list)
65
66
  on_rollback_hooks: List[Callable[["Transaction"], None]] = Field(
66
67
  default_factory=list
67
68
  )
68
69
  overwrite: bool = False
69
- logger: Union[logging.Logger, logging.LoggerAdapter, None] = None
70
+ logger: Union[logging.Logger, logging.LoggerAdapter] = Field(
71
+ default_factory=partial(get_logger, "transactions")
72
+ )
70
73
  _stored_values: Dict[str, Any] = PrivateAttr(default_factory=dict)
71
74
  _staged_value: Any = None
72
75
  __var__: ContextVar = ContextVar("transaction")
@@ -101,16 +104,27 @@ class Transaction(ContextModel):
101
104
  raise RuntimeError(
102
105
  "Context already entered. Context enter calls cannot be nested."
103
106
  )
104
- # set default commit behavior
107
+ parent = get_transaction()
108
+ if parent:
109
+ self._stored_values = copy.deepcopy(parent._stored_values)
110
+ # set default commit behavior; either inherit from parent or set a default of eager
105
111
  if self.commit_mode is None:
106
- parent = get_transaction()
112
+ self.commit_mode = parent.commit_mode if parent else CommitMode.LAZY
113
+ # set default isolation level; either inherit from parent or set a default of read committed
114
+ if self.isolation_level is None:
115
+ self.isolation_level = (
116
+ parent.isolation_level if parent else IsolationLevel.READ_COMMITTED
117
+ )
107
118
 
108
- # either inherit from parent or set a default of eager
109
- if parent:
110
- self.commit_mode = parent.commit_mode
111
- self._stored_values = copy.deepcopy(parent._stored_values)
112
- else:
113
- self.commit_mode = CommitMode.LAZY
119
+ assert self.isolation_level is not None, "Isolation level was not set correctly"
120
+ if (
121
+ self.store
122
+ and self.key
123
+ and not self.store.supports_isolation_level(self.isolation_level)
124
+ ):
125
+ raise ValueError(
126
+ f"Isolation level {self.isolation_level.name} is not supported by record store type {self.store.__class__.__name__}"
127
+ )
114
128
 
115
129
  # this needs to go before begin, which could set the state to committed
116
130
  self.state = TransactionState.ACTIVE
@@ -148,8 +162,13 @@ class Transaction(ContextModel):
148
162
  self.reset()
149
163
 
150
164
  def begin(self):
151
- # currently we only support READ_COMMITTED isolation
152
- # i.e., no locking behavior
165
+ if (
166
+ self.store
167
+ and self.key
168
+ and self.isolation_level == IsolationLevel.SERIALIZABLE
169
+ ):
170
+ self.logger.debug(f"Acquiring lock for transaction {self.key!r}")
171
+ self.store.acquire_lock(self.key)
153
172
  if (
154
173
  not self.overwrite
155
174
  and self.store
@@ -158,11 +177,12 @@ class Transaction(ContextModel):
158
177
  ):
159
178
  self.state = TransactionState.COMMITTED
160
179
 
161
- def read(self) -> BaseResult:
180
+ def read(self) -> Optional[BaseResult]:
162
181
  if self.store and self.key:
163
- return self.store.read(key=self.key)
164
- else:
165
- return {} # TODO: Determine what this should be
182
+ record = self.store.read(key=self.key)
183
+ if record is not None:
184
+ return record.result
185
+ return None
166
186
 
167
187
  def reset(self) -> None:
168
188
  parent = self.get_parent()
@@ -192,6 +212,14 @@ class Transaction(ContextModel):
192
212
 
193
213
  def commit(self) -> bool:
194
214
  if self.state in [TransactionState.ROLLED_BACK, TransactionState.COMMITTED]:
215
+ if (
216
+ self.store
217
+ and self.key
218
+ and self.isolation_level == IsolationLevel.SERIALIZABLE
219
+ ):
220
+ self.logger.debug(f"Releasing lock for transaction {self.key!r}")
221
+ self.store.release_lock(self.key)
222
+
195
223
  return False
196
224
 
197
225
  try:
@@ -202,8 +230,15 @@ class Transaction(ContextModel):
202
230
  self.run_hook(hook, "commit")
203
231
 
204
232
  if self.store and self.key:
205
- self.store.write(key=self.key, value=self._staged_value)
233
+ self.store.write(key=self.key, result=self._staged_value)
206
234
  self.state = TransactionState.COMMITTED
235
+ if (
236
+ self.store
237
+ and self.key
238
+ and self.isolation_level == IsolationLevel.SERIALIZABLE
239
+ ):
240
+ self.logger.debug(f"Releasing lock for transaction {self.key!r}")
241
+ self.store.release_lock(self.key)
207
242
  return True
208
243
  except Exception:
209
244
  if self.logger:
@@ -269,6 +304,14 @@ class Transaction(ContextModel):
269
304
  exc_info=True,
270
305
  )
271
306
  return False
307
+ finally:
308
+ if (
309
+ self.store
310
+ and self.key
311
+ and self.isolation_level == IsolationLevel.SERIALIZABLE
312
+ ):
313
+ self.logger.debug(f"Releasing lock for transaction {self.key!r}")
314
+ self.store.release_lock(self.key)
272
315
 
273
316
  @classmethod
274
317
  def get_active(cls: Type[Self]) -> Optional[Self]:
@@ -284,8 +327,9 @@ def transaction(
284
327
  key: Optional[str] = None,
285
328
  store: Optional[RecordStore] = None,
286
329
  commit_mode: Optional[CommitMode] = None,
330
+ isolation_level: Optional[IsolationLevel] = None,
287
331
  overwrite: bool = False,
288
- logger: Optional[PrefectLogAdapter] = None,
332
+ logger: Union[logging.Logger, logging.LoggerAdapter, None] = None,
289
333
  ) -> Generator[Transaction, None, None]:
290
334
  """
291
335
  A context manager for opening and managing a transaction.
@@ -309,6 +353,7 @@ def transaction(
309
353
  flow_run_context, "result_factory", None
310
354
  )
311
355
 
356
+ new_factory: ResultFactory
312
357
  if existing_factory and existing_factory.storage_block_id:
313
358
  new_factory = existing_factory.model_copy(
314
359
  update={
@@ -332,6 +377,8 @@ def transaction(
332
377
  result_storage=default_storage,
333
378
  )
334
379
  )
380
+ from prefect.records.result_store import ResultFactoryStore
381
+
335
382
  store = ResultFactoryStore(
336
383
  result_factory=new_factory,
337
384
  )
@@ -345,6 +392,7 @@ def transaction(
345
392
  key=key,
346
393
  store=store,
347
394
  commit_mode=commit_mode,
395
+ isolation_level=isolation_level,
348
396
  overwrite=overwrite,
349
397
  logger=logger,
350
398
  ) as txn:
@@ -314,20 +314,20 @@ def in_async_main_thread() -> bool:
314
314
 
315
315
  @overload
316
316
  def sync_compatible(
317
- async_fn: Callable[..., Coroutine[Any, Any, R]], force_sync: bool = False
317
+ async_fn: Callable[..., Coroutine[Any, Any, R]],
318
318
  ) -> Callable[..., R]:
319
319
  ...
320
320
 
321
321
 
322
322
  @overload
323
323
  def sync_compatible(
324
- async_fn: Callable[..., Coroutine[Any, Any, R]], force_sync: bool = False
324
+ async_fn: Callable[..., Coroutine[Any, Any, R]],
325
325
  ) -> Callable[..., Coroutine[Any, Any, R]]:
326
326
  ...
327
327
 
328
328
 
329
329
  def sync_compatible(
330
- async_fn: Callable[..., Coroutine[Any, Any, R]], force_sync: bool = False
330
+ async_fn: Callable[..., Coroutine[Any, Any, R]],
331
331
  ) -> Callable[..., Union[R, Coroutine[Any, Any, R]]]:
332
332
  """
333
333
  Converts an async function into a dual async and sync function.
@@ -12,9 +12,7 @@ from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple
12
12
 
13
13
  import cloudpickle
14
14
  import pydantic
15
- from griffe.dataclasses import Docstring
16
- from griffe.docstrings.dataclasses import DocstringSectionKind
17
- from griffe.docstrings.parsers import Parser, parse
15
+ from griffe import Docstring, DocstringSectionKind, Parser, parse
18
16
  from typing_extensions import Literal
19
17
 
20
18
  from prefect._internal.pydantic.v1_schema import has_v1_type_as_param
@@ -51,7 +51,6 @@ from prefect.logging.loggers import (
51
51
  )
52
52
  from prefect.results import BaseResult
53
53
  from prefect.settings import (
54
- PREFECT_EXPERIMENTAL_ENABLE_CLIENT_SIDE_TASK_ORCHESTRATION,
55
54
  PREFECT_LOGGING_LOG_PRINTS,
56
55
  )
57
56
  from prefect.states import (
@@ -559,8 +558,12 @@ def propose_state_sync(
559
558
  )
560
559
 
561
560
 
562
- def _dynamic_key_for_task_run(context: FlowRunContext, task: Task) -> Union[int, str]:
563
- if context.detached: # this task is running on remote infrastructure
561
+ def _dynamic_key_for_task_run(
562
+ context: FlowRunContext, task: Task, stable: bool = True
563
+ ) -> Union[int, str]:
564
+ if (
565
+ stable is False or context.detached
566
+ ): # this task is running on remote infrastructure
564
567
  return str(uuid4())
565
568
  elif context.flow_run is None: # this is an autonomous task run
566
569
  context.task_run_dynamic_keys[task.task_key] = getattr(
@@ -802,9 +805,7 @@ def emit_task_run_state_change_event(
802
805
  else ""
803
806
  ),
804
807
  "prefect.state-type": str(validated_state.type.value),
805
- "prefect.orchestration": "client"
806
- if PREFECT_EXPERIMENTAL_ENABLE_CLIENT_SIDE_TASK_ORCHESTRATION
807
- else "server",
808
+ "prefect.orchestration": "client",
808
809
  },
809
810
  follows=follows,
810
811
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 3.0.0rc17
3
+ Version: 3.0.0rc19
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -34,10 +34,9 @@ Requires-Dist: exceptiongroup>=1.0.0
34
34
  Requires-Dist: fastapi<1.0.0,>=0.111.0
35
35
  Requires-Dist: fsspec>=2022.5.0
36
36
  Requires-Dist: graphviz>=0.20.1
37
- Requires-Dist: griffe<0.48.0,>=0.20.0
37
+ Requires-Dist: griffe<2.0.0,>=0.49.0
38
38
  Requires-Dist: httpcore<2.0.0,>=1.0.5
39
39
  Requires-Dist: httpx[http2]!=0.23.2,>=0.23
40
- Requires-Dist: importlib-resources<6.2.0,>=6.1.3
41
40
  Requires-Dist: jsonpatch<2.0,>=1.32
42
41
  Requires-Dist: jsonschema<5.0.0,>=4.0.0
43
42
  Requires-Dist: orjson<4.0,>=3.7
@@ -60,7 +59,7 @@ Requires-Dist: toml>=0.10.0
60
59
  Requires-Dist: typing-extensions<5.0.0,>=4.5.0
61
60
  Requires-Dist: ujson<6.0.0,>=5.8.0
62
61
  Requires-Dist: uvicorn!=0.29.0,>=0.14.0
63
- Requires-Dist: websockets<13.0,>=10.4
62
+ Requires-Dist: websockets<14.0,>=10.4
64
63
  Requires-Dist: importlib-metadata>=4.4; python_version < "3.10"
65
64
  Provides-Extra: notifications
66
65
  Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
@@ -5,29 +5,29 @@ prefect/agent.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
5
5
  prefect/artifacts.py,sha256=wet3coxBtqK0914uTf-slYpXRVP0mjbZn804hXB-RS4,13011
6
6
  prefect/automations.py,sha256=NlQ62GPJzy-gnWQqX7c6CQJKw7p60WLGDAFcy82vtg4,5613
7
7
  prefect/cache_policies.py,sha256=779dI23HIPmrtImx9X6eVEH5jc9M7wE9T2isivNo8uM,6570
8
- prefect/context.py,sha256=Q04o0F1zc9O9y7H0Y6po1hvyajrviYAzuQmpKdNvgbM,21859
8
+ prefect/context.py,sha256=pDYReG-4I6ei7F-rOuPpGWe-cQAmRqu1awikEpjUs68,21873
9
9
  prefect/engine.py,sha256=BpmDbe6miZcTl1vRkxfCPYcWSXADLigGPCagFwucMz0,1976
10
10
  prefect/exceptions.py,sha256=3s69Z_IC3HKF6BKxcHrMPXkKdYwfbEfaTjy4-5LOtQ0,11132
11
11
  prefect/filesystems.py,sha256=rbFvlqHXeeo71nK1Y5I0-ucmGOYUcdkbb6N2vpsRcWE,17229
12
- prefect/flow_engine.py,sha256=c8mIffc57zLtHFRo4sVtQOXGihVA_y2mZiXYzjJlOHY,29445
12
+ prefect/flow_engine.py,sha256=NNzVP1AUqA2wt-1UAW1p-5Xu6J6NuMR8UaUra6QWoRE,29587
13
13
  prefect/flow_runs.py,sha256=EaXRIQTOnwnA0fO7_EjwafFRmS57K_CRy0Xsz3JDIhc,16070
14
- prefect/flows.py,sha256=9TQZaDYSY3Ao72YHF5pvmEjXD8Z5vgTp2aLEAEWiJ2Y,88326
14
+ prefect/flows.py,sha256=lrnt02WSYNKtTUlsZUhoTWTBNPD1Kzt1vk-4r9cwwrI,88780
15
15
  prefect/futures.py,sha256=Zt5U7PnNpKUQuyfAhWAZZxpG0hQ6HXuA4KVg6E9sQf8,16208
16
16
  prefect/main.py,sha256=bab5nBn37a6gmxdPbTlRS2a9Cf0KY0GaCotDOSbcQ7M,1930
17
17
  prefect/manifests.py,sha256=477XcmfdC_yE81wT6zIAKnEUEJ0lH9ZLfOVSgX2FohE,676
18
18
  prefect/plugins.py,sha256=7AICJzHIu8iAeF9vl9wAYm28pR_k7dkdnm3OyJRfCv4,2229
19
19
  prefect/profiles.toml,sha256=kTvqDNMzjH3fsm5OEI-NKY4dMmipor5EvQXRB6rPEjY,522
20
20
  prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- prefect/results.py,sha256=3mVkVWZn_VSQ9Pik79StNy113rB_SEiP83SdoUsFvTM,24635
21
+ prefect/results.py,sha256=MiERIFLzDvBSPzKl7JHjQkEFv5Hv4gyeibsMNe3QDX0,25036
22
22
  prefect/serializers.py,sha256=Lo41EM0_qGzcfB_63390Izeo3DdK6cY6VZfxa9hpSGQ,8712
23
- prefect/settings.py,sha256=RpO6XMM2qf6KC_rQMHmQpcjul1t2rZmLOkK89Ta3OcM,72076
23
+ prefect/settings.py,sha256=R_seM6uHgBzthz4O4xZ5UFUBxUgM5FHZiN_kp-SyNgI,71896
24
24
  prefect/states.py,sha256=lw22xucH46cN9stkxiV9ByIvq689mH5iL3gErri-Y18,22207
25
- prefect/task_engine.py,sha256=KIKspqIJpmT_8egEufaDThb1SvDGA9aPwPF5Y87UHe8,62799
25
+ prefect/task_engine.py,sha256=l74ljvDALIURAjqabIIbmhZysrbjjWxOaIQOzWtDFOw,56683
26
26
  prefect/task_runners.py,sha256=W1n0yMwbDIqnvffFVJADo9MGEbLaYkzWk52rqgnkMY4,15019
27
27
  prefect/task_runs.py,sha256=jkaQOkRKOHS8fgHUijteriFpjMSKv4zldn1D8tZHkUI,8777
28
- prefect/task_worker.py,sha256=DX4NYERghB8RZeFleZE0xOq3yJVunjUaAKHtiz8wuRo,17992
29
- prefect/tasks.py,sha256=cOJYhTkbPoqXZUAyWjztEOaAI1Q2dLGRqSQVN1zaYKI,68151
30
- prefect/transactions.py,sha256=6j69ClTNr10XxrsVu9QmsRU6vYU-_14umk_fvAQsBNM,11266
28
+ prefect/task_worker.py,sha256=lSCe6DJ8cCItqc6gyhaYvfvNSEdyBCpNSxl58xrVNhM,16653
29
+ prefect/tasks.py,sha256=S3_cmNwm2N0CSQqoQ3otwqRnYSx0oIT1uf6zIccXgfo,67836
30
+ prefect/transactions.py,sha256=LLkWU5pa9WfY2yxZLOV876UL88JvnCHejYZBNoYt03E,13296
31
31
  prefect/variables.py,sha256=-t5LVY0N-K4f0fa6YwruVVQqwnU3fGWBMYXXE32XPkA,4821
32
32
  prefect/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  prefect/_internal/_logging.py,sha256=HvNHY-8P469o5u4LYEDBTem69XZEt1QUeUaLToijpak,810
@@ -45,7 +45,7 @@ prefect/_internal/concurrency/cancellation.py,sha256=D1B_I2cBSGPNXcLaXNaLN_9_QAg
45
45
  prefect/_internal/concurrency/event_loop.py,sha256=1VBW862QZ6DV9dExWOT398A0fti4A7jW2kcY7Y5V-lI,2073
46
46
  prefect/_internal/concurrency/inspection.py,sha256=xfyUNr5CoES8LFhybi2DmzHeW4RpTAbrGPiZOYMVLbQ,3464
47
47
  prefect/_internal/concurrency/primitives.py,sha256=BQ0vObO7NUEq-IMbu5aTlfoZpWMbYwinzYP89GIyw68,2609
48
- prefect/_internal/concurrency/services.py,sha256=6RYcGFrHh_xO5BXeRDgNOmWsjQnQrX9jyW7SN9zuOF0,12209
48
+ prefect/_internal/concurrency/services.py,sha256=0V0BW8ZKFMUKrHvNhjM8PuYyl4Oo9G33RiAjwT7NWis,12775
49
49
  prefect/_internal/concurrency/threads.py,sha256=90Wi00pTebfihiFgP-P71DeGTnhlJKctzP69mtjphKU,8860
50
50
  prefect/_internal/concurrency/waiters.py,sha256=X6xxsKcHB9ULnCkeUf0cLTI267kI_GC4k96XRuhPhnw,8790
51
51
  prefect/_internal/pydantic/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
@@ -56,13 +56,13 @@ prefect/_internal/pydantic/v2_validated_func.py,sha256=WfEKOMb-tPYdc8o2QX5hDLJhU
56
56
  prefect/_internal/pydantic/annotations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  prefect/_internal/pydantic/annotations/pendulum.py,sha256=F0SMi6ZjxSfp_7rStK79t4gttjy2QNNQRIZxIBfRgSE,2623
58
58
  prefect/_internal/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- prefect/_internal/schemas/bases.py,sha256=KYT8v4UOIClOKoXLEHSzDI7jran35BHvRcYWueyMFYU,4098
59
+ prefect/_internal/schemas/bases.py,sha256=L8Lm93Cjfxv6QNu-RXjg59wm6oy97aGRb4niXiha2n4,4124
60
60
  prefect/_internal/schemas/fields.py,sha256=m4LrFNz8rA9uBhMk9VyQT6FIXmV_EVAW92hdXeSvHbY,837
61
61
  prefect/_internal/schemas/serializers.py,sha256=G_RGHfObjisUiRvd29p-zc6W4bwt5rE1OdR6TXNrRhQ,825
62
62
  prefect/_internal/schemas/validators.py,sha256=Y8bHb3EsLJTiHsffg_TPbknj0Nmln8vd6qySLFbfGzY,26546
63
63
  prefect/blocks/__init__.py,sha256=BUfh6gIwA6HEjRyVCAiv0he3M1zfM-oY-JrlBfeWeY8,182
64
64
  prefect/blocks/abstract.py,sha256=YLzCaf3yXv6wFCF5ZqCIHJNwH7fME1rLxC-SijARHzk,16319
65
- prefect/blocks/core.py,sha256=b3cdh-MsEi2BfE8EZ2jLyzf1vPWMmHNp4AboC-vSthc,52165
65
+ prefect/blocks/core.py,sha256=72QN920dMn401ZBx1PJPNBi8q9bDXDnGs2WIf-FvyPg,52639
66
66
  prefect/blocks/fields.py,sha256=1m507VVmkpOnMF_7N-qboRjtw4_ceIuDneX3jZ3Jm54,63
67
67
  prefect/blocks/notifications.py,sha256=_ARWqq0NHFPxaaW27W6VieBVBwAKELeHtAkHXXP3R_g,29076
68
68
  prefect/blocks/redis.py,sha256=GUKYyx2QLtyNvgf5FT_dJxbgQcOzWCja3I23J1-AXhM,5629
@@ -73,16 +73,16 @@ prefect/client/base.py,sha256=2K8UiWzorZNNM4c8c-OiGeZ5i5ViUfZ_Q31oPobbOO0,24956
73
73
  prefect/client/cloud.py,sha256=7iHff1YDABdzBW5BZFlyzmwgCMWUwbgVv2zTNlqW7lw,4132
74
74
  prefect/client/collections.py,sha256=I9EgbTg4Fn57gn8vwP_WdDmgnATbx9gfkm2jjhCORjw,1037
75
75
  prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
76
- prefect/client/orchestration.py,sha256=G3zkz3HTfy9ZMELKAi8HRqvybOhdlOsia2Vt7ElWEPQ,143316
76
+ prefect/client/orchestration.py,sha256=6_q4T9k08jpoYlaBhE0rv0oCJsmd7Epas5i5APNcfBo,146601
77
77
  prefect/client/subscriptions.py,sha256=J9uK9NGHO4VX4Y3NGgBJ4pIG_0cf-dJWPhF3f3PGYL4,3388
78
78
  prefect/client/utilities.py,sha256=89fmza0cRMOayxgXRdO51TKb11TczJ0ByOZmcZVrt44,3286
79
79
  prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
80
- prefect/client/schemas/actions.py,sha256=i0izw0JPdlvAeEC2YEbmskr7kU0-tyzEwEtCKXMPi74,28101
81
- prefect/client/schemas/filters.py,sha256=_Ibx8VDICS0wkqo-M8zlpOyAbkrRw8sfgqyD9_x2Vvc,34881
82
- prefect/client/schemas/objects.py,sha256=PNxOTBwQDQ57703i6ZrV_kxYDSuJSrJ3O_42hDwOliA,53296
83
- prefect/client/schemas/responses.py,sha256=3Y-md6uXCF7X8gcZYvvKqcu5CXqvJfkJyfocHFypp9g,14637
80
+ prefect/client/schemas/actions.py,sha256=LJrioOmj34drliWEMF65_6xZgtv9UxyJgB5ksi1aXhU,28484
81
+ prefect/client/schemas/filters.py,sha256=Pu0wB58_dsNwTeItpQdYII2mwGe0VlLV3ULsuI2PyCg,35648
82
+ prefect/client/schemas/objects.py,sha256=52eJM22Di5C5yuyfbd1mv4j2P6GpAWJlu2b1b8lJmUE,53426
83
+ prefect/client/schemas/responses.py,sha256=J61c8ZqrxfOjKkdf6MLLrRBScsS0tql6Q2SPVr04Ids,14767
84
84
  prefect/client/schemas/schedules.py,sha256=8rpqjOYtknu2-1n5_WD4cOplgu93P3mCyX86B22LfL4,13070
85
- prefect/client/schemas/sorting.py,sha256=EIQ6FUjUWMwk6fn6ckVLQLXOP-GI5kce7ftjUkDFWV0,2490
85
+ prefect/client/schemas/sorting.py,sha256=L-2Mx-igZPtsUoRUguTcG3nIEstMEMPD97NwPM2Ox5s,2579
86
86
  prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  prefect/client/types/flexible_schedule_list.py,sha256=F1VFAXGLM89dJRBLnVsxwAMGLmrRF2i81FirEMpbB5s,368
88
88
  prefect/concurrency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -91,11 +91,17 @@ prefect/concurrency/context.py,sha256=hXt_QDXvj6hidP63k7AnoOUNI1-ZKd6EIrTuopQyzH
91
91
  prefect/concurrency/events.py,sha256=EjZwUbbtP-N-u8rk8nbyMIi-BnkshoLkHRYh913jUWU,1810
92
92
  prefect/concurrency/services.py,sha256=wKW9dJzzZkTcS2Wk4IsNPfMOuXle2qSz50Qk0MxrOJc,3438
93
93
  prefect/concurrency/sync.py,sha256=uGomOknZ_ET_wW0LcuOJBzbcYSNcaQZqH0bh1mOkmu8,4261
94
+ prefect/concurrency/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
+ prefect/concurrency/v1/asyncio.py,sha256=HFbbt5SYLDov1_-btn4oPI-Z92yY7SdwkHtrbYAqOsI,4792
96
+ prefect/concurrency/v1/context.py,sha256=T3dDOqGx9PUSmDuiqKNEYBGiBJDXeyYoOFxZ3P8IPfw,1040
97
+ prefect/concurrency/v1/events.py,sha256=PhW3iV5z-ez97LBHnte4joHMVPYaZJNRJkNXsZlb0LM,1873
98
+ prefect/concurrency/v1/services.py,sha256=5IwRepJ4IMC0y-PmqXiDr5rR4wl3BuHbP6Tg6C3rrQg,4426
99
+ prefect/concurrency/v1/sync.py,sha256=02QYCXjO42laUTQYP8j2Kr9_ul5VsC1eC5btMM2vP8U,2465
94
100
  prefect/deployments/__init__.py,sha256=_wb7NxDKhq11z9MjYsPckmT3o6MRhGLRgCV9TmvYtew,1002
95
101
  prefect/deployments/base.py,sha256=rEMb-AXUuO66a7Qwq0KFUI1L0Xrl_-8z7cgAKaysfwg,16136
96
102
  prefect/deployments/deployments.py,sha256=EvC9qBdvJRc8CHJqRjFTqtzx75SE8bpZOl5C-2eULyA,109
97
- prefect/deployments/flow_runs.py,sha256=eatcBD7pg-aaEqs9JxQQcKN_flf614O4gAvedAlRyNo,6803
98
- prefect/deployments/runner.py,sha256=lNfSyvkElcFglU6pZlsI8ZQTG2KzdsEjrONVNvnbDIs,39514
103
+ prefect/deployments/flow_runs.py,sha256=tH6lpEkgHhQ5Ipr0bhVAjN6AeOoDwY7UKrkbJihJ6D0,6567
104
+ prefect/deployments/runner.py,sha256=JdKOC4EXrtUT39wYiKCuAQiFLq9S9oSpxjPd_V1BzCk,40021
99
105
  prefect/deployments/schedules.py,sha256=KCYA6dOmLAoElHZuoWqdJn4Yno4TtOZtXfPOpTLb1cE,2046
100
106
  prefect/deployments/steps/__init__.py,sha256=Dlz9VqMRyG1Gal8dj8vfGpPr0LyQhZdvcciozkK8WoY,206
101
107
  prefect/deployments/steps/core.py,sha256=5vFf6BSpu992kkaYsvcPpsz-nZxFmayMIDmY9h0Hb8M,6846
@@ -105,11 +111,11 @@ prefect/docker/__init__.py,sha256=jumlacz2HY9l1ee0L9_kE0PFi9NO3l3pWINm9T5N9hs,52
105
111
  prefect/docker/docker_image.py,sha256=Y84_ooCYA9NGl6FElJul9-FaW3teT-eia2SiNtZ1LG8,2999
106
112
  prefect/events/__init__.py,sha256=GtKl2bE--pJduTxelH2xy7SadlLJmmis8WR1EYixhuA,2094
107
113
  prefect/events/actions.py,sha256=4kBV2NwFlC6oXVeMp9Qb2HMNqv1IZ7FcOqeXz1zlRf0,8983
108
- prefect/events/clients.py,sha256=Vu2ygDPrkQ-uEimdATiMpqa8-k3E7Tvy94O8IoA1VmY,20936
114
+ prefect/events/clients.py,sha256=ym5LM1M69Ar3yKhMrASyqbSYnGsrln6UQgqO-ITDYyY,22136
109
115
  prefect/events/filters.py,sha256=IJ1TF-TCC7Wk2nJsbYW-HyAANToDQ6z1MdD63qE-lfw,8186
110
- prefect/events/related.py,sha256=1rUnQ7tg_UtNfSAkKdRo-rD2W93EKKB9xafPxyusFj8,6841
111
- prefect/events/utilities.py,sha256=zVyqNjPRtd6iJxsQfBxylerlEUrSHBk25cI_58WBJHk,2555
112
- prefect/events/worker.py,sha256=JAgPZjvOShWLpym-N4DeUIBQDlaAaqqG_Kkx7BcxAGY,3759
116
+ prefect/events/related.py,sha256=TQPYIPJI_vZlZgZgq3YpsGCmFleiZCMDtn_jMrYBJRg,6537
117
+ prefect/events/utilities.py,sha256=ajIAiNFTN5Bz57IEq-o-i1BJdUi7P2oYH_6GyQjCKs8,2635
118
+ prefect/events/worker.py,sha256=VEz5xgJ9KuPFNH_H08YJ2_v2lYM5ASE-Nx2Yd9DqfZ8,4126
113
119
  prefect/events/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
120
  prefect/events/cli/automations.py,sha256=WIZ3-EcDibjQB5BrMEx7OZ7UfOqP8VjCI1dNh64Nmg0,11425
115
121
  prefect/events/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -135,11 +141,13 @@ prefect/logging/handlers.py,sha256=eIf-0LFH8XUu8Ybnc3LXoocSsa8M8EdAIwbPTVFzZjI,1
135
141
  prefect/logging/highlighters.py,sha256=BpSXOy0n3lFVvlKWa7jC-HetAiClFi9jnQtEq5-rgok,1681
136
142
  prefect/logging/loggers.py,sha256=xmJ4GIuSXyFV4yMMDK-VokMFGbfcX64PLPyzdM_aV9c,11544
137
143
  prefect/logging/logging.yml,sha256=UkEewf0c3_dURI2uCU4RrxkhI5Devoa1s93fl7hilcg,3160
138
- prefect/records/__init__.py,sha256=7q-lwyevfVgb5S7K9frzawmiJmpZ5ET0m5yXIHBYcVA,31
139
- prefect/records/result_store.py,sha256=6Yh9zqqXMWjn0qWSfcjQBSfXCM7jVg9pve5TVsOodDc,1734
140
- prefect/records/store.py,sha256=eQM1p2vZDshXZYg6SkJwL-DP3kUehL_Zgs8xa2-0DZs,224
144
+ prefect/records/__init__.py,sha256=rJJhaJBa0AWu63fJhtB-yHBi64qL6p4svo7F0qvm2sc,30
145
+ prefect/records/base.py,sha256=4XqjGAmh6LUMHQ0SHaurhpmsFObhH49ucrG4nL2qpy0,7624
146
+ prefect/records/filesystem.py,sha256=bqpN8W_cxqIVkUj7iumKlQ6fKH-fyHjxP_nG4Cbb9HI,7037
147
+ prefect/records/memory.py,sha256=yiPefmgYHHGtJ1JHsMyFRys7Gn9L9iaFeZ1Pyg-4HiM,6242
148
+ prefect/records/result_store.py,sha256=5X0gbTVQlPhM8He_H-X2g_tQQn7z21rqxZLl7o8nK60,2144
141
149
  prefect/runner/__init__.py,sha256=7U-vAOXFkzMfRz1q8Uv6Otsvc0OrPYLLP44srwkJ_8s,89
142
- prefect/runner/runner.py,sha256=yrBG5fCO7dCpE-lwPOkx8ToBtfJ3-BKQIUm9eNbjA2g,47388
150
+ prefect/runner/runner.py,sha256=tcLmvrxVmNK3s5r5GEeDrn7VNKvkpmgMZeGl6Dz6Dxg,47403
143
151
  prefect/runner/server.py,sha256=2o5vhrL7Zbn-HBStWhCjqqViex5Ye9GiQ1EW9RSEzdo,10500
144
152
  prefect/runner/storage.py,sha256=OsBa4nWdFxOTiAMNLFpexBdi5K3iuxidQx4YWZwditE,24734
145
153
  prefect/runner/submit.py,sha256=RuyDr-ved9wjYYarXiehY5oJVFf_HE3XKKACNWpxpPc,8131
@@ -154,14 +162,14 @@ prefect/types/__init__.py,sha256=SAHJDtWEGidTKXQACJ38nj6fq8r57Gj0Pwo4Gy7pVWs,223
154
162
  prefect/types/entrypoint.py,sha256=2FF03-wLPgtnqR_bKJDB2BsXXINPdu8ptY9ZYEZnXg8,328
155
163
  prefect/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
164
  prefect/utilities/annotations.py,sha256=bXB43j5Zsq5gaBcJe9qnszBlnNwCTwqSTgcu2OkkRLo,2776
157
- prefect/utilities/asyncutils.py,sha256=gVgCYMEJBy7hZCE-2Mn-mfOo0S5zViYeT_SNzOp_HwE,19889
158
- prefect/utilities/callables.py,sha256=agTY0XU0XWifH5SBsWLflAhNvIxOfc8Z0RRRAbCxrxk,25020
165
+ prefect/utilities/asyncutils.py,sha256=K-EHsaADufV-9IvrGNYDEzw8XBhzWT3tKJnkaqBHWPM,19814
166
+ prefect/utilities/callables.py,sha256=2M3TE3EW8eH3pv7b0phTQOI2ME5zm-ZgwHOzSgy7jQg,24930
159
167
  prefect/utilities/collections.py,sha256=pPa_SZZq80cja6l99b3TV7hRQy366WnuWpOW_FnutMI,17259
160
168
  prefect/utilities/compat.py,sha256=mNQZDnzyKaOqy-OV-DnmH_dc7CNF5nQgW_EsA4xMr7g,906
161
169
  prefect/utilities/context.py,sha256=BThuUW94-IYgFYTeMIM9KMo8ShT3oiI7w5ajZHzU1j0,1377
162
170
  prefect/utilities/dispatch.py,sha256=c8G-gBo7hZlyoD7my9nO50Rzy8Retk-np5WGq9_E2AM,5856
163
171
  prefect/utilities/dockerutils.py,sha256=kRozGQ7JO6Uxl-ljWtDryzxhf96rHL78aHYDh255Em4,20324
164
- prefect/utilities/engine.py,sha256=KNr6VVPL_EBxMAc06bAV4yHpF4lkaZKndXG6BodW3T0,31659
172
+ prefect/utilities/engine.py,sha256=50A0MITbScR6Xc3LPHMBO5uXn8yOdQoMUm5c5cgNH4A,31557
165
173
  prefect/utilities/filesystem.py,sha256=frAyy6qOeYa7c-jVbEUGZQEe6J1yF8I_SvUepPd59gI,4415
166
174
  prefect/utilities/hashing.py,sha256=EOwZLmoIZImuSTxAvVqInabxJ-4RpEfYeg9e2EDQF8o,1752
167
175
  prefect/utilities/importtools.py,sha256=Wo4Tj9hSf7gghP83MxW3w9FK3jkaGKPEobDYjabPqT0,19389
@@ -187,8 +195,8 @@ prefect/workers/cloud.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
187
195
  prefect/workers/process.py,sha256=t1f1EYRoPL5B25KbLgUX2b5q-lCCAXb2Gpf6T2M9WfY,19822
188
196
  prefect/workers/server.py,sha256=lgh2FfSuaNU7b6HPxSFm8JtKvAvHsZGkiOo4y4tW1Cw,2022
189
197
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
190
- prefect_client-3.0.0rc17.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
191
- prefect_client-3.0.0rc17.dist-info/METADATA,sha256=yn_q6Z_q8Sn99Gu_3AqFUuQmFaSB21H3AK7mbIadTRs,7404
192
- prefect_client-3.0.0rc17.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
193
- prefect_client-3.0.0rc17.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
194
- prefect_client-3.0.0rc17.dist-info/RECORD,,
198
+ prefect_client-3.0.0rc19.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
199
+ prefect_client-3.0.0rc19.dist-info/METADATA,sha256=EgAAXWZqvGhkNX_nbVbOG-Zv3SjI26WK1gmvSfNWHVI,7354
200
+ prefect_client-3.0.0rc19.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
201
+ prefect_client-3.0.0rc19.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
202
+ prefect_client-3.0.0rc19.dist-info/RECORD,,
prefect/records/store.py DELETED
@@ -1,9 +0,0 @@
1
- class RecordStore:
2
- def read(self, key: str):
3
- raise NotImplementedError
4
-
5
- def write(self, key: str, value: dict):
6
- raise NotImplementedError
7
-
8
- def exists(self, key: str) -> bool:
9
- return False