prefect-client 3.4.6.dev1__py3-none-any.whl → 3.4.7.dev1__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/_build_info.py +3 -3
- prefect/context.py +10 -3
- prefect/futures.py +25 -4
- prefect/server/api/templates.py +8 -2
- prefect/settings/models/server/services.py +26 -0
- prefect/task_engine.py +56 -26
- {prefect_client-3.4.6.dev1.dist-info → prefect_client-3.4.7.dev1.dist-info}/METADATA +1 -1
- {prefect_client-3.4.6.dev1.dist-info → prefect_client-3.4.7.dev1.dist-info}/RECORD +10 -10
- {prefect_client-3.4.6.dev1.dist-info → prefect_client-3.4.7.dev1.dist-info}/WHEEL +0 -0
- {prefect_client-3.4.6.dev1.dist-info → prefect_client-3.4.7.dev1.dist-info}/licenses/LICENSE +0 -0
prefect/_build_info.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Generated by versioningit
|
2
|
-
__version__ = "3.4.
|
3
|
-
__build_date__ = "2025-06-
|
4
|
-
__git_commit__ = "
|
2
|
+
__version__ = "3.4.7.dev1"
|
3
|
+
__build_date__ = "2025-06-12 08:09:28.422983+00:00"
|
4
|
+
__git_commit__ = "0a7d010a384a8584787c9be27eaaa8cfc63f2d34"
|
5
5
|
__dirty__ = False
|
prefect/context.py
CHANGED
@@ -492,6 +492,7 @@ class AssetContext(ContextModel):
|
|
492
492
|
materialized_by: Optional[str] = None
|
493
493
|
task_run_id: Optional[UUID] = None
|
494
494
|
materialization_metadata: dict[str, dict[str, Any]] = Field(default_factory=dict)
|
495
|
+
copy_to_child_ctx: bool = False
|
495
496
|
|
496
497
|
__var__: ClassVar[ContextVar[Self]] = ContextVar("asset_context")
|
497
498
|
|
@@ -501,6 +502,7 @@ class AssetContext(ContextModel):
|
|
501
502
|
task: "Task[Any, Any]",
|
502
503
|
task_run_id: UUID,
|
503
504
|
task_inputs: Optional[dict[str, set[Any]]] = None,
|
505
|
+
copy_to_child_ctx: bool = False,
|
504
506
|
) -> "AssetContext":
|
505
507
|
"""
|
506
508
|
Create an AssetContext from a task and its resolved inputs.
|
@@ -509,6 +511,7 @@ class AssetContext(ContextModel):
|
|
509
511
|
task: The task instance
|
510
512
|
task_run_id: The task run ID
|
511
513
|
task_inputs: The resolved task inputs (TaskRunResult objects)
|
514
|
+
copy_to_child_ctx: Whether this context should be copied on a child AssetContext
|
512
515
|
|
513
516
|
Returns:
|
514
517
|
Configured AssetContext
|
@@ -518,13 +521,16 @@ class AssetContext(ContextModel):
|
|
518
521
|
|
519
522
|
upstream_assets: set[Asset] = set()
|
520
523
|
|
521
|
-
# Get upstream assets from engine context instead of TaskRunResult.assets
|
522
524
|
flow_ctx = FlowRunContext.get()
|
523
525
|
if task_inputs and flow_ctx:
|
524
|
-
for inputs in task_inputs.
|
526
|
+
for name, inputs in task_inputs.items():
|
527
|
+
# Parent task runs are not dependencies
|
528
|
+
# that we want to track
|
529
|
+
if name == "__parents__":
|
530
|
+
continue
|
531
|
+
|
525
532
|
for task_input in inputs:
|
526
533
|
if isinstance(task_input, TaskRunResult):
|
527
|
-
# Look up assets in the engine context
|
528
534
|
task_assets = flow_ctx.task_run_assets.get(task_input.id)
|
529
535
|
if task_assets:
|
530
536
|
upstream_assets.update(task_assets)
|
@@ -541,6 +547,7 @@ class AssetContext(ContextModel):
|
|
541
547
|
if isinstance(task, MaterializingTask)
|
542
548
|
else None,
|
543
549
|
task_run_id=task_run_id,
|
550
|
+
copy_to_child_ctx=copy_to_child_ctx,
|
544
551
|
)
|
545
552
|
ctx.update_tracked_assets()
|
546
553
|
|
prefect/futures.py
CHANGED
@@ -272,9 +272,23 @@ class PrefectDistributedFuture(PrefectTaskRunFuture[R]):
|
|
272
272
|
self.task_run_id,
|
273
273
|
)
|
274
274
|
await TaskRunWaiter.wait_for_task_run(self._task_run_id, timeout=timeout)
|
275
|
+
|
276
|
+
# After the waiter returns, we expect the task to be complete.
|
277
|
+
# However, there may be a small delay before the API reflects the final state
|
278
|
+
# due to eventual consistency between the event system and the API.
|
279
|
+
# We'll read the state and only cache it if it's final.
|
275
280
|
task_run = await client.read_task_run(task_run_id=self._task_run_id)
|
276
|
-
if task_run.state.is_final():
|
281
|
+
if task_run.state and task_run.state.is_final():
|
277
282
|
self._final_state = task_run.state
|
283
|
+
else:
|
284
|
+
# Don't cache non-final states to avoid persisting stale data.
|
285
|
+
# result_async() will handle reading the state again if needed.
|
286
|
+
logger.debug(
|
287
|
+
"Task run %s state not yet final after wait (state: %s). "
|
288
|
+
"State will be re-read when needed.",
|
289
|
+
self.task_run_id,
|
290
|
+
task_run.state.type if task_run.state else "Unknown",
|
291
|
+
)
|
278
292
|
return
|
279
293
|
|
280
294
|
def result(
|
@@ -294,9 +308,16 @@ class PrefectDistributedFuture(PrefectTaskRunFuture[R]):
|
|
294
308
|
if not self._final_state:
|
295
309
|
await self.wait_async(timeout=timeout)
|
296
310
|
if not self._final_state:
|
297
|
-
|
298
|
-
|
299
|
-
)
|
311
|
+
# If still no final state, try reading it directly as the
|
312
|
+
# state property does. This handles eventual consistency issues.
|
313
|
+
async with get_client() as client:
|
314
|
+
task_run = await client.read_task_run(task_run_id=self._task_run_id)
|
315
|
+
if task_run.state and task_run.state.is_final():
|
316
|
+
self._final_state = task_run.state
|
317
|
+
else:
|
318
|
+
raise TimeoutError(
|
319
|
+
f"Task run {self.task_run_id} did not complete within {timeout} seconds"
|
320
|
+
)
|
300
321
|
|
301
322
|
return await self._final_state.aresult(raise_on_failure=raise_on_failure)
|
302
323
|
|
prefect/server/api/templates.py
CHANGED
@@ -8,11 +8,17 @@ from prefect.server.utilities.user_templates import (
|
|
8
8
|
validate_user_template,
|
9
9
|
)
|
10
10
|
|
11
|
-
router: PrefectRouter = PrefectRouter(
|
11
|
+
router: PrefectRouter = PrefectRouter(tags=["Automations"])
|
12
12
|
|
13
13
|
|
14
|
+
# deprecated and can be removed after the ui removes its dependency on it
|
15
|
+
# use /templates/validate instead
|
14
16
|
@router.post(
|
15
|
-
"/validate",
|
17
|
+
"/automations/templates/validate",
|
18
|
+
response_class=Response,
|
19
|
+
)
|
20
|
+
@router.post(
|
21
|
+
"/templates/validate",
|
16
22
|
response_class=Response,
|
17
23
|
)
|
18
24
|
def validate_template(template: str = Body(default="")) -> Response:
|
@@ -448,6 +448,32 @@ class ServerServicesTriggersSettings(ServicesBaseSetting):
|
|
448
448
|
),
|
449
449
|
)
|
450
450
|
|
451
|
+
pg_notify_reconnect_interval_seconds: int = Field(
|
452
|
+
default=10,
|
453
|
+
description="""
|
454
|
+
The number of seconds to wait before reconnecting to the PostgreSQL NOTIFY/LISTEN
|
455
|
+
connection after an error. Only used when using PostgreSQL as the database.
|
456
|
+
Defaults to `10`.
|
457
|
+
""",
|
458
|
+
validation_alias=AliasChoices(
|
459
|
+
AliasPath("pg_notify_reconnect_interval_seconds"),
|
460
|
+
"prefect_server_services_triggers_pg_notify_reconnect_interval_seconds",
|
461
|
+
),
|
462
|
+
)
|
463
|
+
|
464
|
+
pg_notify_heartbeat_interval_seconds: int = Field(
|
465
|
+
default=5,
|
466
|
+
description="""
|
467
|
+
The number of seconds between heartbeat checks for the PostgreSQL NOTIFY/LISTEN
|
468
|
+
connection to ensure it's still alive. Only used when using PostgreSQL as the database.
|
469
|
+
Defaults to `5`.
|
470
|
+
""",
|
471
|
+
validation_alias=AliasChoices(
|
472
|
+
AliasPath("pg_notify_heartbeat_interval_seconds"),
|
473
|
+
"prefect_server_services_triggers_pg_notify_heartbeat_interval_seconds",
|
474
|
+
),
|
475
|
+
)
|
476
|
+
|
451
477
|
|
452
478
|
class ServerServicesSettings(PrefectBaseSettings):
|
453
479
|
"""
|
prefect/task_engine.py
CHANGED
@@ -454,8 +454,6 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
454
454
|
result = state.data
|
455
455
|
|
456
456
|
link_state_to_result(new_state, result)
|
457
|
-
if asset_context := AssetContext.get():
|
458
|
-
asset_context.emit_events(new_state)
|
459
457
|
|
460
458
|
# emit a state change event
|
461
459
|
self._last_event = emit_task_run_state_change_event(
|
@@ -641,15 +639,6 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
641
639
|
else:
|
642
640
|
persist_result = should_persist_result()
|
643
641
|
|
644
|
-
asset_context = AssetContext.get()
|
645
|
-
if not asset_context:
|
646
|
-
asset_context = AssetContext.from_task_and_inputs(
|
647
|
-
task=self.task,
|
648
|
-
task_run_id=self.task_run.id,
|
649
|
-
task_inputs=self.task_run.task_inputs,
|
650
|
-
)
|
651
|
-
stack.enter_context(asset_context)
|
652
|
-
|
653
642
|
stack.enter_context(
|
654
643
|
TaskRunContext(
|
655
644
|
task=self.task,
|
@@ -672,6 +661,24 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
672
661
|
|
673
662
|
yield
|
674
663
|
|
664
|
+
@contextmanager
|
665
|
+
def asset_context(self):
|
666
|
+
parent_asset_ctx = AssetContext.get()
|
667
|
+
|
668
|
+
if parent_asset_ctx and parent_asset_ctx.copy_to_child_ctx:
|
669
|
+
asset_ctx = parent_asset_ctx.model_copy()
|
670
|
+
asset_ctx.copy_to_child_ctx = False
|
671
|
+
else:
|
672
|
+
asset_ctx = AssetContext.from_task_and_inputs(
|
673
|
+
self.task, self.task_run.id, self.task_run.task_inputs
|
674
|
+
)
|
675
|
+
|
676
|
+
with asset_ctx as ctx:
|
677
|
+
try:
|
678
|
+
yield
|
679
|
+
finally:
|
680
|
+
ctx.emit_events(self.state)
|
681
|
+
|
675
682
|
@contextmanager
|
676
683
|
def initialize_run(
|
677
684
|
self,
|
@@ -1032,8 +1039,6 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
1032
1039
|
result = new_state.data
|
1033
1040
|
|
1034
1041
|
link_state_to_result(new_state, result)
|
1035
|
-
if asset_context := AssetContext.get():
|
1036
|
-
asset_context.emit_events(new_state)
|
1037
1042
|
|
1038
1043
|
# emit a state change event
|
1039
1044
|
self._last_event = emit_task_run_state_change_event(
|
@@ -1219,15 +1224,6 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
1219
1224
|
else:
|
1220
1225
|
persist_result = should_persist_result()
|
1221
1226
|
|
1222
|
-
asset_context = AssetContext.get()
|
1223
|
-
if not asset_context:
|
1224
|
-
asset_context = AssetContext.from_task_and_inputs(
|
1225
|
-
task=self.task,
|
1226
|
-
task_run_id=self.task_run.id,
|
1227
|
-
task_inputs=self.task_run.task_inputs,
|
1228
|
-
)
|
1229
|
-
stack.enter_context(asset_context)
|
1230
|
-
|
1231
1227
|
stack.enter_context(
|
1232
1228
|
TaskRunContext(
|
1233
1229
|
task=self.task,
|
@@ -1249,6 +1245,24 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
1249
1245
|
|
1250
1246
|
yield
|
1251
1247
|
|
1248
|
+
@asynccontextmanager
|
1249
|
+
async def asset_context(self):
|
1250
|
+
parent_asset_ctx = AssetContext.get()
|
1251
|
+
|
1252
|
+
if parent_asset_ctx and parent_asset_ctx.copy_to_child_ctx:
|
1253
|
+
asset_ctx = parent_asset_ctx.model_copy()
|
1254
|
+
asset_ctx.copy_to_child_ctx = False
|
1255
|
+
else:
|
1256
|
+
asset_ctx = AssetContext.from_task_and_inputs(
|
1257
|
+
self.task, self.task_run.id, self.task_run.task_inputs
|
1258
|
+
)
|
1259
|
+
|
1260
|
+
with asset_ctx as ctx:
|
1261
|
+
try:
|
1262
|
+
yield
|
1263
|
+
finally:
|
1264
|
+
ctx.emit_events(self.state)
|
1265
|
+
|
1252
1266
|
@asynccontextmanager
|
1253
1267
|
async def initialize_run(
|
1254
1268
|
self,
|
@@ -1465,7 +1479,11 @@ def run_task_sync(
|
|
1465
1479
|
with engine.start(task_run_id=task_run_id, dependencies=dependencies):
|
1466
1480
|
while engine.is_running():
|
1467
1481
|
run_coro_as_sync(engine.wait_until_ready())
|
1468
|
-
with
|
1482
|
+
with (
|
1483
|
+
engine.asset_context(),
|
1484
|
+
engine.run_context(),
|
1485
|
+
engine.transaction_context() as txn,
|
1486
|
+
):
|
1469
1487
|
engine.call_task_fn(txn)
|
1470
1488
|
|
1471
1489
|
return engine.state if return_type == "state" else engine.result()
|
@@ -1492,7 +1510,11 @@ async def run_task_async(
|
|
1492
1510
|
async with engine.start(task_run_id=task_run_id, dependencies=dependencies):
|
1493
1511
|
while engine.is_running():
|
1494
1512
|
await engine.wait_until_ready()
|
1495
|
-
async with
|
1513
|
+
async with (
|
1514
|
+
engine.asset_context(),
|
1515
|
+
engine.run_context(),
|
1516
|
+
engine.transaction_context() as txn,
|
1517
|
+
):
|
1496
1518
|
await engine.call_task_fn(txn)
|
1497
1519
|
|
1498
1520
|
return engine.state if return_type == "state" else await engine.result()
|
@@ -1522,7 +1544,11 @@ def run_generator_task_sync(
|
|
1522
1544
|
with engine.start(task_run_id=task_run_id, dependencies=dependencies):
|
1523
1545
|
while engine.is_running():
|
1524
1546
|
run_coro_as_sync(engine.wait_until_ready())
|
1525
|
-
with
|
1547
|
+
with (
|
1548
|
+
engine.asset_context(),
|
1549
|
+
engine.run_context(),
|
1550
|
+
engine.transaction_context() as txn,
|
1551
|
+
):
|
1526
1552
|
# TODO: generators should default to commit_mode=OFF
|
1527
1553
|
# because they are dynamic by definition
|
1528
1554
|
# for now we just prevent this branch explicitly
|
@@ -1576,7 +1602,11 @@ async def run_generator_task_async(
|
|
1576
1602
|
async with engine.start(task_run_id=task_run_id, dependencies=dependencies):
|
1577
1603
|
while engine.is_running():
|
1578
1604
|
await engine.wait_until_ready()
|
1579
|
-
async with
|
1605
|
+
async with (
|
1606
|
+
engine.asset_context(),
|
1607
|
+
engine.run_context(),
|
1608
|
+
engine.transaction_context() as txn,
|
1609
|
+
):
|
1580
1610
|
# TODO: generators should default to commit_mode=OFF
|
1581
1611
|
# because they are dynamic by definition
|
1582
1612
|
# for now we just prevent this branch explicitly
|
@@ -1,7 +1,7 @@
|
|
1
1
|
prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
|
2
2
|
prefect/__init__.py,sha256=iCdcC5ZmeewikCdnPEP6YBAjPNV5dvfxpYCTpw30Hkw,3685
|
3
3
|
prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
|
4
|
-
prefect/_build_info.py,sha256=
|
4
|
+
prefect/_build_info.py,sha256=niigVOkmWBXfwYlJ17kT2BFC_ZqjkhTSIE7chQTHfbU,185
|
5
5
|
prefect/_result_records.py,sha256=S6QmsODkehGVSzbMm6ig022PYbI6gNKz671p_8kBYx4,7789
|
6
6
|
prefect/_versioning.py,sha256=YqR5cxXrY4P6LM1Pmhd8iMo7v_G2KJpGNdsf4EvDFQ0,14132
|
7
7
|
prefect/_waiters.py,sha256=Ia2ITaXdHzevtyWIgJoOg95lrEXQqNEOquHvw3T33UQ,9026
|
@@ -9,14 +9,14 @@ prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
|
9
9
|
prefect/artifacts.py,sha256=dMBUOAWnUamzjb5HSqwB5-GR2Qb-Gxee26XG5NDCUuw,22720
|
10
10
|
prefect/automations.py,sha256=ZzPxn2tINdlXTQo805V4rIlbXuNWxd7cdb3gTJxZIeY,12567
|
11
11
|
prefect/cache_policies.py,sha256=jH1aDW6vItTcsEytuTCrNYyjbq87IQPwdOgF0yxiUts,12749
|
12
|
-
prefect/context.py,sha256=
|
12
|
+
prefect/context.py,sha256=9IbfzBrhd6nqVicgcqeAqihRxKUYYZDg-psTByCYcZo,32589
|
13
13
|
prefect/engine.py,sha256=uB5JN4l045i5JTlRQNT1x7MwlSiGQ5Bop2Q6jHHOgxY,3699
|
14
14
|
prefect/exceptions.py,sha256=wZLQQMRB_DyiYkeEdIC5OKwbba5A94Dlnics-lrWI7A,11581
|
15
15
|
prefect/filesystems.py,sha256=v5YqGB4uXf9Ew2VuB9VCSkawvYMMVvEtZf7w1VmAmr8,18036
|
16
16
|
prefect/flow_engine.py,sha256=hZpTYEtwTPMtwVoTCrfD93igN7rlKeG_0kyCvdU4aYE,58876
|
17
17
|
prefect/flow_runs.py,sha256=d3jfmrIPP3C19IJREvpkuN6fxksX3Lzo-LlHOB-_E2I,17419
|
18
18
|
prefect/flows.py,sha256=xJKlXgVVdlZh45uE73PjA90qqmArVM2hzHgsniu02CY,120945
|
19
|
-
prefect/futures.py,sha256=
|
19
|
+
prefect/futures.py,sha256=U1SdxwOWNdQz_xtlZ6J-_zjRntxbqu7kz53YRov-Dew,25000
|
20
20
|
prefect/main.py,sha256=8V-qLB4GjEVCkGRgGXeaIk-JIXY8Z9FozcNluj4Sm9E,2589
|
21
21
|
prefect/plugins.py,sha256=FPRLR2mWVBMuOnlzeiTD9krlHONZH2rtYLD753JQDNQ,2516
|
22
22
|
prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -24,7 +24,7 @@ prefect/results.py,sha256=Amm3TQu8U_oakSn__tCogIJ5DsTj0w_kLzuENWsxK6A,36824
|
|
24
24
|
prefect/schedules.py,sha256=dhq4OhImRvcmtxF7UH1m8RbwYdHT5RQsp_FrxVXfODE,7289
|
25
25
|
prefect/serializers.py,sha256=lU9A1rGEfAfhr8nTl3rf-K7ED78QNShXOrmRBhgNk3Y,9566
|
26
26
|
prefect/states.py,sha256=rh7l1bnIYpTXdlXt5nnpz66y9KLjBWAJrN9Eo5RwgQs,26023
|
27
|
-
prefect/task_engine.py,sha256=
|
27
|
+
prefect/task_engine.py,sha256=j7i_UiLvijV4Vut1Bw5-72kSlOqAPxqeS7-3cMVEBPA,65509
|
28
28
|
prefect/task_runners.py,sha256=ptgE5wuXg_IVHM0j7d6l7ELAVg3SXSy4vggnoHRF8dA,17040
|
29
29
|
prefect/task_runs.py,sha256=7LIzfo3fondCyEUpU05sYFN5IfpZigBDXrhG5yc-8t0,9039
|
30
30
|
prefect/task_worker.py,sha256=RifZ3bOl6ppoYPiOAd4TQp2_GEw9eDQoW483rq1q52Q,20805
|
@@ -227,7 +227,7 @@ prefect/server/api/server.py,sha256=xSi2km9KhhHPHSKEFHVntii0hRz2OINtB5zCUNajt6A,
|
|
227
227
|
prefect/server/api/task_run_states.py,sha256=e63OPpxPudv_CIB5oKr8Z8rfQ-Osjm9Zq0iHe8obnMo,1647
|
228
228
|
prefect/server/api/task_runs.py,sha256=86lXKGUJJSElhkVcxX-kbjctrNe98nUe3U0McDCfTMw,13904
|
229
229
|
prefect/server/api/task_workers.py,sha256=bFHWifk7IwWF3iPu_3HwKu0vLRrxHg42SZU7vYWOw9g,1061
|
230
|
-
prefect/server/api/templates.py,sha256=
|
230
|
+
prefect/server/api/templates.py,sha256=EW5aJOuvSXBeShd5VIygI1f9W0uTUpGb32ADrL9LG3k,1208
|
231
231
|
prefect/server/api/validation.py,sha256=HxSNyH8yb_tI-kOfjXESRjJp6WQK6hYWBJsaBxUvY34,14490
|
232
232
|
prefect/server/api/variables.py,sha256=SJaKuqInfQIEdMlJOemptBDN43KLFhlf_u9QwupDu7A,6185
|
233
233
|
prefect/server/api/work_queues.py,sha256=368YmggZbDYpD6-p4MXFvDniImEp1Tr4zejvmIA2lXM,7609
|
@@ -271,7 +271,7 @@ prefect/settings/models/server/ephemeral.py,sha256=rh8Py5Nxh-gq9KgfB7CDnIgT_nuOu
|
|
271
271
|
prefect/settings/models/server/events.py,sha256=9rdlbLz9SIg_easm1UcFTfX1seS935Xtv5d9y3r39Eo,5578
|
272
272
|
prefect/settings/models/server/flow_run_graph.py,sha256=PuAZqqdu6fzvrbUgXZzyntUH_Ii_bP7qezgcgvW7ULk,1146
|
273
273
|
prefect/settings/models/server/root.py,sha256=Dk_Zx4eGUy1h2cAetDKphnd6TWhDrK6DHOLJxdP7e1Y,5215
|
274
|
-
prefect/settings/models/server/services.py,sha256=
|
274
|
+
prefect/settings/models/server/services.py,sha256=Mb71MG5I1hPlCaJ54vNmHgU7Rxde2x8QeDQl9a8cGU4,18998
|
275
275
|
prefect/settings/models/server/tasks.py,sha256=_CaOUfh3WDXvUhmHXmR-MkTRaQqocZck4efmX74iOg8,2976
|
276
276
|
prefect/settings/models/server/ui.py,sha256=hShsi4rPBtdJA2WnT1Er0tWqu-e5wUum8NkNgucShkk,1867
|
277
277
|
prefect/telemetry/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
@@ -325,7 +325,7 @@ prefect/workers/cloud.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
|
325
325
|
prefect/workers/process.py,sha256=Yi5D0U5AQ51wHT86GdwtImXSefe0gJf3LGq4r4z9zwM,11090
|
326
326
|
prefect/workers/server.py,sha256=2pmVeJZiVbEK02SO6BEZaBIvHMsn6G8LzjW8BXyiTtk,1952
|
327
327
|
prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
|
328
|
-
prefect_client-3.4.
|
329
|
-
prefect_client-3.4.
|
330
|
-
prefect_client-3.4.
|
331
|
-
prefect_client-3.4.
|
328
|
+
prefect_client-3.4.7.dev1.dist-info/METADATA,sha256=MonfmnGhNyj5DVF9qenqZUAUOwPM4z7ZMQd7KIwpTPw,7517
|
329
|
+
prefect_client-3.4.7.dev1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
330
|
+
prefect_client-3.4.7.dev1.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
|
331
|
+
prefect_client-3.4.7.dev1.dist-info/RECORD,,
|
File without changes
|
{prefect_client-3.4.6.dev1.dist-info → prefect_client-3.4.7.dev1.dist-info}/licenses/LICENSE
RENAMED
File without changes
|