mfc@sndZddlZddlZddgZdefdYZdddYZedkrjeGHndS( s-An object-oriented interface to .netrc files.iNtnetrctNetrcParseErrorcBs&eZdZdddZdZRS(s5Exception raised on syntax errors in the .netrc file.cCs/||_||_||_tj||dS(N(tfilenametlinenotmsgt Exceptiont__init__(tselfRRR((s/usr/lib64/python2.7/netrc.pyR s   cCsd|j|j|jfS(Ns%s (%s, line %s)(RRR(R((s/usr/lib64/python2.7/netrc.pyt__str__sN(t__name__t __module__t__doc__tNoneRR(((s/usr/lib64/python2.7/netrc.pyR scBs/eZddZdZdZdZRS(cCs|dkrOy tjjtjdd}WqOtk rKtdqOXni|_i|_t |}|j ||WdQXdS(NtHOMEs.netrcs'Could not find .netrc: $HOME is not set( R tostpathtjointenvirontKeyErrortIOErrorthoststmacrostopent_parse(Rtfiletfp((s/usr/lib64/python2.7/netrc.pyRs     c Cstj|}|jd7_|jjdd|_xN|j}}|sSPn |ddkrt|d}|jj| d|jjq9n|dkr|j}n|dkrd}n|dkrG|j}g|j |?@[\]^_`{|}~t#tiitmachinetdefaulttmacdefs s s sbad toplevel token %rs&malformed %s entry %s terminated by %stlogintusertaccounttpasswordsbad follower token %r(tshlext wordcharst commenterstreplacet get_tokentlentinstreamtseektreadlineRt whitespacetappendRRR Rt startswitht push_tokentrepr( RRRtlexerttoplevelttttpost entrynametlineRR!R"((s/usr/lib64/python2.7/netrc.pyR"sh                cCs<||jkr|j|Sd|jkr4|jdSdSdS(s8Return a (user, account, password) tuple for given host.RN(RR (Rthost((s/usr/lib64/python2.7/netrc.pytauthenticators`s   cCsd}x|jjD]x}|j|}|d|dt|dd}|drr|dt|d}n|dt|d d}qWxU|jjD]D}|d |d}x|j|D]}||}qW|d}qW|S( s3Dump the class data in the format of a .netrc file.Rsmachine s login is isaccount s password ismacdef (RtkeysR0R(RtrepR7tattrstmacroR6((s/usr/lib64/python2.7/netrc.pyt__repr__is $  N(R R R RRR8R=(((s/usr/lib64/python2.7/netrc.pyRs > t__main__((R RR#t__all__RRRR (((s/usr/lib64/python2.7/netrc.pyts   c