\ddZddlZddlZddlZddgZGddeZGddZGddZe d kre edSdS) z-An object-oriented interface to .netrc files.NnetrcNetrcParseErrorc eZdZdZddZdZdS)rz5Exception raised on syntax errors in the .netrc file.Ncf||_||_||_t||dSN)filenamelinenomsg Exception__init__)selfr rr s ..\python\lib\netrc.pyr zNetrcParseError.__init__ s3   4%%%%%c6|jd|jd|jdS)Nz (z, line ))r rr )r s r__str__zNetrcParseError.__str__s!%)XXXt}}}dkkkJJr)NN)__name__ __module__ __qualname____doc__r rrrrr sB??&&&& KKKKKrc&eZdZdZdZdZdZdS) _netrclexc>d|_||_d|_g|_dS)Nz )r instream whitespacepushback)r fps rr z_netrclex.__init__s"  # rcf|jd}|dkr|xjdz c_|S)Nr )rreadr )r chs r _read_charz_netrclex._read_chars5 ]   " " :: KK1 KK rc|jr|jdSd}t|jd}|D]}||jvr |dkr1|D]-}|dkr|ccS|dkr|}||z }.C|dkr|}||z }|D]0}||jvr|ccS|dkr|}||z }1|S)Nr"\)rpopiterr$r)r tokenfiterr#s r get_tokenz_netrclex.get_token#s( = (=$$Q'' 'T_b))  BT_$$Syy  BSyy$ t!__..RKEE  ::**B   BT_,,$ t!__..RKEE   rc:|j|dSr)rappend)r r+s r push_tokenz_netrclex.push_token>s U#####rN)rrrr r$r-r0rrrrrsP  6$$$$$rrc.eZdZddZdZdZdZdZdS)rNc|du}|=tjtjdd}i|_i|_ t |d5}||||ddddS#1swxYwYdS#t$rFt |d5}||||dddYdS#1swxYwYYdSwxYw)N~z.netrczutf-8)encodinglocale) ospathjoin expanduserhostsmacrosopen_parseUnicodeDecodeError)r file default_netrcrs rr znetrc.__init__Cs <7<< 2 23 7 7BBD   5dW--- 5 D"m444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5! 5 5 5dX... 5" D"m444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5sZB$B < B B  BB BC&1C C&C C&C C&%C&ct|} |j}|x}}|sdS|ddkr8|j|kr,t|dkr|jf|dkr|}n|dkrd}n|dkrz|}g|j|< |j} | std||j| dkrn!|j|| Y td |z||j|std |z||jd x} x} } i|j |< |j} |}| dr%|j| kr|jV|d vr#| | | f|j |<| |nq|d ks|dkr|} nO|dkr|} n4|dkr|} ntd|z||j| |||j |de)Nrr#machinedefaultmacdefz.Macro definition missing null line terminator.r!zbad toplevel token %rzmissing %r namer&>r&rErDrCloginuseraccountpasswordzbad follower token %r) rr r-lenrreadliner;rr/r: startswithr0_security_check)r r?rr@lexer saved_linenotopleveltt entrynamelinerFrHrI prev_linenos rr=z netrc._parsePs" < N 2244D0-L %,000t||K *11$777 8%+b0$ FFF R%&7"&#l __&&==%%|{22//111===-2GX,FDJy)$$R(((7]]bFll!OO--EE9__#oo//GG:%%$00HH)*AB*F*. >>>% >(  ]DJy4I!4L M M My< Nrctjdkr&|r%|dkr tj|}|jtjkrddl} ||jd}n#t$r d|jz}YnwxYw |tjd}n&#t$rdtjz}YnwxYwtd|d|d|j tj tj zzrtddSdSdSdS) Nposix anonymousrzuid %sz~/.netrc file owner (z, z) does not match current userzY~/.netrc access too permissive: access permissions must restrict access to only the owner)r6namefstatfilenost_uidgetuidpwdgetpwuidKeyErrorrst_modestatS_IRWXGS_IRWXO)r rr@rFpropr]fownerrGs rrMznetrc._security_checksp 7g  - E[4H4H8BIIKK((D{bikk)) 4 \\$+66q9FF444% 3FFF42<< 44Q7DD222#bikk1DDD2%%V%%t%%%'''  t| ;< "%!"""!    4H4H " "s$# BBB,C C/.C/c^||jvr |j|Sd|jvr |jdSdS)z8Return a (user, account, password) tuple for given host.rDN)r:)r hosts rauthenticatorsznetrc.authenticatorss; 4:  :d# # $* $ $:i( (4rcJd}|jD]G}|j|}|d|d|ddz }|dr|d|ddz }|d|d dz }H|jD]%}|d |dz }|j|D]}||z }|dz }&|S) z3Dump the class data in the format of a .netrc file.r&zmachine z login rr!rz account z password zmacdef )r:keysr;)r reprgattrsmacrorSs r__repr__znetrc.__repr__sJOO%% . .DJt$E :d::eAh::: :CQx 10E!H0000 -q--- -CC[%%''  E &U&&& &C E*  t  4KCC rr)rrrr r=rMrhrorrrrrBsh 5 5 5 5>N>N>N@""",r__main__) rr6shlexra__all__r rrrrprintrrrrts33 % & K K K K Ki K K K)$)$)$)$)$)$)$)$X{{{{{{{{z z E%%''NNNNNr