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.
- prefect/_internal/compatibility/migration.py +48 -8
- prefect/_internal/concurrency/api.py +1 -1
- prefect/_internal/retries.py +61 -0
- prefect/agent.py +6 -0
- prefect/client/cloud.py +1 -1
- prefect/client/schemas/objects.py +3 -4
- prefect/concurrency/asyncio.py +3 -3
- prefect/concurrency/events.py +1 -1
- prefect/concurrency/services.py +3 -2
- prefect/concurrency/sync.py +19 -5
- prefect/context.py +14 -2
- prefect/deployments/__init__.py +28 -15
- prefect/deployments/schedules.py +5 -2
- prefect/deployments/steps/pull.py +7 -0
- prefect/events/schemas/automations.py +3 -3
- prefect/exceptions.py +4 -1
- prefect/filesystems.py +4 -3
- prefect/flow_engine.py +76 -14
- prefect/flows.py +222 -64
- prefect/futures.py +53 -7
- prefect/infrastructure/__init__.py +6 -0
- prefect/infrastructure/base.py +6 -0
- prefect/logging/loggers.py +1 -1
- prefect/results.py +50 -67
- prefect/runner/runner.py +93 -20
- prefect/runner/server.py +20 -22
- prefect/runner/submit.py +0 -8
- prefect/runtime/flow_run.py +38 -3
- prefect/serializers.py +3 -3
- prefect/settings.py +15 -45
- prefect/task_engine.py +77 -21
- prefect/task_runners.py +28 -16
- prefect/task_worker.py +6 -4
- prefect/tasks.py +30 -5
- prefect/transactions.py +18 -2
- prefect/utilities/asyncutils.py +9 -3
- prefect/utilities/engine.py +34 -1
- prefect/utilities/importtools.py +1 -1
- prefect/utilities/timeout.py +20 -5
- prefect/workers/base.py +98 -208
- prefect/workers/block.py +6 -0
- prefect/workers/cloud.py +6 -0
- prefect/workers/process.py +262 -4
- prefect/workers/server.py +27 -9
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/METADATA +4 -4
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/RECORD +49 -44
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/LICENSE +0 -0
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/WHEEL +0 -0
- {prefect_client-3.0.0rc9.dist-info → prefect_client-3.0.0rc11.dist-info}/top_level.txt +0 -0
prefect/workers/process.py
CHANGED
@@ -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.
|
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
|
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
|
16
|
+
def build_healthcheck_server(
|
16
17
|
worker: Union[BaseWorker, ProcessWorker],
|
17
|
-
query_interval_seconds:
|
18
|
+
query_interval_seconds: float,
|
18
19
|
log_level: str = "error",
|
19
|
-
)
|
20
|
+
):
|
20
21
|
"""
|
21
|
-
|
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
|
26
|
+
log_level (str): the log
|
26
27
|
"""
|
27
|
-
|
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
|
-
|
45
|
+
app.include_router(router)
|
45
46
|
|
46
|
-
uvicorn.
|
47
|
-
|
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.
|
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.
|
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
|
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
|
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=
|
8
|
+
prefect/context.py,sha256=40FLSXI3Qd9dMwP8nQ7fGZFKpQIuEkjTpekT4V1MvF8,19942
|
8
9
|
prefect/engine.py,sha256=BpmDbe6miZcTl1vRkxfCPYcWSXADLigGPCagFwucMz0,1976
|
9
|
-
prefect/exceptions.py,sha256=
|
10
|
-
prefect/filesystems.py,sha256=
|
11
|
-
prefect/flow_engine.py,sha256=
|
10
|
+
prefect/exceptions.py,sha256=3s69Z_IC3HKF6BKxcHrMPXkKdYwfbEfaTjy4-5LOtQ0,11132
|
11
|
+
prefect/filesystems.py,sha256=rbFvlqHXeeo71nK1Y5I0-ucmGOYUcdkbb6N2vpsRcWE,17229
|
12
|
+
prefect/flow_engine.py,sha256=pty-TJxjlJgk5diKXR3aIdjQNQkFZH-QN5HGxSvc-iQ,29189
|
12
13
|
prefect/flow_runs.py,sha256=EaXRIQTOnwnA0fO7_EjwafFRmS57K_CRy0Xsz3JDIhc,16070
|
13
|
-
prefect/flows.py,sha256=
|
14
|
-
prefect/futures.py,sha256=
|
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=
|
21
|
-
prefect/serializers.py,sha256=
|
22
|
-
prefect/settings.py,sha256=
|
21
|
+
prefect/results.py,sha256=gpX2pGIYyVfxMaVJkic5i1KbJ4RBARAoIizDL_C3auI,26152
|
22
|
+
prefect/serializers.py,sha256=Lo41EM0_qGzcfB_63390Izeo3DdK6cY6VZfxa9hpSGQ,8712
|
23
|
+
prefect/settings.py,sha256=5H6yQqtql9GWHp1wFCaDnejfdrzd2v-9CPOHD7TA8yU,69607
|
23
24
|
prefect/states.py,sha256=lw22xucH46cN9stkxiV9ByIvq689mH5iL3gErri-Y18,22207
|
24
|
-
prefect/task_engine.py,sha256=
|
25
|
-
prefect/task_runners.py,sha256=
|
25
|
+
prefect/task_engine.py,sha256=94Acrmq04i-KjJtSa72_ofGAEfs_lKBAYqhRww0jH24,34957
|
26
|
+
prefect/task_runners.py,sha256=W1n0yMwbDIqnvffFVJADo9MGEbLaYkzWk52rqgnkMY4,15019
|
26
27
|
prefect/task_runs.py,sha256=eDWYH5H1K4SyduhKmn3GzO6vM3fZSwOZxAb8KhkMGsk,7798
|
27
|
-
prefect/task_worker.py,sha256=
|
28
|
-
prefect/tasks.py,sha256=
|
29
|
-
prefect/transactions.py,sha256=
|
28
|
+
prefect/task_worker.py,sha256=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=
|
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=
|
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=
|
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=
|
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=
|
88
|
-
prefect/concurrency/events.py,sha256=
|
89
|
-
prefect/concurrency/services.py,sha256=
|
90
|
-
prefect/concurrency/sync.py,sha256=
|
91
|
-
prefect/deployments/__init__.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
139
|
-
prefect/runner/server.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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
|
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=
|
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=
|
181
|
-
prefect/workers/
|
182
|
-
prefect/workers/
|
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.
|
185
|
-
prefect_client-3.0.
|
186
|
-
prefect_client-3.0.
|
187
|
-
prefect_client-3.0.
|
188
|
-
prefect_client-3.0.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|