B ïY6djã @sÚdZddlZddlZddlZddlZddlZdddgZGdd„deƒZddd „Z dd d „Z dd d „Z ddd„Z dd„Z yddlZejejfWnBeefk rÐy ddlZWnek rÆe ZYnXe ZYnXe 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@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú#/usr/local/lib/python3.7/getpass.pyrsú Password: c Cs´d}t ¡œ}yJt dtjtjB¡}t |d¡}| |¡t  |¡}| |¡|sX|}Wnpt k rÊ}zR|  ¡yt j  ¡}Wn&ttfk r¨d}t||ƒ}YnXt j }|sºt j}Wdd}~XYnX|dk rœy„t |¡}|dd…} | dtjM<tj} ttdƒr| tjO} z t || | ¡t|||d}Wdt || |¡| ¡XWn@tjk rš|dk rz‚||k rŒ|  ¡t||ƒ}YnX| d¡|SQRXdS)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ÚstreamÚpasswdÚstackÚfdZttyr ÚeÚoldÚnewZtcsetattr_flagsrrr Ú unix_getpasssR             r2cCs”tjtjk rt||ƒSx|D]}t |¡qWd}xHt ¡}|dksL|dkrNP|dkrZt‚|dkrp|dd…}q4||}q4Wt d¡t d¡|S)z9Prompt for password with echo off, using Windows getch().Úú rúúNéÿÿÿÿ)rrÚ __stdin__r ÚmsvcrtZputwchZgetwchÚKeyboardInterrupt)r*r+ÚcZpwrrr Ú win_getpassas"      r<cCs0tjdtdd|stj}td|dt||ƒ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 r3cCsœ|s tj}|stj}t|ƒ}|rpy| |¡Wn8tk rf| |jd¡}| |j¡}| |¡YnX|  ¡|  ¡}|s€t ‚|ddkr˜|dd…}|S)NÚreplacer7r) rr!rÚstrr)ÚUnicodeEncodeErrorÚencodeÚencodingÚdecoder'ÚreadlineÚEOFError)r*r+r Úlinerrr r&s&   r&cCs<x dD]}tj |¡}|r|SqWddl}| 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. )ZLOGNAMEÚUSERZLNAMEÚUSERNAMErN)rÚenvironÚgetÚpwdÚgetpwuidÚgetuid)ÚnameÚuserrPrrr ršs   )r N)r N)r N)r3NN)Ú__doc__rrrrr@Ú__all__Ú UserWarningrr2r<r r&rr"r#r%Ú ImportErrorrr9rrrrr Ú s,  D