�`^c@s�dZddlZddlZddlZejdkrHddlZnddgZdefd��YZdd d��YZ e
dkr�e �GHndS(
s-An object-oriented interface to .netrc files.i�NtposixtnetrctNetrcParseErrorcBs&eZdZddd�Zd�ZRS(s5Exception raised on syntax errors in the .netrc file.cCs/||_||_||_tj||�dS(N(tfilenametlinenotmsgt Exceptiont__init__(tselfRRR((s/sys/lib/python2.7/netrc.pyRs cCsd|j|j|jfS(Ns%s (%s, line %s)(RRR(R((s/sys/lib/python2.7/netrc.pyt__str__sN(t__name__t
__module__t__doc__tNoneRR (((s/sys/lib/python2.7/netrc.pyRscBs/eZdd�Zd�Zd�Zd�ZRS(cCs�|dk}|dkr[y tjjtjdd�}Wq[tk
rWtd��q[Xni|_i|_t |��}|j
|||�WdQXdS(NtHOMEs.netrcs'Could not find .netrc: $HOME is not set(R
tostpathtjointenvirontKeyErrortIOErrorthoststmacrostopent_parse(Rtfilet
default_netrctfp((s/sys/lib/python2.7/netrc.pyRs
cCs�tj|�}|jd7_|jjdd�|_x]|j�}}|sSPn
|ddkr�t|�d}|jj|d�|jj�q9n�|dkr�|j�}n�|dkr�d}n�|dkrG|j�}g|j |<d |_
xF|jj�} | s| d
kr*d|_
Pn|j |j| �q�ntd|||j
��d}
d}}i|j|<x|j�}|jd�s�|ddddhkr|r�
||f|j|<|j|�Pq�td
||t|�f||j
��q�|dks#|dkr2|j�}
q�|dkrM|j�}q�|dkrwtjdkrh|rhtj|j��}
|
jtj�kr6ytj|
j�d}Wntk
r�d|
j}nXytjtj��d}Wn!tk
rdtj�}nXtd||f||j
��n|
jtjtjB@rhtd||j
��qhn|j�}q�td|||j
��q�q9dS(Ns !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~t#tiitmachinetdefaulttmacdefs s
s
sbad toplevel token %rs&malformed %s entry %s terminated by %stlogintusertaccounttpasswordRsuid %ss9~/.netrc file owner (%s) does not match current user (%s)sY~/.netrc access too permissive: access permissions must restrict access to only the ownersbad follower token %r( tshlext wordcharst
commenterstreplacet get_tokentlentinstreamtseektreadlineRt
whitespacetappendRRR
Rt
startswitht
push_tokentreprRtnametfstattfilenotst_uidtgetuidtpwdtgetpwuidRtst_modetstattS_IRWXGtS_IRWXO(RRRRtlexerttoplevelttttpost entrynametlineR!R#R$tproptfownerR"((s/sys/lib/python2.7/netrc.pyR%s�
cCs<||jkr|j|Sd|jkr4|jdSdSdS(s8Return a (user, account, password) tuple for given host.RN(RR
(Rthost((s/sys/lib/python2.7/netrc.pytauthenticatorsws
cCs�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(s3Dump the class data in the format of a .netrc file.Rsmachine s
login is
isaccount s
password ismacdef (RtkeysR2R(RtrepRFtattrstmacroRC((s/sys/lib/python2.7/netrc.pyt__repr__�s
$
N(R
RR
RRRGRL(((s/sys/lib/python2.7/netrc.pyRs R t__main__((RRR;R%R3R8t__all__RRRR
(((s/sys/lib/python2.7/netrc.pyt<module>s$x
|