grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026î ¡ ftã@sdZddlZddlZddlZddgZGdd„deƒZGdd„dƒZedkr{e eƒƒndS)z-An object-oriented interface to .netrc files.éNÚnetrcÚNetrcParseErrorc@s4eZdZdZdddd„Zdd„ZdS)rz5Exception raised on syntax errors in the .netrc file.NcCs/||_||_||_tj||ƒdS)N)ÚfilenameÚlinenoÚmsgÚ ExceptionÚ__init__)Úselfrrr©r ú*/opt/alt/python34/lib64/python3.4/netrc.pyr s   zNetrcParseError.__init__cCsd|j|j|jfS)Nz%s (%s, line %s))rrr)r r r r Ú__str__szNetrcParseError.__str__)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr r r r r r s c@sCeZdZddd„Zdd„Zdd„Zdd „ZdS) rNcCsš|dk}|dkr\y tjjtjddƒ}Wq\tk rXtdƒ‚Yq\Xni|_i|_t|ƒ�}|j |||ƒWdQXdS)NÚHOMEz.netrcz'Could not find .netrc: $HOME is not set) ÚosÚpathÚjoinÚenvironÚKeyErrorÚOSErrorÚhostsÚmacrosÚopenÚ_parse)r ÚfileÚ default_netrcÚfpr r r rs      znetrc.__init__cCs¨tj|ƒ}|jd7_|jjddƒ|_xk|j}|jƒ}}|s\Pn|ddkr£|j|kr9t|ƒdkr9|jjƒq9q9nÇ|dkr¾|jƒ}n¬|dkrÓd}n—|dkrQ|jƒ}g|j |?@[\]^_`{|}~ú#ÚréÚmachineÚdefaultÚmacdefz Ú z zbad toplevel token %rz&malformed %s entry %s terminated by %sÚloginÚuserÚaccountÚpasswordÚposixzuid %sz9~/.netrc file owner (%s) does not match current user (%s)zY~/.netrc access too permissive: access permissions must restrict access to only the ownerzbad follower token %r>r r$údefaultúmachine)ÚshlexZ wordcharsZ commentersÚreplacerZ get_tokenÚlenZinstreamÚreadlinerZ whitespaceÚappendrrÚ startswithZ push_tokenÚreprrÚnameÚfstatÚfilenoÚst_uidÚgetuidÚpwdÚgetpwuidrÚst_modeÚstatÚS_IRWXGÚS_IRWXO)r rrrZlexerZ saved_linenoZtoplevelZttZ entrynameÚliner&r(r)Zpropr9Zfownerr'r r r r#s� !                    z netrc._parsecCs<||jkr|j|Sd|jkr4|jdSdSdS)z8Return a (user, account, password) tuple for given host.r#N)r)r Úhostr r r Úauthenticatorsts   znetrc.authenticatorscCsîd}x‰|jjƒD]x}|j|}|d|dt|dƒd}|drr|dt|dƒ}n|dt|d ƒd}qWxU|jjƒD]D}|d |d}x|j|D]}||}qÈW|d}q¢W|S) z3Dump the class data in the format of a .netrc file.r zmachine z login rr%r!zaccount z password ézmacdef )rÚkeysr3r)r Zrepr@ZattrsZmacror?r r r Ú__repr__}s $  znetrc.__repr__)r rrrrrArDr r r r rs  Q Ú__main__) rrr-r<Ú__all__rrrr Úprintr r r r Ús $  w