관리-도구
편집 파일: getpass.cpython-34.pyc
� e f� � @ s4 d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d d g Z Gd d � d e � Z d d d d � Z d d d d � Z d d d d � Z d d d d d � Z d d � Z y d d l Z e j e j f WnI e e f k r)y d d l Z Wn e k re Z Yn Xe Z Yn Xe Z d S)a� Utilities to get a password and/or the current user name. getpass(prompt[, stream]) - Prompt for a password, with echo turned off. getuser() - Get the user name from the environment or password database. GetPassWarning - This UserWarning is issued when getpass() cannot prevent echoing of the password contents while reading. On Windows, the msvcrt module will be used. On the Mac EasyDialogs.AskPassword is used, if available. � N�getpass�getuser�GetPassWarningc @ s e Z d Z d S)r N)�__name__� __module__�__qualname__� r r �,/opt/alt/python34/lib64/python3.4/getpass.pyr s z Password: c . C s5 d } t j � �} yj t j d t j t j B� } t j | d � } | j | � t j | � } | j | � | s~ | } n Wn� t k r} zm | j � y t j j � } Wn- t t f k r� d } t | | � } Yn Xt j } | s� t j } n WYd d } ~ Xn X| d k ry� t j | � } | d d � } | d t j M<t j } t t d � rw| t j O} n z, t j | | | � t | | d | �} Wd t j | | | � | j � XWqt j k r| d k r�� n | | k r| j � n t | | � } YqXn | j d � | SWd QXd S)a 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. Nz/dev/ttyzw+� �TCSASOFT�input� )� contextlib� ExitStack�os�open�O_RDWR�O_NOCTTY�io�FileIO� enter_context� TextIOWrapper�OSError�close�sys�stdin�fileno�AttributeError� ValueError�fallback_getpass�stderr�termios� tcgetattrZECHOZ TCSAFLUSH�hasattrr � tcsetattr� _raw_input�flush�error�write)�prompt�streamZpasswd�stack�fdZttyr �e�old�newZtcsetattr_flagsr r r �unix_getpass sR r0 c C s� t j t j k r t | | � Sd d l } x | D] } | j | � q2 Wd } xj | j � } | d k sv | d k rz Pn | d k r� t � n | d k r� | d d � } qR | | } qR W| j d � | j d � | S) z9Prompt for password with echo off, using Windows getch().r N� � r ��� ���)r r � __stdin__r �msvcrtZputwchZgetwch�KeyboardInterrupt)r) r* r8 �cZpwr r r �win_getpassb s$ r; c C sE t j d t d d �| s( t j } n t d d | �t | | � S)Nz%Can not control echo on the terminal.� stacklevel� z&Warning: Password input may be echoed.�file)�warnings�warnr r r �printr% )r) r* r r r r y s r r1 c C s� | s t j } n | s$ t j } n t | � } | r� y | j | � WnF t k r� | j | j d � } | j | j � } | j | � Yn X| j � n | j � } | s� t � n | d d k r� | d d � } n | S)N�replacer5 r r6 r6 )r r r �strr( �UnicodeEncodeError�encode�encoding�decoder&