Merge: #21169: add comment and doc update for getpass change.

This commit is contained in:
R David Murray 2014-04-14 10:30:43 -04:00
commit ce4d9c2f51
2 changed files with 6 additions and 4 deletions

View File

@ -13,10 +13,11 @@ The :mod:`getpass` module provides two functions:
.. function:: getpass(prompt='Password: ', stream=None) .. function:: getpass(prompt='Password: ', stream=None)
Prompt the user for a password without echoing. The user is prompted using Prompt the user for a password without echoing. The user is prompted using
the string *prompt*, which defaults to ``'Password: '``. On Unix, the prompt the string *prompt*, which defaults to ``'Password: '``. On Unix, the
is written to the file-like object *stream*. *stream* defaults to the prompt is written to the file-like object *stream* using the replace error
controlling terminal (:file:`/dev/tty`) or if that is unavailable to handler if needed. *stream* defaults to the controlling terminal
``sys.stderr`` (this argument is ignored on Windows). (:file:`/dev/tty`) or if that is unavailable to ``sys.stderr`` (this
argument is ignored on Windows).
If echo free input is unavailable getpass() falls back to printing If echo free input is unavailable getpass() falls back to printing
a warning message to *stream* and reading from ``sys.stdin`` and a warning message to *stream* and reading from ``sys.stdin`` and

View File

@ -138,6 +138,7 @@ def _raw_input(prompt="", stream=None, input=None):
try: try:
stream.write(prompt) stream.write(prompt)
except UnicodeEncodeError: except UnicodeEncodeError:
# Use replace error handler to get as much as possible printed.
prompt = prompt.encode(stream.encoding, 'replace') prompt = prompt.encode(stream.encoding, 'replace')
prompt = prompt.decode(stream.encoding) prompt = prompt.decode(stream.encoding)
stream.write(prompt) stream.write(prompt)