You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
asyncio REPL fails to run with TERM=dumb or PYTHON_BASIC_REPL in 3.13.0b2 #120842
$ TERM=dumb python -m asyncio
asyncio REPL 3.13.0b2 (main, Jun 13 2024, 04:41:44) [GCC 12.2.0] on linux
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
Exception in thread Interactive thread:
exiting asyncio REPL...
Exception ignored in atexit callback <function register_readline.<locals>.write_history at 0x7f8eed3b93a0>:
Traceback (most recent call last):
File "<frozen site>", line 538, in write_history
File "/usr/local/lib/python3.13/_pyrepl/readline.py", line 435, in write_history_file
Traceback (most recent call last):
history = self.get_reader().get_trimmed_history(maxlength)
File "/usr/local/lib/python3.13/_pyrepl/readline.py", line 349, in get_reader
File "/usr/local/lib/python3.13/asyncio/__main__.py", line 117, in run
raise RuntimeError(err)
RuntimeError: terminal doesn't have the required clear capability
console = Console(self.f_in, self.f_out, encoding=ENCODING)
File "/usr/local/lib/python3.13/_pyrepl/unix_console.py", line 172, in __init__
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/threading.py", line 1039, in _bootstrap_inner
self.run()
~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/__main__.py", line 119, in run
console.interact(banner="", exitmsg=exit_message)
^^^^^^^^^^^^
NameError: name 'exit_message' is not defined
self._clear = _my_getstr("clear")
File "/usr/local/lib/python3.13/_pyrepl/unix_console.py", line 165, in _my_getstr
raise InvalidTerminal(
_pyrepl.unix_console.InvalidTerminal: terminal doesn't have the required clear capability
Linux: Using PYTHON_BASIC_REPL=1:
$ PYTHON_BASIC_REPL=1 python -m asyncio
asyncio REPL 3.13.0b2 (main, Jun 13 2024, 04:41:44) [GCC 12.2.0] on linux
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
Exception in thread Interactive thread:
exiting asyncio REPL...
asyncio REPL 3.14.0a0 (heads/main:6239d41527, Jul 6 2024, 20:42:50) [GCC 14.1.1 20240522] on linux
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
>>>
exiting asyncio REPL...
Exception ignored in atexit callback <function register_readline.<locals>.write_history at 0x7ce232fa9850>:
Traceback (most recent call last):
File "/home/manjusaka/Documents/projects/cpython/Lib/site.py", line 537, in write_history
_pyrepl.readline.write_history_file(history)
File "/home/manjusaka/Documents/projects/cpython/Lib/_pyrepl/readline.py", line 444, in write_history_file
history = self.get_reader().get_trimmed_history(maxlength)
File "/home/manjusaka/Documents/projects/cpython/Lib/_pyrepl/readline.py", line 358, in get_reader
console = Console(self.f_in, self.f_out, encoding=ENCODING)
File "/home/manjusaka/Documents/projects/cpython/Lib/_pyrepl/unix_console.py", line 173, in __init__
self._clear = _my_getstr("clear")
File "/home/manjusaka/Documents/projects/cpython/Lib/_pyrepl/unix_console.py", line 166, in _my_getstr
raise InvalidTerminal(
_pyrepl.unix_console.InvalidTerminal: terminal doesn't have the required clear capability
Here's case2. This exception should not be raised into terminal I guess
Activity
Zheaoli commentedon Jun 21, 2024
Confirm on main branch and 3.13
Plz assign this to me, I will dive into this issue. BTW we need asyncio and repl related labels cc @Eclips4
Zheaoli commentedon Jul 6, 2024
@ambv this Bug was introduced into codebase since #119433 and was made by two part
exit_messageto''register_readline. Actually I'm not sure which is the graceful way to fix it.Eclips4 commentedon Jul 6, 2024
We already have a PR to fix that: #121341
Zheaoli commentedon Jul 6, 2024
Yes but this is only for case1
Here's case2. This exception should not be raised into terminal I guess
kumaraditya303 commentedon May 16, 2025
I think this is fixed on current main now.