prefect-client 3.0.0rc9__py3-none-any.whl → 3.0.0rc11__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 (49) hide show
  1. prefect/_internal/compatibility/migration.py +48 -8
  2. prefect/_internal/concurrency/api.py +1 -1
  3. prefect/_internal/retries.py +61 -0
  4. prefect/agent.py +6 -0
  5. prefect/client/cloud.py +1 -1
  6. prefect/client/schemas/objects.py +3 -4
  7. prefect/concurrency/asyncio.py +3 -3
  8. prefect/concurrency/events.py +1 -1
  9. prefect/concurrency/services.py +3 -2
  10. prefect/concurrency/sync.py +19 -5
  11. prefect/context.py +14 -2
  12. prefect/deployments/__init__.py +28 -15
  13. prefect/deployments/schedules.py +5 -2
  14. prefect/deployments/steps/pull.py +7 -0
  15. prefect/events/schemas/automations.py +3 -3
  16. prefect/exceptions.py +4 -1
  17. prefect/filesystems.py +4 -3
  18. prefect/flow_engine.py +76 -14
  19. prefect/flows.py +222 -64
  20. prefect/futures.py +53 -7
  21. prefect/infrastructure/__init__.py +6 -0
  22. prefect/infrastructure/base.py +6 -0
  23. prefect/logging/loggers.py +1 -1
  24. prefect/results.py +50 -67
  25. prefect/runner/runner.py +93 -20
  26. prefect/runner/server.py +20 -22
  27. prefect/runner/submit.py +0 -8
  28. prefect/runtime/flow_run.py +38 -3
  29. prefect/serializers.py +3 -3
  30. prefect/settings.py +15 -45
  31. prefect/task_engine.py +77 -21
  32. prefect/task_runners.py +28 -16
  33. prefect/task_worker.py +6 -4
  34. prefect/tasks.py +30 -5
  35. prefect/transactions.py +18 -2
  36. prefect/utilities/asyncutils.py +9 -3
  37. prefect/utilities/engine.py +34 -1
  38. prefect/utilities/importtools.py +1 -1
  39. prefect/utilities/timeout.py +20 -5
  40. prefect/workers/base.py +98 -208
  41. prefect/workers/block.py +6 -0
  42. prefect/workers/cloud.py +6 -0
  43. prefect/workers/process.py +262 -4
  44. prefect/workers/server.py +27 -9
  45. {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/METADATA +4 -4
  46. {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/RECORD +49 -44
  47. {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/LICENSE +0 -0
  48. {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/WHEEL +0 -0
  49. {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/top_level.txt +0 -0
@@ -21,8 +21,10 @@ import socket
21
21
  import subprocess
22
22
  import sys
23
23
  import tempfile
24
+ import threading
25
+ from functools import partial
24
26
  from pathlib import Path
25
- from typing import TYPE_CHECKING, Dict, Optional, Tuple
27
+ from typing import TYPE_CHECKING, Callable, Dict, Optional, Tuple
26
28
 
27
29
  import anyio
28
30
  import anyio.abc
@@ -30,8 +32,27 @@ from pydantic import Field, field_validator
30
32
 
31
33
  from prefect._internal.schemas.validators import validate_command
32
34
  from prefect.client.schemas import FlowRun
33
- from prefect.exceptions import InfrastructureNotAvailable, InfrastructureNotFound
35
+ from prefect.client.schemas.filters import (
36
+ FlowRunFilter,
37
+ FlowRunFilterId,
38
+ FlowRunFilterState,
39
+ FlowRunFilterStateName,
40
+ FlowRunFilterStateType,
41
+ WorkPoolFilter,
42
+ WorkPoolFilterName,
43
+ WorkQueueFilter,
44
+ WorkQueueFilterName,
45
+ )
46
+ from prefect.client.schemas.objects import StateType
47
+ from prefect.events.utilities import emit_event
48
+ from prefect.exceptions import (
49
+ InfrastructureNotAvailable,
50
+ InfrastructureNotFound,
51
+ ObjectNotFound,
52
+ )
53
+ from prefect.settings import PREFECT_WORKER_QUERY_SECONDS
34
54
  from prefect.utilities.processutils import get_sys_executable, run_process
55
+ from prefect.utilities.services import critical_service_loop
35
56
  from prefect.workers.base import (
36
57
  BaseJobConfiguration,
37
58
  BaseVariables,
@@ -128,6 +149,96 @@ class ProcessWorker(BaseWorker):
128
149
  )
129
150
  _logo_url = "https://cdn.sanity.io/images/3ugk85nk/production/356e6766a91baf20e1d08bbe16e8b5aaef4d8643-48x48.png"
130
151
 
152
+ async def start(
153
+ self,
154
+ run_once: bool = False,
155
+ with_healthcheck: bool = False,
156
+ printer: Callable[..., None] = print,
157
+ ):
158
+ """
159
+ Starts the worker and runs the main worker loops.
160
+
161
+ By default, the worker will run loops to poll for scheduled/cancelled flow
162
+ runs and sync with the Prefect API server.
163
+
164
+ If `run_once` is set, the worker will only run each loop once and then return.
165
+
166
+ If `with_healthcheck` is set, the worker will start a healthcheck server which
167
+ can be used to determine if the worker is still polling for flow runs and restart
168
+ the worker if necessary.
169
+
170
+ Args:
171
+ run_once: If set, the worker will only run each loop once then return.
172
+ with_healthcheck: If set, the worker will start a healthcheck server.
173
+ printer: A `print`-like function where logs will be reported.
174
+ """
175
+ healthcheck_server = None
176
+ healthcheck_thread = None
177
+ try:
178
+ async with self as worker:
179
+ # wait for an initial heartbeat to configure the worker
180
+ await worker.sync_with_backend()
181
+ # schedule the scheduled flow run polling loop
182
+ async with anyio.create_task_group() as loops_task_group:
183
+ loops_task_group.start_soon(
184
+ partial(
185
+ critical_service_loop,
186
+ workload=self.get_and_submit_flow_runs,
187
+ interval=PREFECT_WORKER_QUERY_SECONDS.value(),
188
+ run_once=run_once,
189
+ jitter_range=0.3,
190
+ backoff=4, # Up to ~1 minute interval during backoff
191
+ )
192
+ )
193
+ # schedule the sync loop
194
+ loops_task_group.start_soon(
195
+ partial(
196
+ critical_service_loop,
197
+ workload=self.sync_with_backend,
198
+ interval=self.heartbeat_interval_seconds,
199
+ run_once=run_once,
200
+ jitter_range=0.3,
201
+ backoff=4,
202
+ )
203
+ )
204
+ loops_task_group.start_soon(
205
+ partial(
206
+ critical_service_loop,
207
+ workload=self.check_for_cancelled_flow_runs,
208
+ interval=PREFECT_WORKER_QUERY_SECONDS.value() * 2,
209
+ run_once=run_once,
210
+ jitter_range=0.3,
211
+ backoff=4,
212
+ )
213
+ )
214
+
215
+ self._started_event = await self._emit_worker_started_event()
216
+
217
+ if with_healthcheck:
218
+ from prefect.workers.server import build_healthcheck_server
219
+
220
+ # we'll start the ASGI server in a separate thread so that
221
+ # uvicorn does not block the main thread
222
+ healthcheck_server = build_healthcheck_server(
223
+ worker=worker,
224
+ query_interval_seconds=PREFECT_WORKER_QUERY_SECONDS.value(),
225
+ )
226
+ healthcheck_thread = threading.Thread(
227
+ name="healthcheck-server-thread",
228
+ target=healthcheck_server.run,
229
+ daemon=True,
230
+ )
231
+ healthcheck_thread.start()
232
+ printer(f"Worker {worker.name!r} started!")
233
+ finally:
234
+ if healthcheck_server and healthcheck_thread:
235
+ self._logger.debug("Stopping healthcheck server...")
236
+ healthcheck_server.should_exit = True
237
+ healthcheck_thread.join()
238
+ self._logger.debug("Healthcheck server stopped.")
239
+
240
+ printer(f"Worker {worker.name!r} stopped!")
241
+
131
242
  async def run(
132
243
  self,
133
244
  flow_run: FlowRun,
@@ -209,10 +320,9 @@ class ProcessWorker(BaseWorker):
209
320
  status_code=process.returncode, identifier=str(process.pid)
210
321
  )
211
322
 
212
- async def kill_infrastructure(
323
+ async def kill_process(
213
324
  self,
214
325
  infrastructure_pid: str,
215
- configuration: ProcessJobConfiguration,
216
326
  grace_seconds: int = 30,
217
327
  ):
218
328
  hostname, pid = _parse_infrastructure_pid(infrastructure_pid)
@@ -263,3 +373,151 @@ class ProcessWorker(BaseWorker):
263
373
  # We shouldn't ever end up here, but it's possible that the
264
374
  # process ended right after the check above.
265
375
  return
376
+
377
+ async def check_for_cancelled_flow_runs(self):
378
+ if not self.is_setup:
379
+ raise RuntimeError(
380
+ "Worker is not set up. Please make sure you are running this worker "
381
+ "as an async context manager."
382
+ )
383
+
384
+ self._logger.debug("Checking for cancelled flow runs...")
385
+
386
+ work_queue_filter = (
387
+ WorkQueueFilter(name=WorkQueueFilterName(any_=list(self._work_queues)))
388
+ if self._work_queues
389
+ else None
390
+ )
391
+
392
+ named_cancelling_flow_runs = await self._client.read_flow_runs(
393
+ flow_run_filter=FlowRunFilter(
394
+ state=FlowRunFilterState(
395
+ type=FlowRunFilterStateType(any_=[StateType.CANCELLED]),
396
+ name=FlowRunFilterStateName(any_=["Cancelling"]),
397
+ ),
398
+ # Avoid duplicate cancellation calls
399
+ id=FlowRunFilterId(not_any_=list(self._cancelling_flow_run_ids)),
400
+ ),
401
+ work_pool_filter=WorkPoolFilter(
402
+ name=WorkPoolFilterName(any_=[self._work_pool_name])
403
+ ),
404
+ work_queue_filter=work_queue_filter,
405
+ )
406
+
407
+ typed_cancelling_flow_runs = await self._client.read_flow_runs(
408
+ flow_run_filter=FlowRunFilter(
409
+ state=FlowRunFilterState(
410
+ type=FlowRunFilterStateType(any_=[StateType.CANCELLING]),
411
+ ),
412
+ # Avoid duplicate cancellation calls
413
+ id=FlowRunFilterId(not_any_=list(self._cancelling_flow_run_ids)),
414
+ ),
415
+ work_pool_filter=WorkPoolFilter(
416
+ name=WorkPoolFilterName(any_=[self._work_pool_name])
417
+ ),
418
+ work_queue_filter=work_queue_filter,
419
+ )
420
+
421
+ cancelling_flow_runs = named_cancelling_flow_runs + typed_cancelling_flow_runs
422
+
423
+ if cancelling_flow_runs:
424
+ self._logger.info(
425
+ f"Found {len(cancelling_flow_runs)} flow runs awaiting cancellation."
426
+ )
427
+
428
+ for flow_run in cancelling_flow_runs:
429
+ self._cancelling_flow_run_ids.add(flow_run.id)
430
+ self._runs_task_group.start_soon(self.cancel_run, flow_run)
431
+
432
+ return cancelling_flow_runs
433
+
434
+ async def cancel_run(self, flow_run: "FlowRun"):
435
+ run_logger = self.get_flow_run_logger(flow_run)
436
+
437
+ try:
438
+ configuration = await self._get_configuration(flow_run)
439
+ except ObjectNotFound:
440
+ self._logger.warning(
441
+ f"Flow run {flow_run.id!r} cannot be cancelled by this worker:"
442
+ f" associated deployment {flow_run.deployment_id!r} does not exist."
443
+ )
444
+ await self._mark_flow_run_as_cancelled(
445
+ flow_run,
446
+ state_updates={
447
+ "message": (
448
+ "This flow run is missing infrastructure configuration information"
449
+ " and cancellation cannot be guaranteed."
450
+ )
451
+ },
452
+ )
453
+ return
454
+ else:
455
+ if configuration.is_using_a_runner:
456
+ self._logger.info(
457
+ f"Skipping cancellation because flow run {str(flow_run.id)!r} is"
458
+ " using enhanced cancellation. A dedicated runner will handle"
459
+ " cancellation."
460
+ )
461
+ return
462
+
463
+ if not flow_run.infrastructure_pid:
464
+ run_logger.error(
465
+ f"Flow run '{flow_run.id}' does not have an infrastructure pid"
466
+ " attached. Cancellation cannot be guaranteed."
467
+ )
468
+ await self._mark_flow_run_as_cancelled(
469
+ flow_run,
470
+ state_updates={
471
+ "message": (
472
+ "This flow run is missing infrastructure tracking information"
473
+ " and cancellation cannot be guaranteed."
474
+ )
475
+ },
476
+ )
477
+ return
478
+
479
+ try:
480
+ await self.kill_process(
481
+ infrastructure_pid=flow_run.infrastructure_pid,
482
+ )
483
+ except NotImplementedError:
484
+ self._logger.error(
485
+ f"Worker type {self.type!r} does not support killing created "
486
+ "infrastructure. Cancellation cannot be guaranteed."
487
+ )
488
+ except InfrastructureNotFound as exc:
489
+ self._logger.warning(f"{exc} Marking flow run as cancelled.")
490
+ await self._mark_flow_run_as_cancelled(flow_run)
491
+ except InfrastructureNotAvailable as exc:
492
+ self._logger.warning(f"{exc} Flow run cannot be cancelled by this worker.")
493
+ except Exception:
494
+ run_logger.exception(
495
+ "Encountered exception while killing infrastructure for flow run "
496
+ f"'{flow_run.id}'. Flow run may not be cancelled."
497
+ )
498
+ # We will try again on generic exceptions
499
+ self._cancelling_flow_run_ids.remove(flow_run.id)
500
+ return
501
+ else:
502
+ self._emit_flow_run_cancelled_event(
503
+ flow_run=flow_run, configuration=configuration
504
+ )
505
+ await self._mark_flow_run_as_cancelled(flow_run)
506
+ run_logger.info(f"Cancelled flow run '{flow_run.id}'!")
507
+
508
+ def _emit_flow_run_cancelled_event(
509
+ self, flow_run: "FlowRun", configuration: BaseJobConfiguration
510
+ ):
511
+ related = self._event_related_resources(configuration=configuration)
512
+
513
+ for resource in related:
514
+ if resource.role == "flow-run":
515
+ resource["prefect.infrastructure.identifier"] = str(
516
+ flow_run.infrastructure_pid
517
+ )
518
+
519
+ emit_event(
520
+ event="prefect.worker.cancelled-flow-run",
521
+ resource=self._event_resource(),
522
+ related=related,
523
+ )
prefect/workers/server.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from typing import Union
2
2
 
3
3
  import uvicorn
4
+ import uvicorn.server
4
5
  from fastapi import APIRouter, FastAPI, status
5
6
  from fastapi.responses import JSONResponse
6
7
 
@@ -12,19 +13,19 @@ from prefect.workers.base import BaseWorker
12
13
  from prefect.workers.process import ProcessWorker
13
14
 
14
15
 
15
- def start_healthcheck_server(
16
+ def build_healthcheck_server(
16
17
  worker: Union[BaseWorker, ProcessWorker],
17
- query_interval_seconds: int,
18
+ query_interval_seconds: float,
18
19
  log_level: str = "error",
19
- ) -> None:
20
+ ):
20
21
  """
21
- Run a healthcheck FastAPI server for a worker.
22
+ Build a healthcheck FastAPI server for a worker.
22
23
 
23
24
  Args:
24
25
  worker (BaseWorker | ProcessWorker): the worker whose health we will check
25
- log_level (str): the log level to use for the server
26
+ log_level (str): the log
26
27
  """
27
- webserver = FastAPI()
28
+ app = FastAPI()
28
29
  router = APIRouter()
29
30
 
30
31
  def perform_health_check():
@@ -41,11 +42,28 @@ def start_healthcheck_server(
41
42
 
42
43
  router.add_api_route("/health", perform_health_check, methods=["GET"])
43
44
 
44
- webserver.include_router(router)
45
+ app.include_router(router)
45
46
 
46
- uvicorn.run(
47
- webserver,
47
+ config = uvicorn.Config(
48
+ app=app,
48
49
  host=PREFECT_WORKER_WEBSERVER_HOST.value(),
49
50
  port=PREFECT_WORKER_WEBSERVER_PORT.value(),
50
51
  log_level=log_level,
51
52
  )
53
+ return uvicorn.Server(config=config)
54
+
55
+
56
+ def start_healthcheck_server(
57
+ worker: Union[BaseWorker, ProcessWorker],
58
+ query_interval_seconds: float,
59
+ log_level: str = "error",
60
+ ) -> None:
61
+ """
62
+ Run a healthcheck FastAPI server for a worker.
63
+
64
+ Args:
65
+ worker (BaseWorker | ProcessWorker): the worker whose health we will check
66
+ log_level (str): the log level to use for the server
67
+ """
68
+ server = build_healthcheck_server(worker, query_interval_seconds, log_level)
69
+ server.run()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 3.0.0rc9
3
+ Version: 3.0.0rc11
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -24,7 +24,7 @@ Classifier: Topic :: Software Development :: Libraries
24
24
  Requires-Python: >=3.9
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: LICENSE
27
- Requires-Dist: anyio <5.0.0,>=4.0.0
27
+ Requires-Dist: anyio <5.0.0,>=4.4.0
28
28
  Requires-Dist: asgi-lifespan <3.0,>=1.0
29
29
  Requires-Dist: cachetools <6.0,>=5.3
30
30
  Requires-Dist: cloudpickle <4.0,>=2.0
@@ -34,7 +34,7 @@ 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.20.0
37
+ Requires-Dist: griffe <0.48.0,>=0.20.0
38
38
  Requires-Dist: httpcore <2.0.0,>=1.0.5
39
39
  Requires-Dist: httpx[http2] !=0.23.2,>=0.23
40
40
  Requires-Dist: importlib-resources <6.2.0,>=6.1.3
@@ -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 <0.29.0,>=0.14.0
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,43 +1,45 @@
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=OEmbC61D3l0E50HIaMlVNNJShhYC6I1-4TQhpP321tw,19480
8
+ prefect/context.py,sha256=40FLSXI3Qd9dMwP8nQ7fGZFKpQIuEkjTpekT4V1MvF8,19942
8
9
  prefect/engine.py,sha256=BpmDbe6miZcTl1vRkxfCPYcWSXADLigGPCagFwucMz0,1976
9
- prefect/exceptions.py,sha256=kRiEX6qpT9errs0SuYJDYG7ioMNddTvqK7gT8RVFajk,11076
10
- prefect/filesystems.py,sha256=HrPoehZKpuVxzWDXaTiuJqgVCgxlQ4lyTEZKSYKiZUc,17169
11
- prefect/flow_engine.py,sha256=zTPQ_qSIKfDdmzQgtLKmAXGQVWWp6JUGVhoB6OVoRVM,26896
10
+ prefect/exceptions.py,sha256=3s69Z_IC3HKF6BKxcHrMPXkKdYwfbEfaTjy4-5LOtQ0,11132
11
+ prefect/filesystems.py,sha256=rbFvlqHXeeo71nK1Y5I0-ucmGOYUcdkbb6N2vpsRcWE,17229
12
+ prefect/flow_engine.py,sha256=pty-TJxjlJgk5diKXR3aIdjQNQkFZH-QN5HGxSvc-iQ,29189
12
13
  prefect/flow_runs.py,sha256=EaXRIQTOnwnA0fO7_EjwafFRmS57K_CRy0Xsz3JDIhc,16070
13
- prefect/flows.py,sha256=mninDvvSt2pcfyGIr1YOsHKbGfNjfcOTx3651VAaUBw,79159
14
- prefect/futures.py,sha256=nGD195sLosqBIpBtESLeVMKAorUVRNLstipiqs6e7w8,12153
14
+ prefect/flows.py,sha256=nHzrZG9-lQ8S_9lOKKFuX1l_BBJJ5IuLEqzuloqE4NY,84263
15
+ prefect/futures.py,sha256=w5M_iZwt5aI0AUfia0JC1FkitRmQ6Oxtc_L7g_INTOM,13695
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=V-x--5xlFok5AZvAxVGeXjCF_s_v-KtZaqZwPawcCkQ,27074
21
- prefect/serializers.py,sha256=8ON--RmaLX3Td3Rpd1lshGcqWyjlCFkmO3sblxsdT_c,8699
22
- prefect/settings.py,sha256=PtlBckPyMY2qnmvHRtOkmlgbczcBLMHZMuE09N5fWhU,70566
21
+ prefect/results.py,sha256=gpX2pGIYyVfxMaVJkic5i1KbJ4RBARAoIizDL_C3auI,26152
22
+ prefect/serializers.py,sha256=Lo41EM0_qGzcfB_63390Izeo3DdK6cY6VZfxa9hpSGQ,8712
23
+ prefect/settings.py,sha256=5H6yQqtql9GWHp1wFCaDnejfdrzd2v-9CPOHD7TA8yU,69607
23
24
  prefect/states.py,sha256=lw22xucH46cN9stkxiV9ByIvq689mH5iL3gErri-Y18,22207
24
- prefect/task_engine.py,sha256=yibsXJw5hzYXjb5qAgqBnUcXMCiPhJZy1hDtiPmj1uA,33050
25
- prefect/task_runners.py,sha256=KulKKV1_Pkt7Pt2to3NLc1tp-idpV8EXdSuFJXS8ZyY,14622
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=fyRP5K1U6LGMBoCZOPtbxKs0ay2A6o2gJiw1to0vNYk,17219
28
- prefect/tasks.py,sha256=Z_8yQPTTlm0ujNudHqCOioQSsTBH8irmF5WJY2uOPSQ,61668
29
- prefect/transactions.py,sha256=15ZrRp7Csp2uNol8rMvBnZLBKEvlIGiUFsMjk63ha6c,10480
28
+ prefect/task_worker.py,sha256=lV9rQb9YOaO28DZLW_avw6p0pTSVYtsA1gqODWxB7J0,17334
29
+ prefect/tasks.py,sha256=VkliQAiiLiYSpBQvY1Xc4huqmGgMlgX0KChlBPOX9IY,62599
30
+ prefect/transactions.py,sha256=Yn9XgUFJKD_QZ0OzvmW-kp7x6hcGcE5FuJ0V8lSTCEM,11032
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
33
34
  prefect/_internal/integrations.py,sha256=U4cZMDbnilzZSKaMxvzZcSL27a1tzRMjDoTfr2ul_eY,231
34
35
  prefect/_internal/pytz.py,sha256=WWl9x16rKFWequGmcOGs_ljpCDPf2LDHMyZp_4D8e6c,13748
36
+ prefect/_internal/retries.py,sha256=8uuagUX32w5YANLHqjM_1hHmVe9b1HxcwuPMXb1G2Qk,2317
35
37
  prefect/_internal/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
38
  prefect/_internal/compatibility/deprecated.py,sha256=7vqE1_PAPS0cDalTfTumHWUIOqIzkbKvQl1iwHlfynQ,9205
37
39
  prefect/_internal/compatibility/experimental.py,sha256=nrIeeAe1vZ0yMb1cPw5AroVR6_msx-bzTeBLzY4au6o,5634
38
- prefect/_internal/compatibility/migration.py,sha256=WcxP0heqBXxlZHEdpGcTWHbAf2EBddSuQdt-z9ZykD4,5006
40
+ prefect/_internal/compatibility/migration.py,sha256=O9HrcqxfQ-RrIklH0uGxeXMrQejPz1hmsgrw8zDLJuw,6801
39
41
  prefect/_internal/concurrency/__init__.py,sha256=YlTwU9ryjPNwbJa45adLJY00t_DGCh1QrdtY9WdVFfw,2140
40
- prefect/_internal/concurrency/api.py,sha256=mE2IahRxGX1DgyxIryDXhF6gwhOJ-cdghsTjJtNil9U,7132
42
+ prefect/_internal/concurrency/api.py,sha256=mOajv_f9ms2u3O4sgegJDV2kLeCg9lBavlEZzPw5kr4,7126
41
43
  prefect/_internal/concurrency/calls.py,sha256=UlNgzCoy3awKEPnMpexBSa1dk_2MNwCWoZ5YQODEmG4,15437
42
44
  prefect/_internal/concurrency/cancellation.py,sha256=D1B_I2cBSGPNXcLaXNaLN_9_QAgFjRmA540RcTmS0rA,18050
43
45
  prefect/_internal/concurrency/event_loop.py,sha256=1VBW862QZ6DV9dExWOT398A0fti4A7jW2kcY7Y5V-lI,2073
@@ -68,7 +70,7 @@ prefect/blocks/system.py,sha256=tkONKzDlaQgR6NtWXON0ZQm7nGuFKt0_Du3sj8ubs-M,3605
68
70
  prefect/blocks/webhook.py,sha256=mnAfGF64WyjH55BKkTbC1AP9FETNcrm_PEjiqJNpigA,1867
69
71
  prefect/client/__init__.py,sha256=fFtCXsGIsBCsAMFKlUPgRVUoIeqq_CsGtFE1knhbHlU,593
70
72
  prefect/client/base.py,sha256=laxz64IEhbetMIcRh67_YDYd5ThCmUK9fgUgco8WyXQ,24647
71
- prefect/client/cloud.py,sha256=5T84QP9IRa_cqL7rmY3lR1wxFW6C41PajFZgelurhK0,4124
73
+ prefect/client/cloud.py,sha256=7iHff1YDABdzBW5BZFlyzmwgCMWUwbgVv2zTNlqW7lw,4132
72
74
  prefect/client/collections.py,sha256=I9EgbTg4Fn57gn8vwP_WdDmgnATbx9gfkm2jjhCORjw,1037
73
75
  prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
74
76
  prefect/client/orchestration.py,sha256=W3tiqjND1lf0GtunLBayMRrUD5ykAcW0GfwxqT9fT-A,142479
@@ -77,26 +79,26 @@ prefect/client/utilities.py,sha256=Qh1WdKLs8F_GuA04FeZ1GJsPYtiCN4DjKmLEaMfKmpQ,3
77
79
  prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
78
80
  prefect/client/schemas/actions.py,sha256=wiyq87MrHBVbZZVqA6IX4Gy_rw7sogLfqRSXK3Id0cc,28019
79
81
  prefect/client/schemas/filters.py,sha256=HyIYZQowhkHa_D6syj83zUp5uFEzA8UADLaS9mt1MTo,35305
80
- prefect/client/schemas/objects.py,sha256=oxFupZM77x8J6HdA8Vx1nVhz-w0WIBbklOhJmDqKYRQ,53538
82
+ prefect/client/schemas/objects.py,sha256=3-qhF8qTUSB-wax4s5_zBs6A1K2hdDr1WLxpTryQbRE,53547
81
83
  prefect/client/schemas/responses.py,sha256=xW9QKmVgBftSEmtuSr5gp9HBFvIDzF6aSFq-mhv7dE8,14948
82
84
  prefect/client/schemas/schedules.py,sha256=8rpqjOYtknu2-1n5_WD4cOplgu93P3mCyX86B22LfL4,13070
83
85
  prefect/client/schemas/sorting.py,sha256=EIQ6FUjUWMwk6fn6ckVLQLXOP-GI5kce7ftjUkDFWV0,2490
84
86
  prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
87
  prefect/client/types/flexible_schedule_list.py,sha256=F1VFAXGLM89dJRBLnVsxwAMGLmrRF2i81FirEMpbB5s,368
86
88
  prefect/concurrency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- prefect/concurrency/asyncio.py,sha256=sn5Wm6pOnU0bnfJiwltwWBcouj-rhGg27Zkzw7zfVuA,4684
88
- prefect/concurrency/events.py,sha256=rQLSBwcYCzvdKTXr7bLjgMIklllObxB33MAL6dylXAM,1802
89
- prefect/concurrency/services.py,sha256=pxqfjA5DpzcpbU-E2TQT1Rq8BhOGf3Sfz5eTFE8sYu8,2981
90
- prefect/concurrency/sync.py,sha256=QtnPRfVX9GqVyuZOt6W9yJuT9G-PlCSVnxlZKFTjuKY,3271
91
- prefect/deployments/__init__.py,sha256=yAtuBvqhQNhlJHjPW6yQyjkPFCgew3t26NAKO2RnQyk,428
89
+ prefect/concurrency/asyncio.py,sha256=cCpjhq7z9hHpXUFLYp4fiGw_GcSfxOphhkOR4Xkf-4g,4738
90
+ prefect/concurrency/events.py,sha256=EjZwUbbtP-N-u8rk8nbyMIi-BnkshoLkHRYh913jUWU,1810
91
+ prefect/concurrency/services.py,sha256=akKoelFn6w70uYqGLIn2JcD5iCLy2CHPTnOz4XYrmOo,3039
92
+ prefect/concurrency/sync.py,sha256=tjAcMj9mtgGeCQNmHTk35jCvqoI9CEGQNyeHG8j1B3k,3496
93
+ prefect/deployments/__init__.py,sha256=_wb7NxDKhq11z9MjYsPckmT3o6MRhGLRgCV9TmvYtew,1002
92
94
  prefect/deployments/base.py,sha256=j2VUHkghXCqbfYJD8Joeh12Ejh4KCzr2DgVPRpDpbLw,16600
93
95
  prefect/deployments/deployments.py,sha256=EvC9qBdvJRc8CHJqRjFTqtzx75SE8bpZOl5C-2eULyA,109
94
96
  prefect/deployments/flow_runs.py,sha256=eatcBD7pg-aaEqs9JxQQcKN_flf614O4gAvedAlRyNo,6803
95
97
  prefect/deployments/runner.py,sha256=wVz2Ltis_tOpWLvLzPuOBJBIsdWqs8aXY2oCOuwhssc,41763
96
- prefect/deployments/schedules.py,sha256=l1xOHBmJJ-VZFPTX4RWScJ802P-iE81Vzp4EniQ65k4,2004
98
+ prefect/deployments/schedules.py,sha256=KCYA6dOmLAoElHZuoWqdJn4Yno4TtOZtXfPOpTLb1cE,2046
97
99
  prefect/deployments/steps/__init__.py,sha256=Dlz9VqMRyG1Gal8dj8vfGpPr0LyQhZdvcciozkK8WoY,206
98
100
  prefect/deployments/steps/core.py,sha256=5vFf6BSpu992kkaYsvcPpsz-nZxFmayMIDmY9h0Hb8M,6846
99
- prefect/deployments/steps/pull.py,sha256=ylp3fd72hEfmY67LQs7sMwdcK6KKobsTZOeay-YUl8Q,7125
101
+ prefect/deployments/steps/pull.py,sha256=N98fU9S6Og204oKsqJf53eP1PdwwyRojtVg8GT2sVhE,7294
100
102
  prefect/deployments/steps/utility.py,sha256=s5mMBmHVCS1ZRBRUCunwPueU_7Dii_GK6CqCoznwUCc,8134
101
103
  prefect/docker/__init__.py,sha256=jumlacz2HY9l1ee0L9_kE0PFi9NO3l3pWINm9T5N9hs,524
102
104
  prefect/docker/docker_image.py,sha256=Y84_ooCYA9NGl6FElJul9-FaW3teT-eia2SiNtZ1LG8,2999
@@ -110,11 +112,12 @@ prefect/events/worker.py,sha256=UGwqnoOHmtvAh_Y9yJlEB6RfKmYRu4Xsc5l9LolHV_0,3434
110
112
  prefect/events/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
113
  prefect/events/cli/automations.py,sha256=WIZ3-EcDibjQB5BrMEx7OZ7UfOqP8VjCI1dNh64Nmg0,11425
112
114
  prefect/events/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- prefect/events/schemas/automations.py,sha256=hZ7lbkJEhpHmyd118k_O7kl_i_lEnDifwsn2ZHyn8Po,14380
115
+ prefect/events/schemas/automations.py,sha256=he9_v0Oq8AtCJe5gMti5GDQiaGa50sM4Jz9soDf-upU,14396
114
116
  prefect/events/schemas/deployment_triggers.py,sha256=i_BtKscXU9kOHAeqmxrYQr8itEYfuPIxAnCW3fo1YeE,3114
115
117
  prefect/events/schemas/events.py,sha256=RqosMukGfHvLPnYDcyxkm6VuifCeH5-aQ4POdMPmaUA,8649
116
118
  prefect/events/schemas/labelling.py,sha256=bU-XYaHXhI2MEBIHngth96R9D02m8HHb85KNcHZ_1Gc,3073
117
- prefect/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
+ prefect/infrastructure/__init__.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
120
+ prefect/infrastructure/base.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
118
121
  prefect/infrastructure/provisioners/__init__.py,sha256=wn240gHrQbien2g_g2A8Ujb2iFyjmDgMHLQ7tgQngf4,1706
119
122
  prefect/infrastructure/provisioners/cloud_run.py,sha256=K6_8AO_fZRfuI0hGx_EwvlRkiNPcmR5yD9P8B-QSjuc,17745
120
123
  prefect/infrastructure/provisioners/container_instance.py,sha256=ZaiaAOywMjbhZI6emzqsDQh-xBePajzjjMT_JY8lwNA,41281
@@ -129,20 +132,20 @@ prefect/logging/filters.py,sha256=9keHLN4-cpnsWcii1qU0RITNi9-m7pOhkJ_t0MtCM4k,11
129
132
  prefect/logging/formatters.py,sha256=3nBWgawvD48slT0zgkKeus1gIyf0OjmDKdLwMEe5mPU,3923
130
133
  prefect/logging/handlers.py,sha256=eIf-0LFH8XUu8Ybnc3LXoocSsa8M8EdAIwbPTVFzZjI,10425
131
134
  prefect/logging/highlighters.py,sha256=BpSXOy0n3lFVvlKWa7jC-HetAiClFi9jnQtEq5-rgok,1681
132
- prefect/logging/loggers.py,sha256=tvd2uacDOndMKt_jvVlk-bsHGx6lRTaYNtbrvjIaUg8,11534
135
+ prefect/logging/loggers.py,sha256=xmJ4GIuSXyFV4yMMDK-VokMFGbfcX64PLPyzdM_aV9c,11544
133
136
  prefect/logging/logging.yml,sha256=UkEewf0c3_dURI2uCU4RrxkhI5Devoa1s93fl7hilcg,3160
134
137
  prefect/records/__init__.py,sha256=7q-lwyevfVgb5S7K9frzawmiJmpZ5ET0m5yXIHBYcVA,31
135
138
  prefect/records/result_store.py,sha256=6Yh9zqqXMWjn0qWSfcjQBSfXCM7jVg9pve5TVsOodDc,1734
136
139
  prefect/records/store.py,sha256=eQM1p2vZDshXZYg6SkJwL-DP3kUehL_Zgs8xa2-0DZs,224
137
140
  prefect/runner/__init__.py,sha256=7U-vAOXFkzMfRz1q8Uv6Otsvc0OrPYLLP44srwkJ_8s,89
138
- prefect/runner/runner.py,sha256=aR9Figoyvn0PAKv8zussaT7sJP9zM-SAmrcYZN19ZB8,45152
139
- prefect/runner/server.py,sha256=pXyNGDw2aBYCXRr3zyFCaflxUaQOG4M07zxwXiFngoQ,10676
141
+ prefect/runner/runner.py,sha256=33lp10HDKhB8r009eQZJ1hAbcH8_V0zVpbCL1_4-0MQ,47990
142
+ prefect/runner/server.py,sha256=2o5vhrL7Zbn-HBStWhCjqqViex5Ye9GiQ1EW9RSEzdo,10500
140
143
  prefect/runner/storage.py,sha256=FFHk28iF_OLw-cnXQtJIgGXUV4xecxF70mobiszP8C4,24557
141
- prefect/runner/submit.py,sha256=EpgYNR-tAub0VFVTIkijp8qwHcS1iojLAZN5NM0X39s,8552
144
+ prefect/runner/submit.py,sha256=RuyDr-ved9wjYYarXiehY5oJVFf_HE3XKKACNWpxpPc,8131
142
145
  prefect/runner/utils.py,sha256=wVgVa7p5uUL7tfYfDOVuq6QIGf-I8U9dfAjYBmYf6n4,3286
143
146
  prefect/runtime/__init__.py,sha256=JswiTlYRup2zXOYu8AqJ7czKtgcw9Kxo0tTbS6aWCqY,407
144
147
  prefect/runtime/deployment.py,sha256=Kah8Xdh5f94-CEAXjBgnEB4xAQXXYPaEqDJ_gTqltIY,4752
145
- prefect/runtime/flow_run.py,sha256=Fxbyc4r3kPj2m3AIJT8gud2PB5w9aKTwkI-g4dysikE,8445
148
+ prefect/runtime/flow_run.py,sha256=N16Z-GzATw-vZnaGdxjomWCfZx8_mMBQR2_cGUVj9m0,9436
146
149
  prefect/runtime/task_run.py,sha256=B6v_nZiHy9nKZfnKFQF7izZjAjaiZOT0j80m-VcLxmY,3403
147
150
  prefect/server/api/collections_data/views/aggregate-worker-metadata.json,sha256=gqrwGyylzBEzlFSPOJcMuUwdoK_zojpU0SZaBDgK5FE,79748
148
151
  prefect/server/api/static/prefect-logo-mark-gradient.png,sha256=ylRjJkI_JHCw8VbQasNnXQHwZW-sH-IQiUGSD3aWP1E,73430
@@ -150,17 +153,17 @@ prefect/types/__init__.py,sha256=SAHJDtWEGidTKXQACJ38nj6fq8r57Gj0Pwo4Gy7pVWs,223
150
153
  prefect/types/entrypoint.py,sha256=2FF03-wLPgtnqR_bKJDB2BsXXINPdu8ptY9ZYEZnXg8,328
151
154
  prefect/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
155
  prefect/utilities/annotations.py,sha256=bXB43j5Zsq5gaBcJe9qnszBlnNwCTwqSTgcu2OkkRLo,2776
153
- prefect/utilities/asyncutils.py,sha256=5wo5Ya3fimaRy353nApCde9lzXkDLMc_BJjHTg2WbIw,19797
156
+ prefect/utilities/asyncutils.py,sha256=_ZN4lag5zofbXYysL8IbS3FBNjFF9bzjoVQfmgM7WLs,19998
154
157
  prefect/utilities/callables.py,sha256=rkPPzwiVFRoVszSUq612s9S0v3nxcMC-rIwfXoJTn0E,24915
155
158
  prefect/utilities/collections.py,sha256=pPa_SZZq80cja6l99b3TV7hRQy366WnuWpOW_FnutMI,17259
156
159
  prefect/utilities/compat.py,sha256=mNQZDnzyKaOqy-OV-DnmH_dc7CNF5nQgW_EsA4xMr7g,906
157
160
  prefect/utilities/context.py,sha256=BThuUW94-IYgFYTeMIM9KMo8ShT3oiI7w5ajZHzU1j0,1377
158
161
  prefect/utilities/dispatch.py,sha256=c8G-gBo7hZlyoD7my9nO50Rzy8Retk-np5WGq9_E2AM,5856
159
162
  prefect/utilities/dockerutils.py,sha256=kRozGQ7JO6Uxl-ljWtDryzxhf96rHL78aHYDh255Em4,20324
160
- prefect/utilities/engine.py,sha256=E5WSLg9XsvkEN56M8Q5Wl4k0INUpaqmvdToQPFjYWNo,30160
163
+ prefect/utilities/engine.py,sha256=jqE8RqixSbobaB9IxTGKIT2siv9zjT_w_99Y8dDeVVU,31518
161
164
  prefect/utilities/filesystem.py,sha256=frAyy6qOeYa7c-jVbEUGZQEe6J1yF8I_SvUepPd59gI,4415
162
165
  prefect/utilities/hashing.py,sha256=EOwZLmoIZImuSTxAvVqInabxJ-4RpEfYeg9e2EDQF8o,1752
163
- prefect/utilities/importtools.py,sha256=-7-ROjtL6ZHLIrGll05h0c9Vv0L70XH8U9BQgeAPWAU,15411
166
+ prefect/utilities/importtools.py,sha256=YKmfib0_fYK_TaVjy8Ru1yxBI1OPH_Jh-utxlLpu2y8,15406
164
167
  prefect/utilities/math.py,sha256=wLwcKVidpNeWQi1TUIWWLHGjlz9UgboX9FUGhx_CQzo,2821
165
168
  prefect/utilities/names.py,sha256=x-stHcF7_tebJPvB1dz-5FvdXJXNBTg2kFZXSnIBBmk,1657
166
169
  prefect/utilities/processutils.py,sha256=yo_GO48pZzgn4A0IK5irTAoqyUCYvWKDSqHXCrtP8c4,14547
@@ -170,19 +173,21 @@ prefect/utilities/services.py,sha256=WoYOkWFnuW0K5I2RPx2g7F7WhuVgz39zWK9xkgiSHC8
170
173
  prefect/utilities/slugify.py,sha256=57Vb14t13F3zm1P65KAu8nVeAz0iJCd1Qc5eMG-R5y8,169
171
174
  prefect/utilities/templating.py,sha256=nAiOGMMHGbIDFkGYy-g-dzcbY311WfycdgAhsM3cLpY,13298
172
175
  prefect/utilities/text.py,sha256=eXGIsCcZ7h_6hy8T5GDQjL8GiKyktoOqavYub0QjgO4,445
173
- prefect/utilities/timeout.py,sha256=nxmuPxROIT-i8gPffpARuxnxu58H0vkmbjTVIgef0_0,805
176
+ prefect/utilities/timeout.py,sha256=BRDIOWnqcw3B7X9tIk83Y3n9nQrJzZgduDQ63z-ns8w,1286
174
177
  prefect/utilities/urls.py,sha256=GuiV3mk-XfzXx139ySyNQNbNaolA3T-hUZvW3T_PhXU,6396
175
178
  prefect/utilities/visualization.py,sha256=Lum4IvLQ0nHsdLt6GGzS3Wwo-828u1rmOKc5mmWu994,6502
176
179
  prefect/utilities/schema_tools/__init__.py,sha256=KsFsTEHQqgp89TkDpjggkgBBywoHQPxbx-m6YQhiNEI,322
177
180
  prefect/utilities/schema_tools/hydration.py,sha256=Nitnmr35Mcn5z9NXIvh9DuZW5nCZxpjyMc9RFawMsgs,8376
178
181
  prefect/utilities/schema_tools/validation.py,sha256=zZHL_UFxAlgaUzi-qsEOrhWtZ7EkFQvPkX_YN1EJNTo,8414
179
182
  prefect/workers/__init__.py,sha256=8dP8SLZbWYyC_l9DRTQSE3dEbDgns5DZDhxkp_NfsbQ,35
180
- prefect/workers/base.py,sha256=62E0Q41pPr3eQdSBSUBfiR4WYx01OfuqUp5INRqHGgo,46942
181
- prefect/workers/process.py,sha256=vylkSSswaSCew-V65YW0HcxIxyKI-uqWkbSKpkkLamQ,9372
182
- prefect/workers/server.py,sha256=EfPiMxI7TVgkqpHkdPwSaYG-ydi99sG7jwXhkAcACbI,1519
183
+ prefect/workers/base.py,sha256=gjv-ZxwJOSr9mytY5bVwj8rtFriLGacGghQhwcX9hQI,43457
184
+ prefect/workers/block.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
185
+ prefect/workers/cloud.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
186
+ prefect/workers/process.py,sha256=t1f1EYRoPL5B25KbLgUX2b5q-lCCAXb2Gpf6T2M9WfY,19822
187
+ prefect/workers/server.py,sha256=lgh2FfSuaNU7b6HPxSFm8JtKvAvHsZGkiOo4y4tW1Cw,2022
183
188
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
184
- prefect_client-3.0.0rc9.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
185
- prefect_client-3.0.0rc9.dist-info/METADATA,sha256=6OG1-1e_ST_fDwjKngTXj3p7NBcxfFJlsZ75vMm1gJE,7422
186
- prefect_client-3.0.0rc9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
187
- prefect_client-3.0.0rc9.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
188
- prefect_client-3.0.0rc9.dist-info/RECORD,,
189
+ prefect_client-3.0.0rc11.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
190
+ prefect_client-3.0.0rc11.dist-info/METADATA,sha256=21Ipv_Qq3mfIziTr_jbFzJPBsMKfM1Tlspvek1Cpcg0,7432
191
+ prefect_client-3.0.0rc11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
192
+ prefect_client-3.0.0rc11.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
193
+ prefect_client-3.0.0rc11.dist-info/RECORD,,