https://github.com/python/cpython/commit/074f3b20b3f05e2740f5324f1b0653152a41ca82
commit: 074f3b20b3f05e2740f5324f1b0653152a41ca82
branch: main
author: yagggi <[email protected]>
committer: picnixz <[email protected]>
date: 2025-09-09T11:41:13+02:00
summary:

gh-138577: Mention Unix-specific limitations of 
`getpass.getpass(echo_char=...)` (#138677)

In bf8bbe9a813dd9fc2dd14be06df172b7d26ca1af, `getpass.getpass` gained
the ability to provide keyboard feedback through `echo_char`.

On Unix, line editing shortcuts such as Ctrl+U were previously handled
as the terminal operates in canonical mode (see termios(3)). However,
since keyboard feedback requires to switch to noncanonical mode, this
now results in an inconsistency when `getpass.getpass` uses `echo_char`
as those shortcuts are no more supported. This limitation is specific
to Unix and does not affect Windows users where line editing shortcuts
were never supported.

files:
M Doc/library/getpass.rst

diff --git a/Doc/library/getpass.rst b/Doc/library/getpass.rst
index 0fb0fc88683c03..af9c9e9f39d9a6 100644
--- a/Doc/library/getpass.rst
+++ b/Doc/library/getpass.rst
@@ -39,6 +39,14 @@ The :mod:`getpass` module provides two functions:
       If you call getpass from within IDLE, the input may be done in the
       terminal you launched IDLE from rather than the idle window itself.
 
+   .. note::
+      On Unix systems, when *echo_char* is set, the terminal will be
+      configured to operate in
+      :manpage:`noncanonical mode 
<termios(3)#Canonical_and_noncanonical_mode>`.
+      In particular, this means that line editing shortcuts such as
+      :kbd:`Ctrl+U` will not work and may insert unexpected characters into
+      the input.
+
    .. versionchanged:: 3.14
       Added the *echo_char* parameter for keyboard feedback.
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to