11"""Utilities to get a password and/or the current user name.
22
3- getpass(prompt[, stream[, echochar ]]) - Prompt for a password, with echo
3+ getpass(prompt[, stream[, echo_char ]]) - Prompt for a password, with echo
44turned off and optional keyboard feedback.
55getuser() - Get the user name from the environment or password database.
66
2626class GetPassWarning (UserWarning ): pass
2727
2828
29- def unix_getpass (prompt = 'Password: ' , stream = None , * , echochar = None ):
29+ def unix_getpass (prompt = 'Password: ' , stream = None , * , echo_char = None ):
3030 """Prompt for a password, with echo turned off.
3131
3232 Args:
3333 prompt: Written on stream to ask for the input. Default: 'Password: '
3434 stream: A writable file object to display the prompt. Defaults to
3535 the tty. If no tty is available defaults to sys.stderr.
36- echochar : A string used to mask input (e.g., '*'). If None, input is
36+ echo_char : A string used to mask input (e.g., '*'). If None, input is
3737 hidden.
3838 Returns:
3939 The seKr3t input.
@@ -43,7 +43,7 @@ def unix_getpass(prompt='Password: ', stream=None, *, echochar=None):
4343
4444 Always restores terminal settings before returning.
4545 """
46- _check_echochar ( echochar )
46+ _check_echo_char ( echo_char )
4747
4848 passwd = None
4949 with contextlib .ExitStack () as stack :
@@ -73,15 +73,15 @@ def unix_getpass(prompt='Password: ', stream=None, *, echochar=None):
7373 old = termios .tcgetattr (fd ) # a copy to save
7474 new = old [:]
7575 new [3 ] &= ~ termios .ECHO # 3 == 'lflags'
76- if echochar :
76+ if echo_char :
7777 new [3 ] &= ~ termios .ICANON
7878 tcsetattr_flags = termios .TCSAFLUSH
7979 if hasattr (termios , 'TCSASOFT' ):
8080 tcsetattr_flags |= termios .TCSASOFT
8181 try :
8282 termios .tcsetattr (fd , tcsetattr_flags , new )
8383 passwd = _raw_input (prompt , stream , input = input ,
84- echochar = echochar )
84+ echo_char = echo_char )
8585
8686 finally :
8787 termios .tcsetattr (fd , tcsetattr_flags , old )
@@ -102,11 +102,11 @@ def unix_getpass(prompt='Password: ', stream=None, *, echochar=None):
102102 return passwd
103103
104104
105- def win_getpass (prompt = 'Password: ' , stream = None , * , echochar = None ):
105+ def win_getpass (prompt = 'Password: ' , stream = None , * , echo_char = None ):
106106 """Prompt for password with echo off, using Windows getwch()."""
107107 if sys .stdin is not sys .__stdin__ :
108108 return fallback_getpass (prompt , stream )
109- _check_echochar ( echochar )
109+ _check_echo_char ( echo_char )
110110
111111 for c in prompt :
112112 msvcrt .putwch (c )
@@ -118,15 +118,15 @@ def win_getpass(prompt='Password: ', stream=None, *, echochar=None):
118118 if c == '\003 ' :
119119 raise KeyboardInterrupt
120120 if c == '\b ' :
121- if echochar and pw :
121+ if echo_char and pw :
122122 msvcrt .putch ('\b ' )
123123 msvcrt .putch (' ' )
124124 msvcrt .putch ('\b ' )
125125 pw = pw [:- 1 ]
126126 else :
127127 pw = pw + c
128- if echochar :
129- msvcrt .putwch (echochar )
128+ if echo_char :
129+ msvcrt .putwch (echo_char )
130130 msvcrt .putwch ('\r ' )
131131 msvcrt .putwch ('\n ' )
132132 return pw
@@ -142,14 +142,14 @@ def fallback_getpass(prompt='Password: ', stream=None):
142142 return _raw_input (prompt , stream )
143143
144144
145- def _check_echochar ( echochar ):
145+ def _check_echo_char ( echo_char ):
146146 # ASCII excluding control characters
147- if echochar and not (echochar .isprintable () and echochar .isascii ()):
148- raise ValueError ("'echochar ' must be a printable ASCII string, "
149- f"got: { echochar !r} " )
147+ if echo_char and not (echo_char .isprintable () and echo_char .isascii ()):
148+ raise ValueError ("'echo_char ' must be a printable ASCII string, "
149+ f"got: { echo_char !r} " )
150150
151151
152- def _raw_input (prompt = "" , stream = None , input = None , echochar = None ):
152+ def _raw_input (prompt = "" , stream = None , input = None , echo_char = None ):
153153 # This doesn't save the string in the GNU readline history.
154154 if not stream :
155155 stream = sys .stderr
@@ -166,8 +166,8 @@ def _raw_input(prompt="", stream=None, input=None, echochar=None):
166166 stream .write (prompt )
167167 stream .flush ()
168168 # NOTE: The Python C API calls flockfile() (and unlock) during readline.
169- if echochar :
170- return _readline_with_echochar (stream , input , echochar )
169+ if echo_char :
170+ return _readline_with_echo_char (stream , input , echo_char )
171171 line = input .readline ()
172172 if not line :
173173 raise EOFError
@@ -176,7 +176,7 @@ def _raw_input(prompt="", stream=None, input=None, echochar=None):
176176 return line
177177
178178
179- def _readline_with_echochar (stream , input , echochar ):
179+ def _readline_with_echo_char (stream , input , echo_char ):
180180 passwd = ""
181181 eof_pressed = False
182182 while True :
@@ -199,7 +199,7 @@ def _readline_with_echochar(stream, input, echochar):
199199 continue
200200 else :
201201 passwd += char
202- stream .write (echochar )
202+ stream .write (echo_char )
203203 stream .flush ()
204204 eof_pressed = False
205205 return passwd
0 commit comments