mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Whitespace normalization.
This commit is contained in:
parent
88869f9787
commit
07e99cb774
18 changed files with 1933 additions and 1936 deletions
151
Lib/getpass.py
151
Lib/getpass.py
|
@ -14,106 +14,105 @@ On the Mac EasyDialogs.AskPassword is used, if available.
|
|||
import sys
|
||||
|
||||
def unix_getpass(prompt='Password: '):
|
||||
"""Prompt for a password, with echo turned off.
|
||||
"""Prompt for a password, with echo turned off.
|
||||
|
||||
Restore terminal settings at end.
|
||||
"""
|
||||
Restore terminal settings at end.
|
||||
"""
|
||||
|
||||
try:
|
||||
fd = sys.stdin.fileno()
|
||||
except:
|
||||
return default_getpass(prompt)
|
||||
try:
|
||||
fd = sys.stdin.fileno()
|
||||
except:
|
||||
return default_getpass(prompt)
|
||||
|
||||
getpass = default_getpass
|
||||
old = termios.tcgetattr(fd) # a copy to save
|
||||
new = old[:]
|
||||
getpass = default_getpass
|
||||
old = termios.tcgetattr(fd) # a copy to save
|
||||
new = old[:]
|
||||
|
||||
new[3] = new[3] & ~TERMIOS.ECHO # 3 == 'lflags'
|
||||
try:
|
||||
termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
|
||||
passwd = _raw_input(prompt)
|
||||
finally:
|
||||
termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
|
||||
new[3] = new[3] & ~TERMIOS.ECHO # 3 == 'lflags'
|
||||
try:
|
||||
termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
|
||||
passwd = _raw_input(prompt)
|
||||
finally:
|
||||
termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
|
||||
|
||||
sys.stdout.write('\n')
|
||||
return passwd
|
||||
sys.stdout.write('\n')
|
||||
return passwd
|
||||
|
||||
|
||||
def win_getpass(prompt='Password: '):
|
||||
"""Prompt for password with echo off, using Windows getch()."""
|
||||
import msvcrt
|
||||
for c in prompt:
|
||||
msvcrt.putch(c)
|
||||
pw = ""
|
||||
while 1:
|
||||
c = msvcrt.getch()
|
||||
if c == '\r' or c == '\n':
|
||||
break
|
||||
if c == '\003':
|
||||
raise KeyboardInterrupt
|
||||
if c == '\b':
|
||||
pw = pw[:-1]
|
||||
else:
|
||||
pw = pw + c
|
||||
msvcrt.putch('\r')
|
||||
msvcrt.putch('\n')
|
||||
return pw
|
||||
"""Prompt for password with echo off, using Windows getch()."""
|
||||
import msvcrt
|
||||
for c in prompt:
|
||||
msvcrt.putch(c)
|
||||
pw = ""
|
||||
while 1:
|
||||
c = msvcrt.getch()
|
||||
if c == '\r' or c == '\n':
|
||||
break
|
||||
if c == '\003':
|
||||
raise KeyboardInterrupt
|
||||
if c == '\b':
|
||||
pw = pw[:-1]
|
||||
else:
|
||||
pw = pw + c
|
||||
msvcrt.putch('\r')
|
||||
msvcrt.putch('\n')
|
||||
return pw
|
||||
|
||||
|
||||
def default_getpass(prompt='Password: '):
|
||||
print "Warning: Problem with getpass. Passwords may be echoed."
|
||||
return _raw_input(prompt)
|
||||
print "Warning: Problem with getpass. Passwords may be echoed."
|
||||
return _raw_input(prompt)
|
||||
|
||||
|
||||
def _raw_input(prompt=""):
|
||||
# A raw_input() replacement that doesn't save the string in the
|
||||
# GNU readline history.
|
||||
import sys
|
||||
prompt = str(prompt)
|
||||
if prompt:
|
||||
sys.stdout.write(prompt)
|
||||
line = sys.stdin.readline()
|
||||
if not line:
|
||||
raise EOFError
|
||||
if line[-1] == '\n':
|
||||
line = line[:-1]
|
||||
return line
|
||||
# A raw_input() replacement that doesn't save the string in the
|
||||
# GNU readline history.
|
||||
import sys
|
||||
prompt = str(prompt)
|
||||
if prompt:
|
||||
sys.stdout.write(prompt)
|
||||
line = sys.stdin.readline()
|
||||
if not line:
|
||||
raise EOFError
|
||||
if line[-1] == '\n':
|
||||
line = line[:-1]
|
||||
return line
|
||||
|
||||
|
||||
def getuser():
|
||||
"""Get the username from the environment or password database.
|
||||
"""Get the username from the environment or password database.
|
||||
|
||||
First try various environment variables, then the password
|
||||
database. This works on Windows as long as USERNAME is set.
|
||||
First try various environment variables, then the password
|
||||
database. This works on Windows as long as USERNAME is set.
|
||||
|
||||
"""
|
||||
"""
|
||||
|
||||
import os
|
||||
import os
|
||||
|
||||
for name in ('LOGNAME', 'USER', 'LNAME', 'USERNAME'):
|
||||
user = os.environ.get(name)
|
||||
if user:
|
||||
return user
|
||||
for name in ('LOGNAME', 'USER', 'LNAME', 'USERNAME'):
|
||||
user = os.environ.get(name)
|
||||
if user:
|
||||
return user
|
||||
|
||||
# If this fails, the exception will "explain" why
|
||||
import pwd
|
||||
return pwd.getpwuid(os.getuid())[0]
|
||||
# If this fails, the exception will "explain" why
|
||||
import pwd
|
||||
return pwd.getpwuid(os.getuid())[0]
|
||||
|
||||
# Bind the name getpass to the appropriate function
|
||||
try:
|
||||
import termios, TERMIOS
|
||||
import termios, TERMIOS
|
||||
except ImportError:
|
||||
try:
|
||||
import msvcrt
|
||||
except ImportError:
|
||||
try:
|
||||
from EasyDialogs import AskPassword
|
||||
except ImportError:
|
||||
getpass = default_getpass
|
||||
else:
|
||||
getpass = AskPassword
|
||||
else:
|
||||
getpass = win_getpass
|
||||
try:
|
||||
import msvcrt
|
||||
except ImportError:
|
||||
try:
|
||||
from EasyDialogs import AskPassword
|
||||
except ImportError:
|
||||
getpass = default_getpass
|
||||
else:
|
||||
getpass = AskPassword
|
||||
else:
|
||||
getpass = win_getpass
|
||||
else:
|
||||
getpass = unix_getpass
|
||||
|
||||
getpass = unix_getpass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue