From: Kirill Podoprigora Date: Thu, 9 May 2024 15:20:46 +0000 (+0300) Subject: gh-118817: Fix `asyncio REPL` on Windows (#118819) X-Git-Tag: v3.14.0a1~1955 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c3643a121401d111bebd3e26d6f362ade2ed2a83;p=thirdparty%2FPython%2Fcpython.git gh-118817: Fix `asyncio REPL` on Windows (#118819) --- diff --git a/Lib/asyncio/__main__.py b/Lib/asyncio/__main__.py index cbc1d7c93ef7..9041b8b8316c 100644 --- a/Lib/asyncio/__main__.py +++ b/Lib/asyncio/__main__.py @@ -108,7 +108,7 @@ if __name__ == '__main__': try: import readline # NoQA except ImportError: - pass + readline = None interactive_hook = getattr(sys, "__interactivehook__", None) @@ -122,8 +122,9 @@ if __name__ == '__main__': except: pass else: - completer = rlcompleter.Completer(console.locals) - readline.set_completer(completer.complete) + if readline is not None: + completer = rlcompleter.Completer(console.locals) + readline.set_completer(completer.complete) repl_thread = REPLThread() repl_thread.daemon = True diff --git a/Lib/test/test_repl.py b/Lib/test/test_repl.py index 457279a4db68..340178366fc1 100644 --- a/Lib/test/test_repl.py +++ b/Lib/test/test_repl.py @@ -7,7 +7,7 @@ import subprocess from textwrap import dedent from test import support from test.support import cpython_only, has_subprocess_support, SuppressCrashReport -from test.support.script_helper import kill_python +from test.support.script_helper import kill_python, assert_python_ok from test.support.import_helper import import_module @@ -195,6 +195,9 @@ class TestInteractiveInterpreter(unittest.TestCase): expected = "(30, None, [\'def foo(x):\\n\', \' return x + 1\\n\', \'\\n\'], \'\')" self.assertIn(expected, output, expected) + def test_asyncio_repl_is_ok(self): + assert_python_ok("-m", "asyncio") + class TestInteractiveModeSyntaxErrors(unittest.TestCase):