prefect 3.6.7.dev3__py3-none-any.whl → 3.6.8.dev3__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 (35) hide show
  1. prefect/__init__.py +8 -5
  2. prefect/_build_info.py +3 -3
  3. prefect/_experimental/bundles/__init__.py +8 -4
  4. prefect/blocks/notifications.py +1 -1
  5. prefect/cache_policies.py +12 -0
  6. prefect/cli/server.py +18 -2
  7. prefect/client/orchestration/_deployments/client.py +12 -0
  8. prefect/events/clients.py +24 -12
  9. prefect/flow_runs.py +31 -10
  10. prefect/logging/logging.yml +2 -0
  11. prefect/main.py +12 -6
  12. prefect/runner/storage.py +30 -1
  13. prefect/serializers.py +17 -1
  14. prefect/server/api/background_workers.py +16 -3
  15. prefect/server/events/schemas/events.py +7 -0
  16. prefect/server/events/services/triggers.py +17 -21
  17. prefect/server/models/events.py +67 -0
  18. prefect/server/models/work_queues.py +74 -11
  19. prefect/server/models/workers.py +107 -10
  20. prefect/server/orchestration/core_policy.py +111 -7
  21. prefect/server/schemas/responses.py +0 -8
  22. prefect/server/services/base.py +1 -210
  23. prefect/server/services/perpetual_services.py +1 -1
  24. prefect/server/services/scheduler.py +276 -326
  25. prefect/server/services/task_run_recorder.py +28 -4
  26. prefect/tasks.py +26 -18
  27. prefect/testing/utilities.py +22 -3
  28. prefect/utilities/schema_tools/validation.py +1 -1
  29. prefect/utilities/urls.py +7 -3
  30. prefect/workers/base.py +0 -8
  31. {prefect-3.6.7.dev3.dist-info → prefect-3.6.8.dev3.dist-info}/METADATA +4 -3
  32. {prefect-3.6.7.dev3.dist-info → prefect-3.6.8.dev3.dist-info}/RECORD +35 -35
  33. {prefect-3.6.7.dev3.dist-info → prefect-3.6.8.dev3.dist-info}/WHEEL +0 -0
  34. {prefect-3.6.7.dev3.dist-info → prefect-3.6.8.dev3.dist-info}/entry_points.txt +0 -0
  35. {prefect-3.6.7.dev3.dist-info → prefect-3.6.8.dev3.dist-info}/licenses/LICENSE +0 -0
@@ -43,6 +43,8 @@ if TYPE_CHECKING:
43
43
 
44
44
  logger: "logging.Logger" = get_logger(__name__)
45
45
 
46
+ DEFAULT_PERSIST_MAX_RETRIES = 5
47
+
46
48
 
47
49
  @db_injector
48
50
  async def _insert_task_run_states(
@@ -300,7 +302,9 @@ class RetryableEvent(BaseModel):
300
302
 
301
303
  @asynccontextmanager
302
304
  async def consumer(
303
- write_batch_size: int, flush_every: int
305
+ write_batch_size: int,
306
+ flush_every: int,
307
+ max_persist_retries: int = DEFAULT_PERSIST_MAX_RETRIES,
304
308
  ) -> AsyncGenerator[MessageHandler, None]:
305
309
  logger.info(
306
310
  f"Creating TaskRunRecorder consumer with batch size {write_batch_size} and flush every {flush_every} seconds"
@@ -323,8 +327,25 @@ async def consumer(
323
327
  try:
324
328
  await handle_task_run_events([batch.event for batch in batch])
325
329
  except Exception:
326
- logger.error(f"Error flushing {len(batch)} events", exc_info=True)
327
- raise
330
+ dropped = 0
331
+ to_retry = 0
332
+ for item in batch:
333
+ item.persist_attempts += 1
334
+ if item.persist_attempts <= max_persist_retries:
335
+ to_retry += 1
336
+ await queue.put(item)
337
+ else:
338
+ dropped += 1
339
+ logger.error(
340
+ f"Dropping event {item.event.id} after {item.persist_attempts} failed attempts"
341
+ )
342
+ logger.error(
343
+ f"Error flushing {len(batch)} events ({to_retry} to retry, {dropped} dropped)",
344
+ exc_info=True,
345
+ )
346
+
347
+ if dropped > 0:
348
+ raise
328
349
 
329
350
  async def flush_periodically():
330
351
  try:
@@ -396,7 +417,9 @@ class TaskRunRecorder(RunInEphemeralServers, Service):
396
417
  def started_event(self, value: asyncio.Event) -> None:
397
418
  self._started_event = value
398
419
 
399
- async def start(self) -> NoReturn:
420
+ async def start(
421
+ self, max_persist_retries: int = DEFAULT_PERSIST_MAX_RETRIES
422
+ ) -> NoReturn:
400
423
  assert self.consumer_task is None, "TaskRunRecorder already started"
401
424
  self.consumer: Consumer = create_consumer(
402
425
  "events",
@@ -408,6 +431,7 @@ class TaskRunRecorder(RunInEphemeralServers, Service):
408
431
  async with consumer(
409
432
  write_batch_size=self.service_settings().batch_size,
410
433
  flush_every=int(self.service_settings().flush_interval),
434
+ max_persist_retries=max_persist_retries,
411
435
  ) as handler:
412
436
  self.consumer_task = asyncio.create_task(self.consumer.run(handler))
413
437
  self.metrics_task = asyncio.create_task(log_metrics_periodically())
prefect/tasks.py CHANGED
@@ -456,6 +456,14 @@ class Task(Generic[P, R]):
456
456
  update_wrapper(self, fn)
457
457
  self.fn = fn
458
458
 
459
+ # Capture source code for cache key computation
460
+ # This is stored on the task so it survives cloudpickle serialization
461
+ # to remote environments where the source file is not available
462
+ try:
463
+ self.source_code: str | None = inspect.getsource(fn)
464
+ except (TypeError, OSError):
465
+ self.source_code = None
466
+
459
467
  # the task is considered async if its function is async or an async
460
468
  # generator
461
469
  self.isasync: bool = inspect.iscoroutinefunction(
@@ -1088,17 +1096,17 @@ class Task(Generic[P, R]):
1088
1096
  # These preserve full parameter type checking when users call tasks normally
1089
1097
  @overload
1090
1098
  def __call__(
1091
- self: "Task[P, Coroutine[Any, Any, R]]",
1099
+ self: "Task[P, Coroutine[Any, Any, T]]",
1092
1100
  *args: P.args,
1093
1101
  **kwargs: P.kwargs,
1094
- ) -> Coroutine[Any, Any, R]: ...
1102
+ ) -> Coroutine[Any, Any, T]: ...
1095
1103
 
1096
1104
  @overload
1097
1105
  def __call__(
1098
- self: "Task[P, R]",
1106
+ self: "Task[P, T]",
1099
1107
  *args: P.args,
1100
1108
  **kwargs: P.kwargs,
1101
- ) -> R: ...
1109
+ ) -> T: ...
1102
1110
 
1103
1111
  @overload
1104
1112
  def __call__(
@@ -1116,65 +1124,65 @@ class Task(Generic[P, R]):
1116
1124
  # are advanced use cases.
1117
1125
  @overload
1118
1126
  def __call__(
1119
- self: "Task[..., Coroutine[Any, Any, R]]",
1127
+ self: "Task[..., Coroutine[Any, Any, T]]",
1120
1128
  *args: Any,
1121
1129
  return_state: Literal[False],
1122
1130
  wait_for: Optional[OneOrManyFutureOrResult[Any]] = None,
1123
1131
  **kwargs: Any,
1124
- ) -> Coroutine[Any, Any, R]: ...
1132
+ ) -> Coroutine[Any, Any, T]: ...
1125
1133
 
1126
1134
  @overload
1127
1135
  def __call__(
1128
- self: "Task[..., Coroutine[Any, Any, R]]",
1136
+ self: "Task[..., Coroutine[Any, Any, T]]",
1129
1137
  *args: Any,
1130
1138
  return_state: Literal[True],
1131
1139
  wait_for: Optional[OneOrManyFutureOrResult[Any]] = None,
1132
1140
  **kwargs: Any,
1133
- ) -> State[R]: ...
1141
+ ) -> State[T]: ...
1134
1142
 
1135
1143
  @overload
1136
1144
  def __call__(
1137
- self: "Task[..., R]",
1145
+ self: "Task[..., T]",
1138
1146
  *args: Any,
1139
1147
  return_state: Literal[False],
1140
1148
  wait_for: Optional[OneOrManyFutureOrResult[Any]] = None,
1141
1149
  **kwargs: Any,
1142
- ) -> R: ...
1150
+ ) -> T: ...
1143
1151
 
1144
1152
  @overload
1145
1153
  def __call__(
1146
- self: "Task[..., R]",
1154
+ self: "Task[..., T]",
1147
1155
  *args: Any,
1148
1156
  return_state: Literal[True],
1149
1157
  wait_for: Optional[OneOrManyFutureOrResult[Any]] = None,
1150
1158
  **kwargs: Any,
1151
- ) -> State[R]: ...
1159
+ ) -> State[T]: ...
1152
1160
 
1153
1161
  @overload
1154
1162
  def __call__(
1155
- self: "Task[..., Coroutine[Any, Any, R]]",
1163
+ self: "Task[..., Coroutine[Any, Any, T]]",
1156
1164
  *args: Any,
1157
1165
  wait_for: OneOrManyFutureOrResult[Any],
1158
1166
  return_state: Literal[False] = False,
1159
1167
  **kwargs: Any,
1160
- ) -> Coroutine[Any, Any, R]: ...
1168
+ ) -> Coroutine[Any, Any, T]: ...
1161
1169
 
1162
1170
  @overload
1163
1171
  def __call__(
1164
- self: "Task[..., R]",
1172
+ self: "Task[..., T]",
1165
1173
  *args: Any,
1166
1174
  wait_for: OneOrManyFutureOrResult[Any],
1167
1175
  return_state: Literal[False] = False,
1168
1176
  **kwargs: Any,
1169
- ) -> R: ...
1177
+ ) -> T: ...
1170
1178
 
1171
1179
  def __call__(
1172
- self: "Union[Task[..., R], Task[..., NoReturn]]",
1180
+ self: "Union[Task[..., T], Task[..., NoReturn]]",
1173
1181
  *args: Any,
1174
1182
  return_state: bool = False,
1175
1183
  wait_for: Optional[OneOrManyFutureOrResult[Any]] = None,
1176
1184
  **kwargs: Any,
1177
- ) -> Union[R, State[R], None]:
1185
+ ) -> Union[T, State[T], None]:
1178
1186
  """
1179
1187
  Run the task and return the result. If `return_state` is True returns
1180
1188
  the result is wrapped in a Prefect State which provides error handling.
@@ -5,6 +5,7 @@ Internal utilities for tests.
5
5
  from __future__ import annotations
6
6
 
7
7
  import atexit
8
+ import inspect
8
9
  import shutil
9
10
  import warnings
10
11
  from contextlib import ExitStack, contextmanager
@@ -31,6 +32,7 @@ from prefect.results import (
31
32
  from prefect.serializers import Serializer
32
33
  from prefect.server.api.server import SubprocessASGIServer
33
34
  from prefect.states import State
35
+ from prefect.utilities.asyncutils import run_coro_as_sync
34
36
 
35
37
  if TYPE_CHECKING:
36
38
  from prefect.client.orchestration import PrefectClient
@@ -172,9 +174,26 @@ def prefect_test_harness(server_startup_timeout: int | None = 30):
172
174
  )
173
175
  yield
174
176
  # drain the logs before stopping the server to avoid connection errors on shutdown
175
- APILogWorker.instance().drain()
176
- # drain events to prevent stale events from leaking into subsequent test harnesses
177
- EventsWorker.drain_all()
177
+ # When running in an async context, drain() and drain_all() return awaitables.
178
+ # We use a wrapper coroutine passed to run_coro_as_sync to ensure the awaitable
179
+ # is created and awaited on the same loop, avoiding cross-loop issues (issue #19762)
180
+
181
+ async def drain_workers():
182
+ try:
183
+ result = APILogWorker.instance().drain()
184
+ if inspect.isawaitable(result):
185
+ await result
186
+ except RuntimeError:
187
+ # Worker may not have been started
188
+ pass
189
+
190
+ # drain events to prevent stale events from leaking into subsequent test harnesses
191
+ result = EventsWorker.drain_all()
192
+ if inspect.isawaitable(result):
193
+ await result
194
+
195
+ run_coro_as_sync(drain_workers())
196
+
178
197
  test_server.stop()
179
198
 
180
199
 
@@ -257,7 +257,7 @@ def preprocess_schema(
257
257
 
258
258
  if "definitions" in schema: # Also process definitions for reused models
259
259
  definitions = cast(dict[str, Any], schema["definitions"])
260
- for definition in definitions.values():
260
+ for definition in list(definitions.values()):
261
261
  if "properties" in definition:
262
262
  required_fields = definition.get("required", [])
263
263
  process_properties(
prefect/utilities/urls.py CHANGED
@@ -4,7 +4,7 @@ import socket
4
4
  import urllib.parse
5
5
  from logging import Logger
6
6
  from string import Formatter
7
- from typing import TYPE_CHECKING, Any, Literal, Optional, Union
7
+ from typing import TYPE_CHECKING, Any, Literal, Optional, Union, cast
8
8
  from urllib.parse import urlparse
9
9
  from uuid import UUID
10
10
 
@@ -251,9 +251,13 @@ def url_for(
251
251
  )
252
252
  assert url_format is not None
253
253
 
254
- if isinstance(obj, ReceivedEvent):
254
+ # Use duck-typing to handle both client-side and server-side ReceivedEvent
255
+ if name == "received-event" and hasattr(obj, "occurred"):
256
+ # Cast to ReceivedEvent for type checking - we've verified it has the
257
+ # required attributes via hasattr and name check above
258
+ event = cast(ReceivedEvent, obj)
255
259
  url = url_format.format(
256
- occurred=obj.occurred.strftime("%Y-%m-%d"), obj_id=obj_id
260
+ occurred=event.occurred.strftime("%Y-%m-%d"), obj_id=obj_id
257
261
  )
258
262
  else:
259
263
  obj_keys = [
prefect/workers/base.py CHANGED
@@ -536,7 +536,6 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
536
536
  self._limit = limit
537
537
  self._limiter: Optional[anyio.CapacityLimiter] = None
538
538
  self._submitting_flow_run_ids: set[UUID] = set()
539
- self._cancelling_flow_run_ids: set[UUID] = set()
540
539
  self._scheduled_task_scopes: set[anyio.CancelScope] = set()
541
540
  self._worker_metadata_sent = False
542
541
 
@@ -1539,13 +1538,6 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
1539
1538
  f"Flow run '{flow_run.id}' was deleted before it could be marked as cancelled"
1540
1539
  )
1541
1540
 
1542
- # Do not remove the flow run from the cancelling set immediately because
1543
- # the API caches responses for the `read_flow_runs` and we do not want to
1544
- # duplicate cancellations.
1545
- await self._schedule_task(
1546
- 60 * 10, self._cancelling_flow_run_ids.remove, flow_run.id
1547
- )
1548
-
1549
1541
  async def _set_work_pool_template(
1550
1542
  self, work_pool: "WorkPool", job_template: dict[str, Any]
1551
1543
  ):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect
3
- Version: 3.6.7.dev3
3
+ Version: 3.6.8.dev3
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -70,9 +70,8 @@ Requires-Dist: semver>=3.0.4
70
70
  Requires-Dist: sniffio<2.0.0,>=1.3.0
71
71
  Requires-Dist: sqlalchemy[asyncio]<3.0.0,>=2.0
72
72
  Requires-Dist: toml>=0.10.0
73
- Requires-Dist: typer<0.20.0,>=0.16.0
73
+ Requires-Dist: typer<0.21.0,>=0.16.0
74
74
  Requires-Dist: typing-extensions<5.0.0,>=4.10.0
75
- Requires-Dist: uv>=0.6.0
76
75
  Requires-Dist: uvicorn!=0.29.0,>=0.14.0
77
76
  Requires-Dist: websockets<16.0,>=15.0.1
78
77
  Requires-Dist: whenever<0.10.0,>=0.7.3; python_version >= '3.13'
@@ -82,6 +81,8 @@ Provides-Extra: azure
82
81
  Requires-Dist: prefect-azure>=0.4.0; extra == 'azure'
83
82
  Provides-Extra: bitbucket
84
83
  Requires-Dist: prefect-bitbucket>=0.3.0; extra == 'bitbucket'
84
+ Provides-Extra: bundles
85
+ Requires-Dist: uv>=0.6.0; extra == 'bundles'
85
86
  Provides-Extra: dask
86
87
  Requires-Dist: prefect-dask>=0.3.0; extra == 'dask'
87
88
  Provides-Extra: databricks
@@ -1,8 +1,8 @@
1
1
  prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
2
2
  prefect/AGENTS.md,sha256=qmCZAuKIF9jQyp5TrW_T8bsM_97-QaiCoQp71A_b2Lg,1008
3
- prefect/__init__.py,sha256=rHfKEwbnQ39HIXDNPCF64nPoR0mjRvd9SCNQTdqlysQ,5339
3
+ prefect/__init__.py,sha256=-cFYePxZEyhJ4zSCwCu9QhTgvA6yRoUYMlAluL8voyE,5441
4
4
  prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
5
- prefect/_build_info.py,sha256=4z_lbFnuvAAi311cZYJVY1UYoAtZJMdkRdOPi4wVEiA,185
5
+ prefect/_build_info.py,sha256=pjqJwa2UD5QkleC2y5OsltOZypKLN4qhW-336oKE56Q,185
6
6
  prefect/_result_records.py,sha256=S6QmsODkehGVSzbMm6ig022PYbI6gNKz671p_8kBYx4,7789
7
7
  prefect/_states.py,sha256=_BIcTNbnExppu4sRIbeOHxdt5DeaIUAa9qKE8sNIkQ0,9775
8
8
  prefect/_versioning.py,sha256=YqR5cxXrY4P6LM1Pmhd8iMo7v_G2KJpGNdsf4EvDFQ0,14132
@@ -10,31 +10,31 @@ prefect/_waiters.py,sha256=Ia2ITaXdHzevtyWIgJoOg95lrEXQqNEOquHvw3T33UQ,9026
10
10
  prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
11
11
  prefect/artifacts.py,sha256=ZdMLJeJGK82hibtRzbsVa-g95dMa0D2UP1LiESoXmf4,23951
12
12
  prefect/automations.py,sha256=ZzPxn2tINdlXTQo805V4rIlbXuNWxd7cdb3gTJxZIeY,12567
13
- prefect/cache_policies.py,sha256=jH1aDW6vItTcsEytuTCrNYyjbq87IQPwdOgF0yxiUts,12749
13
+ prefect/cache_policies.py,sha256=K0cymkMbEQBuwY1fSehefllN4Y4RblpNzYsh-LtjdXM,13156
14
14
  prefect/context.py,sha256=zA5j-7HJIdfOft92NW8dxkvgqnKkC-MhhOHfAmM5DoE,34706
15
15
  prefect/engine.py,sha256=uB5JN4l045i5JTlRQNT1x7MwlSiGQ5Bop2Q6jHHOgxY,3699
16
16
  prefect/exceptions.py,sha256=E67przt2JKW2hzXQGC2XMIMxM8PNtnDunwhW55VUsM8,12598
17
17
  prefect/filesystems.py,sha256=PrDsWxT5mfmJSs3ib3pNaKkjEEBExY2kGrhh5fPWFIM,22393
18
18
  prefect/flow_engine.py,sha256=bWGHTJ3WZs7taLAzbDvkr8Gvg_NgB7riHmjPtstj8xA,61774
19
- prefect/flow_runs.py,sha256=PpKAL3o4uHpWtLXIprl6c1HnKn9DSAA6Jgr9MmMXjck,17491
19
+ prefect/flow_runs.py,sha256=gZBtxwSk2k-bUXUvb_Eipg00F2hEm5_batIse85ngXE,18495
20
20
  prefect/flows.py,sha256=9lacxyuc2K16KcwcauOdsggt3f21NZDjJ4g8F9AxVI0,128521
21
21
  prefect/futures.py,sha256=HwxR17RRuBHT_r5c7XuhmuYG8NnreFCUEuO_FpRBxPw,25670
22
- prefect/main.py,sha256=TjJIUtFPRV4WupjnVDQaHKGUyz-qaQgu7eEuddApKhc,2484
22
+ prefect/main.py,sha256=swco0ugs87OPf0nVFtHSmFUAyyMkNFUKC_6Gncp-FFU,2547
23
23
  prefect/plugins.py,sha256=6bPNLs5Cab1VqwFAlfwJi7Wj3ASx0ZLdT5_-s8_Blyo,2510
24
24
  prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  prefect/results.py,sha256=uRV1kJ1I8qBTKJLwppWW4SNXJpAcoWulmIiaGRjH4Vs,34597
26
26
  prefect/schedules.py,sha256=dhq4OhImRvcmtxF7UH1m8RbwYdHT5RQsp_FrxVXfODE,7289
27
- prefect/serializers.py,sha256=MICSdT_1iL2SSq9cYatJ8T7wqPS97uyw9ew5Fh86-NM,9789
27
+ prefect/serializers.py,sha256=giUdeNuzAx2AXVYITsQ58hkkyR4-2XGVMsgCrlfWCkw,10419
28
28
  prefect/states.py,sha256=u469dXMeExPARMkvleymn_U8rhipkiHCw4mZLVrRFuY,29689
29
29
  prefect/task_engine.py,sha256=OtcVWHcp45TLLraz-gK5a6exlYQhbSxLSSHpdRM9NFY,70691
30
30
  prefect/task_runners.py,sha256=UlDBdwIB0YBcTG6rMf3ICnGUOZt9WNscaXt2QonigBM,34524
31
31
  prefect/task_runs.py,sha256=2wPYMCJet_9PoT8rbacvwt7B7noGR3ksHEP1xXUiXpU,10093
32
32
  prefect/task_worker.py,sha256=RifZ3bOl6ppoYPiOAd4TQp2_GEw9eDQoW483rq1q52Q,20805
33
- prefect/tasks.py,sha256=cKtvvq-Uj-9WUd2_3d4lBdwXcjs0SeauAFdpOC-RlCk,82741
33
+ prefect/tasks.py,sha256=Twbmri_cw3Uq2FVwXzpcaytHFhZPtBWrYpisxD1TPNs,83099
34
34
  prefect/transactions.py,sha256=JzRHA_B6Oy-XwmMqZUeiBLOvaf-aCEAdxPEQsYI2opM,26819
35
35
  prefect/variables.py,sha256=L1WrzyGF47GMACI8Jji8nlCcAAl1wtLhJmhf4qV0-CQ,9526
36
36
  prefect/_experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- prefect/_experimental/bundles/__init__.py,sha256=_VeRfc6FTXl5_UxDuK9SMoafGJKn1UGVOeDOOHkqbfQ,18675
37
+ prefect/_experimental/bundles/__init__.py,sha256=2iY9BYWCpHcTzkeekYSTGXF1movBkVZuZVSma56p-2s,18821
38
38
  prefect/_experimental/bundles/execute.py,sha256=1_v3tGFQlQEj9eOLsGG5EHtNcwyxmOU-LYYoK1LP9pA,635
39
39
  prefect/_experimental/plugins/__init__.py,sha256=GwWKon2NkCfkjGFIE6jdVSS4kIfEng3Hy_Vgr4-wd0o,4520
40
40
  prefect/_experimental/plugins/apply.py,sha256=NeO1FQKw9YkBwaTldCiKQmMHDwatimdoyO7nqVPelG8,1633
@@ -90,7 +90,7 @@ prefect/blocks/__init__.py,sha256=D0hB72qMfgqnBB2EMZRxUxlX9yLfkab5zDChOwJZmkY,22
90
90
  prefect/blocks/abstract.py,sha256=mpOAWopSR_RrzdxeurBTXVSKisP8ne-k8LYos-tp7go,17021
91
91
  prefect/blocks/core.py,sha256=V7a00ewzL37wPkSOrAtdty0gxpVxtqTt3RYOQUfiW9I,67055
92
92
  prefect/blocks/fields.py,sha256=1m507VVmkpOnMF_7N-qboRjtw4_ceIuDneX3jZ3Jm54,63
93
- prefect/blocks/notifications.py,sha256=e7BhLbJFuhmp0-99xgjcICgd6a_hbN3CovEKfcWt2Jk,37045
93
+ prefect/blocks/notifications.py,sha256=3Rbicq2IGBLM9B0nfHOLeEs9GXuVWW1VyOjmli6ieFs,37042
94
94
  prefect/blocks/redis.py,sha256=fn6nR_ZoFfJqO_sWc-4WUY3D2No7RSXUntgZtRFNXYo,7682
95
95
  prefect/blocks/system.py,sha256=9OE9gs0cH0bH6DV5dvf4oprthWBKA6Zh56aSnn2pIU4,2325
96
96
  prefect/blocks/webhook.py,sha256=xylFigbDOsn-YzxahkTzNqYwrIA7wwS6204P0goLY3A,2907
@@ -114,7 +114,7 @@ prefect/cli/flow_runs_watching.py,sha256=nOeLoTn1a-jzR4A1PTjC6reaFO8Qds3bQhhQ40x
114
114
  prefect/cli/global_concurrency_limit.py,sha256=AiFBv2tqrs4QI5mASDa-TGodXSIpvpuRbwcJek8nmr0,14080
115
115
  prefect/cli/profile.py,sha256=v1nc2oaWFAwlZNv3yKjcY3qMhencgHkN4-QF-AEQBsA,14712
116
116
  prefect/cli/root.py,sha256=OabL0waTT6CTRBn_5x1LaVIfgbU7EO1fPHK8zK77Cec,6713
117
- prefect/cli/server.py,sha256=_CJQlHGy8eYHkj58xpd1eRnVtVS7CiAPJqbymREncvs,27460
117
+ prefect/cli/server.py,sha256=ODVJ3U90w5MOT4mHQcKoSzGm4WBfA9-k3qBp4-dxZGU,28107
118
118
  prefect/cli/shell.py,sha256=54J-ba5L4GGTsI--iDaxdPQwWeQAksia7OjnFcNZ2eU,9834
119
119
  prefect/cli/task.py,sha256=WSaAJx0Jd48wThsuVsjpHGBxDkV2GP6Khc_V-Mom5OI,3651
120
120
  prefect/cli/task_run.py,sha256=RPTw0vE3jfD_HwG0QzPUivNAAAog1x2zVS1MU7m3hrY,8626
@@ -171,7 +171,7 @@ prefect/client/orchestration/_blocks_types/client.py,sha256=alA4xD-yp3mycAbzMyRu
171
171
  prefect/client/orchestration/_concurrency_limits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  prefect/client/orchestration/_concurrency_limits/client.py,sha256=qDuLgVspbVnAHjvNvAxnSR4pIz1BEb0GJZqjfPgKbMg,29108
173
173
  prefect/client/orchestration/_deployments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
- prefect/client/orchestration/_deployments/client.py,sha256=oOduSTzkGnqcE2l_Efv94YjaI5RMogVYJT_NjtZor54,48988
174
+ prefect/client/orchestration/_deployments/client.py,sha256=tG0NQbRE2YsCuHOyS5dzdfe3bw3d_h9OFyR4rXi-6iQ,49482
175
175
  prefect/client/orchestration/_events/__init__.py,sha256=bUQibAHrBULONG0qwjvB_Z6egFAhqM5iaL2Untltc1U,133
176
176
  prefect/client/orchestration/_events/client.py,sha256=CZNYwJ_47VZtbbIjrB9ZDdA2kVtoRqwzWS0XYPhlHbI,2756
177
177
  prefect/client/orchestration/_flow_runs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -235,7 +235,7 @@ prefect/docker/__init__.py,sha256=z6wdc6UFfiBG2jb9Jk64uCWVM04JKVWeVyDWwuuon8M,52
235
235
  prefect/docker/docker_image.py,sha256=bR_pEq5-FDxlwTj8CP_7nwZ_MiGK6KxIi8v7DRjy1Kg,3138
236
236
  prefect/events/__init__.py,sha256=kBeikKnDbUpVGuBJAGGCI8Jj3qaZDleJ2eZddLRuakc,2162
237
237
  prefect/events/actions.py,sha256=utqGqoFgmtm-3pQX9xqn5xAn4PIv6qvdv0AA6hsjR80,9477
238
- prefect/events/clients.py,sha256=pvCbvPcehDhaFEJfeu1DzUP6RhBhacKU7L5Z4XPSvIE,25132
238
+ prefect/events/clients.py,sha256=Dnf3-iqHBkinVjvQFY0Nn2syp_Ks4lRkvdgdWLwQ-34,25528
239
239
  prefect/events/filters.py,sha256=HSCGFaTvmi8wwF6S0a44Es0GVR2ItGeJ0PfzRDfqsMY,9195
240
240
  prefect/events/related.py,sha256=CTeexYUmmA93V4gsR33GIFmw-SS-X_ouOpRg-oeq-BU,6672
241
241
  prefect/events/subscribers.py,sha256=eR5VvUmsM33-kgM5h4vjJX8N1k2eUd82qdyuRsSABJ8,6699
@@ -271,12 +271,12 @@ prefect/logging/formatters.py,sha256=Sum42BmYZ7mns64jSOy4OA_K8KudEZjeG2h7SZcY9mA
271
271
  prefect/logging/handlers.py,sha256=-HyJ3J4zjChs9VHrWdK1E6d0xBS4Z3aY0vugBfJrMyY,13547
272
272
  prefect/logging/highlighters.py,sha256=BCf_LNhFInIfGPqwuu8YVrGa4wVxNc4YXo2pYgftpg4,1811
273
273
  prefect/logging/loggers.py,sha256=_Uaw35C7YrjMQuHHf06ENoyZKRDRwgxOc-D-vE7qi8M,13429
274
- prefect/logging/logging.yml,sha256=G5hFJ57Vawz40_w8tDdhqq00dp103OvVDVmWrSQeQcQ,3285
274
+ prefect/logging/logging.yml,sha256=mfllYe1s9AVVH246a1M-pg-6aE0twHcGm4CyxIJXL6c,3343
275
275
  prefect/runner/__init__.py,sha256=BSvG8xNEBC6fHBvkR0owIXGOYgfCPMADB-pvXeGcWJs,49
276
276
  prefect/runner/_observers.py,sha256=yYABVQXx_HJze1n96W0zaD0GZ2sc1xekd5qQmdQ9saY,7747
277
277
  prefect/runner/runner.py,sha256=8N3NAxS51jPAklUYsmJ6TMC7D37wQM5h3VgBMnxj1S8,63556
278
278
  prefect/runner/server.py,sha256=YqvQjlxZZHyhSsqyaLvOy2NwTDg1hLSZB2PK3t8FJUg,3636
279
- prefect/runner/storage.py,sha256=rdH7IdfSt2yuBoNVSJ0afw5GC2x8z2Wax9A22N9HkqA,33647
279
+ prefect/runner/storage.py,sha256=VRFJz6seNtIEGKlU4EfV1wCtKGZ70FEMPgHRnqfWavE,34933
280
280
  prefect/runtime/__init__.py,sha256=JswiTlYRup2zXOYu8AqJ7czKtgcw9Kxo0tTbS6aWCqY,407
281
281
  prefect/runtime/deployment.py,sha256=jYD-jkbb1dAl0wQuiY5mulVTqAEnF4xE3D5Iard6yms,5552
282
282
  prefect/runtime/flow_run.py,sha256=V7GkeGff4tiFpDUz1UqN20FoMCxFDBu6eZFrfPlcZ28,10722
@@ -290,7 +290,7 @@ prefect/server/api/__init__.py,sha256=SpRTXHC6ApqR4_Y3wNHM7TvvH9FZ8N3tH-RZIgmubg
290
290
  prefect/server/api/admin.py,sha256=nINYSrux7XPAV4MMDQUts3X2dddrc3mJtd3iPl5N-jI,2644
291
291
  prefect/server/api/artifacts.py,sha256=B19bxxnADiVTo0XtzvsbAHHtsJwr7S1IunjGl-qsSd4,7314
292
292
  prefect/server/api/automations.py,sha256=KlQuhEOOKkxAI6f5aZedCKMELi99MdknulIleRP-JVE,8285
293
- prefect/server/api/background_workers.py,sha256=gsozQm3KEGIuc_q9_W35wmOJVns_xGIpUbok6q-gQFI,2259
293
+ prefect/server/api/background_workers.py,sha256=02hwtFwWjcKK4U2QQMSCgoOyQ2CyrHYMVDbbajJcUzQ,2884
294
294
  prefect/server/api/block_capabilities.py,sha256=0x1vtC2CtSRVcCWydgNbylmfv_LnJHIoPnt7hRiJkN4,828
295
295
  prefect/server/api/block_documents.py,sha256=Hj-J10XMnfJGa2-AbJfZHun-iZrUwzxG8h7cXGfBXjg,5838
296
296
  prefect/server/api/block_schemas.py,sha256=H9kxnKPlTvz62SMcX1ssHnQ8KACU2728ebCtSp2iLcs,5508
@@ -577,13 +577,13 @@ prefect/server/events/ordering/db.py,sha256=5yf1Hk1qz4GsKPBG95YsGn2r5UEOG0hhJxld
577
577
  prefect/server/events/ordering/memory.py,sha256=il-LWxYFEVpj-HgwvIJL_8MgpO4IVk5g1dOLLg8Fd08,12601
578
578
  prefect/server/events/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
579
579
  prefect/server/events/schemas/automations.py,sha256=0oEbdn4oRuHKMiqVaeWJdhDcDpiKmSqvVJvx_hSOFNU,27249
580
- prefect/server/events/schemas/events.py,sha256=R5gJZ9dowyuwZcNPyRWzjH0iZGMad1QuykWy_ludLzk,12137
580
+ prefect/server/events/schemas/events.py,sha256=k10wMIBPEUTMDFQCJy1frT8LEP7O0EvZxvL5blzBkAU,12419
581
581
  prefect/server/events/schemas/labelling.py,sha256=McGy7dq6Ry2GY3ejnMQnkuL_h77F5MnHXQkyCdePlLU,3103
582
582
  prefect/server/events/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
583
583
  prefect/server/events/services/actions.py,sha256=o8m89I740YCZfO7DQgyngvHgIXOzpT86pjOvvvDeRmA,1850
584
584
  prefect/server/events/services/event_logger.py,sha256=Jx0DhokNw2UP9Q6GLMVPqFfu68pZNNpHUz_aHKCyIH8,2522
585
585
  prefect/server/events/services/event_persister.py,sha256=mzZA8LCkuKB90JKF5PdsIkYavTNF1o6CMERVHbx1xdg,10007
586
- prefect/server/events/services/triggers.py,sha256=GNUjQX2RBO6llTXE9s8IA7zmm92E4YYm_w6wTa1oYNA,2903
586
+ prefect/server/events/services/triggers.py,sha256=VFEGRwQqW1fQIlMp806JnqpLGWbiaWc0TjAnHDXPm80,2744
587
587
  prefect/server/events/storage/__init__.py,sha256=lNLs9YUi1_9wBFrEFQp9JBwkGa8AzH2k2l5TCnjkZ-M,2839
588
588
  prefect/server/events/storage/database.py,sha256=jXbHv7CZi2mJgFqlgVRF_sGNF9neGX40iQ785PUZ7xk,10933
589
589
  prefect/server/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -600,7 +600,7 @@ prefect/server/models/concurrency_limits_v2.py,sha256=VHDofoeA-S3O2ZeqAVkxtVkE6H
600
600
  prefect/server/models/configuration.py,sha256=Tx_P5XFYjJeD6PU7-a_0OsIWR_d9xvEPIM0O_FhEyf0,1505
601
601
  prefect/server/models/csrf_token.py,sha256=pkUg6a68a-G8c0N2Sw2rOxYBufO8WT233IIjmAKBF8w,2677
602
602
  prefect/server/models/deployments.py,sha256=wj65rxDyVX0eWjHWDgrWZyUjvIkgf6FfgitSB9mAGRQ,41995
603
- prefect/server/models/events.py,sha256=FwExvz6ekHJVdVY2pes6JLXEbDV4M_TLlHXBtzU0Qcs,14057
603
+ prefect/server/models/events.py,sha256=8YpuB9wYMmpsmmB-GF72zjbqdhCo1ZY-afa31oUYo7Q,16250
604
604
  prefect/server/models/flow_run_input.py,sha256=pJ_2YdUvIAl9j23wrEcGJzxSf-T6hwpwb4J8qrIFRhs,2339
605
605
  prefect/server/models/flow_run_states.py,sha256=Bv7AlAc2VwV_1mAVym-tfD3LGrMr2cKdjGpbbUAu7-U,1987
606
606
  prefect/server/models/flow_runs.py,sha256=jPkbZvezLyVhZaCH2u56SXpFVH1pk4PNz_AdW52G9z0,22347
@@ -611,10 +611,10 @@ prefect/server/models/task_run_states.py,sha256=Hfote81iKzjK3eFjQCH45WLyKk-2xxXf
611
611
  prefect/server/models/task_runs.py,sha256=rAfDn3w6vf9uWheXsxzK7m6ROOnSwPXDL9Xn4wKzKms,18705
612
612
  prefect/server/models/task_workers.py,sha256=8BmKf0feWdRrYjumfwFZsfDCHKuj-7UmarNAOyrceKY,3343
613
613
  prefect/server/models/variables.py,sha256=e69CMJRhmTnw9nj3TFh6IU0fFuf0r4xp87cKVRkkfMU,4118
614
- prefect/server/models/work_queues.py,sha256=JY7LYu5p_q1dVA_s79fJRVxT0rpJr-n1y4fPSZwFU2Y,21244
615
- prefect/server/models/workers.py,sha256=5efJXFdKiFeEPbPjZ6hL9al47s8Hmknw-2EBr-2kCUM,24521
614
+ prefect/server/models/work_queues.py,sha256=WEPKIZ4nLJZJJ2Puj6OKsjpSBz_Y6wVkCe_WYp9njQo,23163
615
+ prefect/server/models/workers.py,sha256=gGnNjrb2jPigfUCS7s6KQj5xKI-qSoAPjN8eeJxU8q0,27695
616
616
  prefect/server/orchestration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
617
- prefect/server/orchestration/core_policy.py,sha256=5vqmRVe1BCdul5y-LUQVMK6dCLJ6mm8OR6etMT62lnY,67294
617
+ prefect/server/orchestration/core_policy.py,sha256=6LNM1nSmPK4jR4MDP610n6Nzv9E7_OP9S8JMlhStrj4,71771
618
618
  prefect/server/orchestration/dependencies.py,sha256=zV5zUj699gjgGroMVufTOhI5DuRp2r70hNSnQz8i768,4671
619
619
  prefect/server/orchestration/global_policy.py,sha256=vWHDQvuudZk41pp-O9O8mARiJia-CBTm_c-ZvivHb6A,15380
620
620
  prefect/server/orchestration/instrumentation_policies.py,sha256=Qx5fIzsUyc2cGY00FXksM7o7WRYvjp2daJcPEExDt9M,2416
@@ -626,22 +626,22 @@ prefect/server/schemas/core.py,sha256=rXQWJNNgLCBUvxSIjDbReYbbImKn0UcTDJ8d10OWf2
626
626
  prefect/server/schemas/filters.py,sha256=RZgbsbR8-mGloA62jJV--qBRcxT7L6gJnPo3jwC6S2I,87062
627
627
  prefect/server/schemas/graph.py,sha256=dWBE5CmyHFOtNpNpTVJpJBcY6A0ORls00dh_EdR-mTE,1142
628
628
  prefect/server/schemas/internal.py,sha256=TALZECOsrFKPmW6t8mJccKWmlIzyXVIc0idR9FWu-ZI,356
629
- prefect/server/schemas/responses.py,sha256=75aAtjNmPnbxL1ne8WpdoG9C90pf-2kddnpsaR-fooU,22442
629
+ prefect/server/schemas/responses.py,sha256=Me7UxCsn6w1VBIMbLfmxB1A1AITV-WRrlL9IzVsehaw,22149
630
630
  prefect/server/schemas/schedules.py,sha256=QkbM0B9guIUHbqdntJFKXqwyubKjx4BYMbVtBMynMwI,27126
631
631
  prefect/server/schemas/sorting.py,sha256=6OPL7fxq8RQ_FXhBDcU4RAupgLCArm1H-y-4rBoHycM,8857
632
632
  prefect/server/schemas/states.py,sha256=TjjND1kSuTExsf5ZlLMAHJDkInnVtGxH1qKviouTIbY,15369
633
633
  prefect/server/schemas/statuses.py,sha256=h4OT4gLVfVGyuVzwj7lxN39sV7DueZkApz0_wZ6Wzk4,935
634
634
  prefect/server/schemas/ui.py,sha256=I9EUPTz686cAcBJsjpWe_InQ6fiJKfmtUzQQdRTU8wQ,266
635
635
  prefect/server/services/__init__.py,sha256=c7zIiDuolG2OwQf4c5AfaJc4ghkOh-Bg6QPDK5NkZiI,306
636
- prefect/server/services/base.py,sha256=ABgzi_GelkDigU-KvMWkqPV9nTS_ME8pXW90IIgwFy4,11713
636
+ prefect/server/services/base.py,sha256=durS3EGTB87n45X3WSC27CJTYibMomogEBiHJlsK8DA,4177
637
637
  prefect/server/services/cancellation_cleanup.py,sha256=THlE_yMQfTDqspZjugz2EAa8jSgTTi9ljWL830JV__0,6372
638
638
  prefect/server/services/foreman.py,sha256=yapdqyolB-bEojeA7quT2wy3Ff3zGFk5xRvOi4T8o9k,8000
639
639
  prefect/server/services/late_runs.py,sha256=llMtRda5yPsdxrZEtu5Yhrz4SYJ5MpsFjJckrGPky4Y,3066
640
640
  prefect/server/services/pause_expirations.py,sha256=5EDr23cQNMoeXuXbZj2yb8a0V1psi1PqijBb_19OE0I,2899
641
- prefect/server/services/perpetual_services.py,sha256=9GfOoLGD7UWCJTGaJJUCTeKaDSyOAFpqbTKsHf1ivHg,5225
641
+ prefect/server/services/perpetual_services.py,sha256=HA8WVTsWxKYgWqSOBw4pSD_UWj460Ssfrgnh0AvN8Us,5234
642
642
  prefect/server/services/repossessor.py,sha256=pJomlPuoEwK65zgCtok1t3d5i624Lmchu89Gt9o-4Jw,2840
643
- prefect/server/services/scheduler.py,sha256=tyu95kuzA4dwx9UaL331ZzHOeqa5jLz_AyhWmZ9eGR8,14987
644
- prefect/server/services/task_run_recorder.py,sha256=gj4w1x-Ji0WrO2lbVvWJXTpr6Dr_JnEoUE42BEptfes,14697
643
+ prefect/server/services/scheduler.py,sha256=pSTb20mk2W3dEdnFpVYHwPZCM_8u7sjlleEeRQJi_Ew,12127
644
+ prefect/server/services/task_run_recorder.py,sha256=Bvb0WBOUVRljWBQIWDQrcrd7k-SvZbvo2lerMURy3cI,15518
645
645
  prefect/server/services/telemetry.py,sha256=qMcGIN3iWxB4kAMBKrPep-uxhoQ4ObD0x4FI8oHgY0c,3949
646
646
  prefect/server/ui/decorative_iso-pixel-grid_dark.svg,sha256=8z565xPAuU07Fmi_13FP5UAP2_pK6RxBTvQEWj8XFew,35323
647
647
  prefect/server/ui/decorative_iso-pixel-grid_light.svg,sha256=pe7rIharkwgKS9kuWSK6QoG8MFTcXESgChTA1JIy7J4,33883
@@ -846,7 +846,7 @@ prefect/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
846
846
  prefect/testing/cli.py,sha256=TZq67uJbe-WVYsbJK9zEmfXrcTQ7V5lRMcmHFvl-s9M,7532
847
847
  prefect/testing/docker.py,sha256=N46yDmWaGseej_LEVZy91BJcbDaEhFyMKk30-xDVzPQ,635
848
848
  prefect/testing/fixtures.py,sha256=3Lo25af_VymRnGcOP8YVLHXLyeycWmLaDOcKncGAxms,14800
849
- prefect/testing/utilities.py,sha256=oiYih6upXyjSLS69RYrKeP_rI2nesJkwr9mo2a2KPiI,9550
849
+ prefect/testing/utilities.py,sha256=Ah6JVErw7jDUtBE1LuQPwqcBje2WbNb06b_9hTYSSyw,10282
850
850
  prefect/testing/standard_test_suites/__init__.py,sha256=xvBZSNPjbUB_6yidr0UHktyXFTboJbaQFUuKngA5FLY,43
851
851
  prefect/testing/standard_test_suites/blocks.py,sha256=mLA4YCgkLlibmnWvgJD8kWs4w9cwXfuCBl2AqoTPqjY,2835
852
852
  prefect/types/__init__.py,sha256=6Yq_D7XiUUsQp81KENtoeIwiLbLLbX2kLc0wWpNinQQ,8245
@@ -883,20 +883,20 @@ prefect/utilities/slugify.py,sha256=57Vb14t13F3zm1P65KAu8nVeAz0iJCd1Qc5eMG-R5y8,
883
883
  prefect/utilities/templating.py,sha256=AnJ-w7wqVl2nfqKHQawEGhloxCU_zihrCtfx5pWFcYU,16017
884
884
  prefect/utilities/text.py,sha256=cuXb5EwRP5qFV7w-3_axEft4rDIJAMS8jgCg0kqNGKQ,758
885
885
  prefect/utilities/timeout.py,sha256=y7ILFZDpQMnmKB6XloulGDRUYRwnJR_b-XecQLNS7Ts,1265
886
- prefect/utilities/urls.py,sha256=AtwAt_uBjixUsOqDPTkS23eIbLdvDsWct32ewgcq5uY,9184
886
+ prefect/utilities/urls.py,sha256=fUcUKnVQkzpfcARBdUIbfZGnvd6hy2tS31Jqhiy2u44,9476
887
887
  prefect/utilities/visualization.py,sha256=5rywcA_q2D0KHb5ZoZnrZ_A-cXaAFcQ9-wcZaCn99fM,7421
888
888
  prefect/utilities/schema_tools/__init__.py,sha256=At3rMHd2g_Em2P3_dFQlFgqR_EpBwrYtU2N2OJd0pDE,345
889
889
  prefect/utilities/schema_tools/hydration.py,sha256=NkRhWkNfxxFmVGhNDfmxdK_xeKaEhs3a42q83Sg9cT4,9436
890
- prefect/utilities/schema_tools/validation.py,sha256=Wix26IVR-ZJ32-6MX2pHhrwm3reB-Q4iB6_phn85OKE,10743
890
+ prefect/utilities/schema_tools/validation.py,sha256=UhRLWStdT9__u4yz-mnc3lcdt-VJmRGJBGV_f_9um-Y,10749
891
891
  prefect/workers/__init__.py,sha256=EaM1F0RZ-XIJaGeTKLsXDnfOPHzVWk5bk0_c4BVS44M,64
892
- prefect/workers/base.py,sha256=GsVjLewfknXNDlv_xMlmGnWdADhOHql161XBIPV91DM,65035
892
+ prefect/workers/base.py,sha256=n0tcQWGg_gQX1zJ-0WHnSCQMzYyg69Lx8fuwSduoGik,64663
893
893
  prefect/workers/block.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
894
894
  prefect/workers/cloud.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
895
895
  prefect/workers/process.py,sha256=jvxBQyR8-G4Svt0as-BNg94YpvRMYZBIXKtNwC0igNY,11902
896
896
  prefect/workers/server.py,sha256=bWnYfMfJf5_IO3y3aJOpia7p9lFKC3ZZjiMvHox-UKY,1992
897
897
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
898
- prefect-3.6.7.dev3.dist-info/METADATA,sha256=kjOC0aAB1x-_ufvbABpOgPkxV_DbkarYjClgFvDwhAc,13615
899
- prefect-3.6.7.dev3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
900
- prefect-3.6.7.dev3.dist-info/entry_points.txt,sha256=HlY8up83iIq2vU2r33a0qSis4eOFSyb1mRH4l7Xt9X8,126
901
- prefect-3.6.7.dev3.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
902
- prefect-3.6.7.dev3.dist-info/RECORD,,
898
+ prefect-3.6.8.dev3.dist-info/METADATA,sha256=CIMb1Dqj_yKYfgBvjK3jW4ApcTb6ID-6iHukFw9PgLs,13659
899
+ prefect-3.6.8.dev3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
900
+ prefect-3.6.8.dev3.dist-info/entry_points.txt,sha256=HlY8up83iIq2vU2r33a0qSis4eOFSyb1mRH4l7Xt9X8,126
901
+ prefect-3.6.8.dev3.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
902
+ prefect-3.6.8.dev3.dist-info/RECORD,,