code: 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
  
file_path: catboost/contrib/tools/python3/src/Lib/getpass.py
imports: import contextlib
  import io
  import os
  import sys
  import warnings
label_desc: Use image node_id 1 for calling a global function with example usage: unix_getpass(prompt, stream) and returns: passwd