From 4f308ad4ef9340eb99510cb8e7fd3afe864f6be5 Mon Sep 17 00:00:00 2001 From: Waket Zheng Date: Wed, 17 Sep 2025 23:24:52 +0800 Subject: [PATCH 1/2] fix: windows raises NotImplementedError --- tortoise_cli/cli.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tortoise_cli/cli.py b/tortoise_cli/cli.py index e5a3a41..9955b98 100644 --- a/tortoise_cli/cli.py +++ b/tortoise_cli/cli.py @@ -1,6 +1,7 @@ from __future__ import annotations import contextlib +import platform import sys from collections.abc import AsyncGenerator @@ -11,6 +12,22 @@ from tortoise_cli import __version__, utils +def _patch_loop_factory_for_ptpython() -> None: + # This patch can be removed when [ptpython#258](https://github.com/prompt-toolkit/ptpython/issues?q=is%3Aissue%20state%3Aopen%20windows) fixed + from asyncio import get_event_loop_policy + + def do_nothing(*args, **kw) -> None: ... + + policy = get_event_loop_policy() + if loop_factory := getattr(policy, "_loop_factory", None): + for attr in ("add_signal_handler", "remove_signal_handler"): + setattr(loop_factory, attr, do_nothing) + + +if platform.system() == "Windows": + _patch_loop_factory_for_ptpython() + + @contextlib.asynccontextmanager async def aclose_tortoise() -> AsyncGenerator[None]: try: From 6bf85432706a5dba6cd370887668a5e92b2ad83c Mon Sep 17 00:00:00 2001 From: Waket Zheng Date: Thu, 18 Sep 2025 13:13:38 +0800 Subject: [PATCH 2/2] Fix typo --- tortoise_cli/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tortoise_cli/cli.py b/tortoise_cli/cli.py index 9955b98..8bcb830 100644 --- a/tortoise_cli/cli.py +++ b/tortoise_cli/cli.py @@ -13,7 +13,7 @@ def _patch_loop_factory_for_ptpython() -> None: - # This patch can be removed when [ptpython#258](https://github.com/prompt-toolkit/ptpython/issues?q=is%3Aissue%20state%3Aopen%20windows) fixed + # This patch can be removed when [prompt-toolkit/ptpython#582](https://github.com/prompt-toolkit/ptpython/issues/582) fixed from asyncio import get_event_loop_policy def do_nothing(*args, **kw) -> None: ...