prefect 3.7.8.dev1__py3-none-any.whl → 3.7.8.dev2__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 CHANGED
@@ -1,5 +1,5 @@
1
1
  # Generated by versioningit
2
- __version__ = "3.7.8.dev1"
3
- __build_date__ = "2026-07-06 09:30:01.920709+00:00"
4
- __git_commit__ = "013ae5c0f2eacadd8e72558ad1e9f4206fcf56bc"
2
+ __version__ = "3.7.8.dev2"
3
+ __build_date__ = "2026-07-07 09:14:19.574605+00:00"
4
+ __git_commit__ = "3f47d765fea655c92f2d700fedee8635ea2d4d2f"
5
5
  __dirty__ = False
@@ -19,7 +19,6 @@ class UIBundle:
19
19
  static_dir: str
20
20
  base_url: str
21
21
  cache_key: str
22
- mount_name: str
23
22
 
24
23
 
25
24
  def log_ui_static_copy_error(
@@ -43,7 +43,6 @@ from fastapi.openapi.utils import get_openapi
43
43
  from fastapi.responses import JSONResponse, RedirectResponse
44
44
  from fastapi.staticfiles import StaticFiles
45
45
  from packaging.version import Version
46
- from starlette.exceptions import HTTPException
47
46
  from typing_extensions import Self
48
47
 
49
48
  import prefect
@@ -176,21 +175,6 @@ def _install_sqlite_locked_log_filter() -> None:
176
175
  _SQLITE_LOCKED_LOG_FILTER = filter_
177
176
 
178
177
 
179
- class SPAStaticFiles(StaticFiles):
180
- """
181
- Implementation of `StaticFiles` for serving single page applications.
182
-
183
- Adds `get_response` handling to ensure that when a resource isn't found the
184
- application still returns the index.
185
- """
186
-
187
- async def get_response(self, path: str, scope: Any) -> Response:
188
- try:
189
- return await super().get_response(path, scope)
190
- except HTTPException:
191
- return await super().get_response("./index.html", scope)
192
-
193
-
194
178
  def _normalize_ui_base_url(base_url: str) -> str:
195
179
  if not base_url:
196
180
  return "/"
@@ -616,7 +600,6 @@ def create_ui_app(ephemeral: bool) -> FastAPI:
616
600
  static_dir=build_static_dir("v1", str(prefect.__ui_static_subpath__)),
617
601
  base_url=v1_base_url,
618
602
  cache_key=f"v1:{prefect.__version__}:{v1_base_url}",
619
- mount_name="ui_v1",
620
603
  ),
621
604
  UIBundle(
622
605
  version="v2",
@@ -624,7 +607,6 @@ def create_ui_app(ephemeral: bool) -> FastAPI:
624
607
  static_dir=build_static_dir("v2", str(prefect.__ui_v2_static_subpath__)),
625
608
  base_url=v2_base_url,
626
609
  cache_key=f"v2:{prefect.__version__}:{v2_base_url}",
627
- mount_name="ui_v2",
628
610
  ),
629
611
  ]
630
612
 
@@ -767,10 +749,10 @@ def create_ui_app(ephemeral: bool) -> FastAPI:
767
749
  if bundle is None:
768
750
  continue
769
751
 
770
- ui_app.mount(
752
+ ui_app.frontend(
771
753
  bundle.base_url,
772
- SPAStaticFiles(directory=bundle.static_dir),
773
- name=bundle.mount_name,
754
+ directory=bundle.static_dir,
755
+ fallback="index.html",
774
756
  )
775
757
 
776
758
  return ui_app
@@ -484,13 +484,18 @@ async def consumer(
484
484
  raise
485
485
 
486
486
  async def flush_periodically():
487
- try:
488
- while True:
487
+ while True:
488
+ try:
489
489
  await asyncio.sleep(flush_every)
490
490
  if queue.qsize():
491
491
  await flush()
492
- except asyncio.CancelledError:
493
- return
492
+ except asyncio.CancelledError:
493
+ return
494
+ except Exception:
495
+ # flush() re-raises when events are dropped; this task is never
496
+ # awaited, so letting that propagate would kill periodic
497
+ # flushing silently and strand queued events (issue #21057)
498
+ logger.exception("Error during periodic flush; continuing")
494
499
 
495
500
  async def message_handler(message: Message):
496
501
  event: ReceivedEvent = ReceivedEvent.model_validate_json(message.data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect
3
- Version: 3.7.8.dev1
3
+ Version: 3.7.8.dev2
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
@@ -37,7 +37,7 @@ Requires-Dist: cyclopts>=4.8.0
37
37
  Requires-Dist: dateparser<2.0.0,>=1.1.1
38
38
  Requires-Dist: docker<8.0,>=4.0
39
39
  Requires-Dist: exceptiongroup>=1.0.0
40
- Requires-Dist: fastapi<1.0.0,>=0.111.0
40
+ Requires-Dist: fastapi<1.0.0,>=0.139.0
41
41
  Requires-Dist: fsspec>=2022.5.0
42
42
  Requires-Dist: graphviz>=0.20.1
43
43
  Requires-Dist: griffe<3.0.0,>=0.49.0
@@ -2,7 +2,7 @@ prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
2
2
  prefect/AGENTS.md,sha256=H7j73ZMACxsIfHXO6pTAdyQy2yi7XGnADtgwcMqMVO4,11049
3
3
  prefect/__init__.py,sha256=Z8rwfLbEOLh-5WcznTZP3FG2-9UgGZxY-prj8sL0-Qk,6828
4
4
  prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
5
- prefect/_build_info.py,sha256=Iw5BwML7We9L7nqdEQK14bmg9js-tXXo2RPX5IfkZ5s,185
5
+ prefect/_build_info.py,sha256=w7179WVe7MRkK0cIlgyfo5rc890eQ_MHOvQYRx8UBBU,185
6
6
  prefect/_flow_run_suspension.py,sha256=5zTTB7ZIBHzoS0pVrhNn23-9hK51qZ3CQA6C-azluC0,4144
7
7
  prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
8
8
  prefect/artifacts.py,sha256=ZdMLJeJGK82hibtRzbsVa-g95dMa0D2UP1LiESoXmf4,23951
@@ -379,7 +379,7 @@ prefect/server/collection_blocks_data.json,sha256=R1Vx6FFjaUr-WzgqVwduDMWQTiDdPB
379
379
  prefect/server/exceptions.py,sha256=zfbfOdF-PsqnRUqxUXJ__zD905XJx1egFBrrUbIfkRA,735
380
380
  prefect/server/task_queue.py,sha256=zZYaXTsHPkBH_YrxOz92V7MzCHgaGcRkDjldl7icRZs,3527
381
381
  prefect/server/api/__init__.py,sha256=yDnxUpok-8We-1pJvWlTqz3zBMFyFtV6ie8_na5vqP4,1739
382
- prefect/server/api/_ui_static.py,sha256=2X1Ug7vw4aTKEBEr3nW0_9HPVpqZqhzpPaOBEKVJLU0,2639
382
+ prefect/server/api/_ui_static.py,sha256=5iyrCo5MgKhHLdu7tr569ND_Mwo_BP7Fa0ieRgzR06w,2619
383
383
  prefect/server/api/admin.py,sha256=iLhTA8yOysdIxaX-zHX0Fo2wC-flqgcOGCbtZZAt5Dw,3078
384
384
  prefect/server/api/artifacts.py,sha256=B19bxxnADiVTo0XtzvsbAHHtsJwr7S1IunjGl-qsSd4,7314
385
385
  prefect/server/api/automations.py,sha256=KlQuhEOOKkxAI6f5aZedCKMELi99MdknulIleRP-JVE,8285
@@ -404,7 +404,7 @@ prefect/server/api/middleware.py,sha256=BxXyJKBt2AEo48k-waZjspPnn7DCnCwQ80qxnDQA
404
404
  prefect/server/api/root.py,sha256=c_av5N4MkjSfFn1fI9F9Rpn6O_haBd6mshoF8OTvNqo,1358
405
405
  prefect/server/api/run_history.py,sha256=EW-GTPxZAQ5zXiAqHzmS-iAN_Bn6ZSgVQksDT-ZTsyc,5995
406
406
  prefect/server/api/saved_searches.py,sha256=tGBS8p6DjFOzwEkRhMKdxQuT900lNqA7Rr3walYuv5w,3232
407
- prefect/server/api/server.py,sha256=JhztKHI9YCXa1NIy2eYKmteGTqAM-Kc4d-pq_GP10lE,45535
407
+ prefect/server/api/server.py,sha256=MNcVciXf51KoRnwIUd2agdABnO9M3tgO66nxLmJ6sHQ,44920
408
408
  prefect/server/api/task_run_states.py,sha256=QQaDoNbeAnOVh799p46a5wXICWphBRoasNhtKsc0qNo,1647
409
409
  prefect/server/api/task_runs.py,sha256=TjchduLIa4jjgUi7wi0Xe6R0Z_SbML-gQWnxxI6VYCg,14853
410
410
  prefect/server/api/task_workers.py,sha256=xFj0jRCLutccoMU6q4sMeY6pLFtrjytXL6Y7Sx233gw,1064
@@ -746,7 +746,7 @@ prefect/server/services/pause_expirations.py,sha256=qa-Mob_CTEoaQz8KKpoT6lpwPDdX
746
746
  prefect/server/services/perpetual_services.py,sha256=HA8WVTsWxKYgWqSOBw4pSD_UWj460Ssfrgnh0AvN8Us,5234
747
747
  prefect/server/services/repossessor.py,sha256=Dt94fZTQeVzNBLYV7_Yf9AfWMwflpFqhN6lFeGLCIRQ,2839
748
748
  prefect/server/services/scheduler.py,sha256=xLZTlxl9fbevh1Qr4ddsmU8AQLvDPk2viUX63pgE1Tw,13185
749
- prefect/server/services/task_run_recorder.py,sha256=eIBaIO2NqSnGjlhuupU8bx9lxNMBYUUsIaQCbnMIIb0,20963
749
+ prefect/server/services/task_run_recorder.py,sha256=Okicc8thyDnCm6VUuFmDhXe7GpmBv5LTSxPljSS6Q70,21306
750
750
  prefect/server/services/telemetry.py,sha256=qMcGIN3iWxB4kAMBKrPep-uxhoQ4ObD0x4FI8oHgY0c,3949
751
751
  prefect/server/ui/decorative_iso-pixel-grid_dark.svg,sha256=8z565xPAuU07Fmi_13FP5UAP2_pK6RxBTvQEWj8XFew,35323
752
752
  prefect/server/ui/decorative_iso-pixel-grid_light.svg,sha256=pe7rIharkwgKS9kuWSK6QoG8MFTcXESgChTA1JIy7J4,33883
@@ -1394,8 +1394,8 @@ prefect/workers/_worker_channel/_protocol.py,sha256=GpCNh1o3qmmqHA_UOOTge1QVC6IR
1394
1394
  prefect/workers/_worker_channel/_state.py,sha256=eQTFZtAVDZH1vVWps3SdeY6aW3qu2wx1UKYQXK3AyuE,5369
1395
1395
  prefect/workers/_worker_channel/_sync.py,sha256=G5G8_UaQYbeLebi5Mb1Z_KgGfXfyjXo5uT9la5_zwqY,14984
1396
1396
  prefect/workers/_worker_channel/_transport.py,sha256=_8aWX16tdbZcpqBg4HCX_vCzl2FX47jsYPKMPLAANRA,9181
1397
- prefect-3.7.8.dev1.dist-info/METADATA,sha256=daNpokBVAIB8kt49EpMine9Wks0PXnrXHurzID7F4Tw,14030
1398
- prefect-3.7.8.dev1.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
1399
- prefect-3.7.8.dev1.dist-info/entry_points.txt,sha256=HlY8up83iIq2vU2r33a0qSis4eOFSyb1mRH4l7Xt9X8,126
1400
- prefect-3.7.8.dev1.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
1401
- prefect-3.7.8.dev1.dist-info/RECORD,,
1397
+ prefect-3.7.8.dev2.dist-info/METADATA,sha256=PEjGW1KfvJ7mbVRcxw1R6mSUQFhx9GsK0yOqeoS4pvQ,14030
1398
+ prefect-3.7.8.dev2.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
1399
+ prefect-3.7.8.dev2.dist-info/entry_points.txt,sha256=HlY8up83iIq2vU2r33a0qSis4eOFSyb1mRH4l7Xt9X8,126
1400
+ prefect-3.7.8.dev2.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
1401
+ prefect-3.7.8.dev2.dist-info/RECORD,,