GeezerVison is showing github.com — New REPL on Windows swallows characters entered via AltGr · Issue #132439 · python/cpython
New REPL on Windows swallows characters entered via AltGr #132439DescriptionBug report
Bug description:
E.g. on my keyboard with German layout, { is usually entered via pressing the AltGr key and 7, i.e. AltGr+7.
Likewise, }, [, ], \ and some more can only be entered via AltGr.
But since #128388 / #128389 these are swallowed by the REPL on Windows and can no longer be entered.
On 3.13.3, this happens independent from the terminal mode.
On main, this only happens in legacy Windows terminals, where the virtual terminal mode is turned off (e.g. cmd.exe).
In virtual terminal mode there are other issues, see #131878.
Many other keyboard layouts like French, Czech, etc, use the AltGr key, too, and suffer the same bug (tested changing my keyboard layout).
CPython versions tested on:
3.14, 3.13
Operating systems tested on:
Windows
Linked PRs
Reacted by John Hennig, magnatek-mgs, Dominik Geldmacher, darko664, markusschlenker and Ander Activitypicnixz commented on Apr 12, 2025 @chris-eibl Small tip (and welcome to you as a triager!): we keep the "needs backport" labels for PRs and reserve version labels to issues so to indicate which Python versions are affected (and I personally leave out version labels if every Python version is affected, unless it's a security issue). Reacted by Chris Eibl Reacted by Sergey Miryanov Reacted by Chris Eibl chris-eibl commented on Apr 12, 2025 Yeah, I was unsure about the "needs backport" for issues myself.
Regarding the "versions affected": this only applies to 3.13 and 3.14, because only those two feature the new REPL - hence we maybe should keep them in this case on the issue? picnixz commented on Apr 12, 2025 Yes, we can keep them as it's really 3.13 and 3.14 specific. In general, once a version becomes EOL or security-only, we also remove or update the labels (technically, we could even remove them as 3.12 is now security-only so those issues won't necessarily be fixed) noisefloor commented on Apr 13, 2025 I can confirm this bug, tested on two different Windows 11 machines. Characters accessible via ALT GR on a German keyboard, most notably for programming Python { [ ] } , work randomly (square brackets) or not at all (curly brackets). Tested with Python 3.13.3 installed from the Microsoft Store. For Python 3.12.10 installed from the Microsoft Store, all keys / characters work just fine. mettvterritory commented on Apr 14, 2025 I've encountered this as well.
Bad Workaround: If you first press AltGR + 8, you can then enter exactly one AltGr grapheme.
So,
AltGR + 8, AltGr + 7 produces '{' on a German keyboard.
AltGR + 8, AltGr + Q produces '@' on a German keyboard. Reacted by pewscorner, MajorTanya, Ableytner, hs-jonathan and darko664 Reacted by markusschlenker changed the title [-]REPL on Windows swallows characters entered via AltGr[/-] [+]New REPL on Windows swallows characters entered via AltGr[/+] on Apr 14, 2025chris-eibl commented on Apr 14, 2025 For me, the issue only occurs in an "old terminal", e.g. using cmd.exe. In a Windows terminal (e.g. powershell), the new REPL runs in virtual terminal mode
|
def _supports_vt(): |
|
try: |
|
import nt |
|
return nt._supports_virtual_terminal() |
where I can use AltGr as usual.
But the "virtual terminal mode" has other problems (#131878): I can no longer enter äÄöÖüÜ, etc., which work in the "old terminal", though. john-hen commented on Apr 14, 2025
For me, the issue only occurs in an "old terminal", e.g. using cmd.exe. In a Windows terminal (e.g. powershell), the new REPL runs in virtual terminal mode
I think that's only true for the 3.14 developer preview. In the Python 3.13.3 release, there is no _supports_vt() function in windows_console.py. I have this issue no matter the terminal (the old Command Prompt and the new Windows Terminal) nor the shell (cmd.exe and PowerShell).
I went so far as to hot-patching windows_console.py locally. The REPL as of 3.13.3 is unusable for me otherwise., You don't get very far in Python without curly braces or square brackets. This is not supposed to happen in a bug-fix release. NSK-Guru commented on Apr 20, 2025 This also occurs on danish keyboards (on win10). Can't input chars: @£${[]}|€~
Fallback to 3.13.2 worked for me. chris-eibl commented on Apr 20, 2025 jeanga commented on May 3, 2025 added 2 commits that reference this issue on May 5, 2025GH-132439: Fix REPL swallowing characters entered with AltGr on cmd.e… ambv commented on May 5, 2025 Thanks for perservering, this is an important fix! Reacted by Hugo van Kemenade Reacted by Chris Eibl and John Hennig Reacted by Hugo van Kemenade
MetadataMetadataStatusShow more project fields
DevelopmentNo branches or pull requestsIssue actions
|