From e7237abc0a4309d37d942b755fb49197188812c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pinto?= Date: Fri, 14 May 2021 21:30:43 +0200 Subject: [PATCH] Fix OSError: [WinError 6] The handle is invalid on Windows, close #1433 --- prompt_toolkit/eventloop/inputhook.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/prompt_toolkit/eventloop/inputhook.py b/prompt_toolkit/eventloop/inputhook.py index a6757ee295..17162d7850 100644 --- a/prompt_toolkit/eventloop/inputhook.py +++ b/prompt_toolkit/eventloop/inputhook.py @@ -26,6 +26,7 @@ import os import select import selectors +import sys import threading from asyncio import AbstractEventLoop, get_event_loop from selectors import BaseSelector @@ -41,6 +42,12 @@ ] +# Fix for https://github.com/prompt-toolkit/python-prompt-toolkit/issues/1433 +# As documented at https://github.com/encode/httpx/issues/914#issuecomment-622586610 +if sys.version_info[0] == 3 and sys.version_info[1] >= 8 and sys.platform.startswith('win'): + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) + + def new_eventloop_with_inputhook( inputhook: Callable[["InputHookContext"], None] ) -> AbstractEventLoop: