Your IP : 18.188.99.22
a
?�gf�@s�dZddlZddlZddlZddlZddlZgd�ZGdd�de�Zddd�Z dd d
�Z
ddd�Zddd�Zdd�Z
zddlZejejfWn>eefy�zddlZWney�eZYn0e
ZYn0e ZdS)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.
�N)�getpass�getuser�GetPassWarningc@seZdZdS)rN)�__name__�
__module__�__qualname__�rr�,/opt/alt/python39/lib64/python3.9/getpass.pyr�r�
Password: c
Cs�d}t�����}zJt�dtjtjB�}t�|d�}|�|�t� |�}|�|�|sX|}Wn^t
y�|��ztj
��}Wn$ttfy�d}t||�}Yn0tj
}|s�tj}Yn0|du�r�z�t�|�}|dd�}|dtjM<tj} ttd��r| tjO} z6t�|| |�t|||d�}Wt�|| |�|��nt�|| |�|��0Wn>tj�y�|du�r|�||u�r�|��t||�}Yn0|�d�|Wd�S1�s�0YdS)aPrompt 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�old�newZtcsetattr_flagsrrr �unix_getpasssV
�
r1cCs�tjtjurt||�S|D]}t�|�qd}t��}|dkst|dkrHqt|dkrTt�|dkrj|dd�}q.||}q.t�d�t�d�|S)z:Prompt for password with echo off, using Windows getwch().��
r��N���)rr� __stdin__r!�msvcrtZputwchZgetwch�KeyboardInterrupt)r+r,�cZpwrrr �win_getpassas
r;cCs0tjdtdd�|stj}td|d�t||�S)Nz%Can not control echo on the terminal.�)�
stacklevelz&Warning: Password input may be echoed.)�file)�warnings�warnrrr"�printr')r+r,rrr r!xs�r!r2cCs�|s
tj}|stj}t|�}|rnz|�|�Wn6tyd|�|jd�}|�|j�}|�|�Yn0|� �|�
�}|s~t�|ddkr�|dd�}|S)N�replacer6r)rr"r�strr*�UnicodeEncodeError�encode�encoding�decoder(�readline�EOFError)r+r,r�linerrr r'�s&r'cCs<dD]}tj�|�}|r|Sqddl}|�t���dS)z�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.
)ZLOGNAMEZUSERZLNAMEZUSERNAMErN)r�environ�get�pwd�getpwuid�getuid)�name�userrMrrr r�s
r)rN)rN)rN)r2NN)�__doc__rrrrr?�__all__�UserWarningrr1r;r!r'rr#r$r&�ImportErrorrr8rrrrr �<module>s,
D
?>