From c1c91b91ce903db3f5a2b4b70eab74deca764ad6 Mon Sep 17 00:00:00 2001 From: Jeff Glass Date: Mon, 30 Jun 2025 10:28:14 -0500 Subject: [PATCH] Check for event loop and start new loop if necessary --- src/textual_dev/server.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/textual_dev/server.py b/src/textual_dev/server.py index 69a8d2d..8474a23 100644 --- a/src/textual_dev/server.py +++ b/src/textual_dev/server.py @@ -46,12 +46,19 @@ def _run_devtools( def noop_print(_: str) -> None: pass + # As of Python 3.14, get_event_loop() no longer implicitly starts + # an new event loop if none is running. (cpython gh-126353) + try: + loop = asyncio.get_event_loop() + except RuntimeError: + loop = asyncio.new_event_loop() + try: run_app( app, port=DEVTOOLS_PORT if port is None else port, print=noop_print, - loop=asyncio.get_event_loop(), + loop=loop, ) except OSError: from rich import print