(prompt='Password: ', stream=None)
Prompt for a password, with echo turned off.

    Args:
      prompt: Written on stream to ask for the input.  Default: 'Password: '
      stream: A writable file object to display the prompt.  Defaults to
              the tty.  If no tty is available defaults to sys.stderr.
    Returns:
      The seKr3t input.
    Raises:
      EOFError: If our input tty or stdin was closed.
      GetPassWarning: When we were unable to turn echo off on the input.

    Always restores terminal settings before returning.
Prompt for a password, with echo turned off.
Prompt for a password with echo turned off .
def unix_getpass(prompt='Password: ', stream=None):
    """Prompt for a password, with echo turned off.

    Args:
      prompt: Written on stream to ask for the input.  Default: 'Password: '
      stream: A writable file object to display the prompt.  Defaults to
              the tty.  If no tty is available defaults to sys.stderr.
    Returns:
      The seKr3t input.
    Raises:
      EOFError: If our input tty or stdin was closed.
      GetPassWarning: When we were unable to turn echo off on the input.

    Always restores terminal settings before returning.
    """
    passwd = None
    with contextlib.ExitStack() as stack:
        try:
            # Always try reading and writing directly on the tty first.
            fd = os.open('/dev/tty', os.O_RDWR|os.O_NOCTTY)
            tty = io.FileIO(fd, 'w+')
            stack.enter_context(tty)
            input = io.TextIOWrapper(tty)
            stack.enter_context(input)
            if not stream:
                stream = input
        except OSError:
            # If that fails, see if stdin can be controlled.
            stack.close()
            try:
                fd = sys.stdin.fileno()
            except (AttributeError, ValueError):
                fd = None
                passwd = fallback_getpass(prompt, stream)
            input = sys.stdin
            if not stream:
                stream = sys.stderr

        if fd is not None:
            try:
                old = termios.tcgetattr(fd)     # a copy to save
                new = old[:]
                new[3] &= ~termios.ECHO  # 3 == 'lflags'
                tcsetattr_flags = termios.TCSAFLUSH
                if hasattr(termios, 'TCSASOFT'):
                    tcsetattr_flags |= termios.TCSASOFT
                try:
                    termios.tcsetattr(fd, tcsetattr_flags, new)
                    passwd = _raw_input(prompt, stream, input=input)
                finally:
                    termios.tcsetattr(fd, tcsetattr_flags, old)
                    stream.flush()  # issue7208
            except termios.error:
                if passwd is not None:
                    # _raw_input succeeded.  The final tcsetattr failed.  Reraise
                    # instead of leaving the terminal in an unknown state.
                    raise
                # We can't control the tty or stdin.  Give up and use normal IO.
                # fallback_getpass() raises an appropriate warning.
                if stream is not input:
                    # clean up unused file objects before blocking
                    stack.close()
                passwd = fallback_getpass(prompt, stream)

        stream.write('\n')
        return passwd
def unix_getpass ( prompt = 'Password: ' , stream = None ) : passwd = None with contextlib . ExitStack ( ) as stack : try : # Always try reading and writing directly on the tty first. fd = os . open ( '/dev/tty' , os . O_RDWR | os . O_NOCTTY ) tty = io . FileIO ( fd , 'w+' ) stack . enter_context ( tty ) input = io . TextIOWrapper ( tty ) stack . enter_context ( input ) if not stream : stream = input except OSError : # If that fails, see if stdin can be controlled. stack . close ( ) try : fd = sys . stdin . fileno ( ) except ( AttributeError , ValueError ) : fd = None passwd = fallback_getpass ( prompt , stream ) input = sys . stdin if not stream : stream = sys . stderr if fd is not None : try : old = termios . tcgetattr ( fd ) # a copy to save new = old [ : ] new [ 3 ] &= ~ termios . ECHO # 3 == 'lflags' tcsetattr_flags = termios . TCSAFLUSH if hasattr ( termios , 'TCSASOFT' ) : tcsetattr_flags |= termios . TCSASOFT try : termios . tcsetattr ( fd , tcsetattr_flags , new ) passwd = _raw_input ( prompt , stream , input = input ) finally : termios . tcsetattr ( fd , tcsetattr_flags , old ) stream . flush ( ) # issue7208 except termios . error : if passwd is not None : # _raw_input succeeded.  The final tcsetattr failed.  Reraise # instead of leaving the terminal in an unknown state. raise # We can't control the tty or stdin.  Give up and use normal IO. # fallback_getpass() raises an appropriate warning. if stream is not input : # clean up unused file objects before blocking stack . close ( ) passwd = fallback_getpass ( prompt , stream ) stream . write ( '\n' ) return passwd