Ñò §ÚêLc@sédZdZddkZddkZddkZddkZeedƒpedƒ‚ndddgZd a d a d „Z d „Z de fd „ƒYZd „Zddd„ƒYZd„Zd„Zedjo e ƒndS(s–The Tab Nanny despises ambiguous indentation. She knows no mercy. tabnanny -- Detection of ambiguous indentation For the time being this module is intended to be called as a script. However it is possible to import it into an IDE and use the function check() described below. Warning: The API provided by this module is likely to change in future releases; such changes may not be backward compatible. t6iÿÿÿÿNtNLs4tokenize.NL doesn't exist -- tokenize module too oldtchecktNannyNagtprocess_tokensicGsKd}x.|D]&}tii|t|ƒƒd}q WtiidƒdS(Ntt s (tsyststderrtwritetstr(targstseptarg((s /usr/lib64/python2.6/tabnanny.pyterrprint#s  c CsØy#titiddƒ\}}Wn#tij o}t|ƒdSXxJ|D]B\}}|djotdan|djotdaqPqPW|ptdtiddƒdSx|D]}t|ƒqÀWdS(Nitqvs-qs-vsUsage:is[-v] file_or_directory ...(tgetoptRtargvterrorRt filename_onlytverboseR(toptsR tmsgtotaR ((s /usr/lib64/python2.6/tabnanny.pytmain*s"#    cBs2eZdZd„Zd„Zd„Zd„ZRS(sg Raised by tokeneater() if detecting an ambiguous indent. Captured and handled in check(). cCs!||||_|_|_dS(N(tlinenoRtline(tselfRRR((s /usr/lib64/python2.6/tabnanny.pyt__init__AscCs|iS(N(R(R((s /usr/lib64/python2.6/tabnanny.pyt get_linenoCscCs|iS(N(R(R((s /usr/lib64/python2.6/tabnanny.pytget_msgEscCs|iS(N(R(R((s /usr/lib64/python2.6/tabnanny.pytget_lineGs(t__name__t __module__t__doc__RRRR (((s /usr/lib64/python2.6/tabnanny.pyR<s    c CsOtii|ƒo·tii|ƒ o£tod|fGHnti|ƒ}xu|D]m}tii||ƒ}tii|ƒotii|ƒ ptii|dƒdjot|ƒqTqTWdSyt |ƒ}Wn*t j o}t d||fƒdSXtdjo d|GHnyt t i|iƒƒWnöt ij o}t d||fƒdStj o}t d ||fƒdStj o•}|iƒ}|iƒ}to*d ||fGHd |fGH|iƒGHnCd |jod |d }nto |GHn|G|Gt|ƒGHdSXtod|fGHndS(s~check(file_or_dir) If file_or_dir is a directory and not a symbolic link, then recursively descend the directory tree named by file_or_dir, checking all .py files along the way. If file_or_dir is an ordinary Python source file, it is checked for whitespace related problems. The diagnostic messages are written to standard output using the print statement. s%r: listing directoryiýÿÿÿs.pyNs%r: I/O Error: %sischecking %r ...s%r: Token Error: %ss%r: Indentation Error: %ss)%r: *** Line %d: trouble in tab city! ***soffending line: %rRt"s%r: Clean bill of health.(tostpathtisdirtislinkRtlistdirtjointnormcaseRtopentIOErrorRRttokenizetgenerate_tokenstreadlinet TokenErrortIndentationErrorRRR RRtrepr( tfiletnamestnametfullnametfRtnagtbadlineR((s /usr/lib64/python2.6/tabnanny.pyRJsT '       t WhitespacecBsSeZd\ZZd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS(s c Cs||_titi}}g}d}}}xª|iD]Ÿ}||jo|d}|d}q:||jof|d}|d}|t|ƒjo#|dg|t|ƒd}n||d||tcounttbR@RAtch((s /usr/lib64/python2.6/tabnanny.pyR›s*       #   cCs&|i\}}tt|ƒd|ƒS(Ni(RCtmaxR?(RRFttrailing((s /usr/lib64/python2.6/tabnanny.pytlongest_run_of_spaces´scCs^|i\}}d}x3t|t|ƒƒD]}|||||}q+W||||iS(Ni(RCtrangeR?RA(RttabsizeRFRJtilti((s /usr/lib64/python2.6/tabnanny.pyt indent_level¸s cCs|i|ijS(N(RC(Rtother((s /usr/lib64/python2.6/tabnanny.pytequalÏscCs’t|iƒ|iƒƒd}g}xftd|dƒD]Q}|i|ƒ|i|ƒjo,|i||i|ƒ|i|ƒfƒq9q9W|S(Ni(RIRKRLRPtappend(RRQR@Rtts((s /usr/lib64/python2.6/tabnanny.pytnot_equal_witnessÖs   cCs¢|i|ijotS|io|io|i|ijSt|iƒ|iƒƒd}x?td|dƒD]*}|i|ƒ|i|ƒjotSqpWtS(Nii( R@tFalseRDRARIRKRLRPtTrue(RRQR@RT((s /usr/lib64/python2.6/tabnanny.pytlessîs  cCs’t|iƒ|iƒƒd}g}xftd|dƒD]Q}|i|ƒ|i|ƒjo,|i||i|ƒ|i|ƒfƒq9q9W|S(Ni(RIRKRLRPRS(RRQR@RRT((s /usr/lib64/python2.6/tabnanny.pytnot_less_witnessÿs   ( R!R"R=R>RRKRPRRRURXRY(((s /usr/lib64/python2.6/tabnanny.pyR;„s       cCsNtd„|ƒ}d}t|ƒdjo|d}n|ddi|ƒS(NcSst|dƒS(i(R (ttup((s /usr/lib64/python2.6/tabnanny.pyt ss at tab sizeitsRs, (tmapR?R*(twtfirststprefix((s /usr/lib64/python2.6/tabnanny.pytformat_witnesses s cCs—ti}ti}ti}titif}tdƒg}d}xN|D]F\}}} } } ||jo d}qI||jotd}t|ƒ} |di| ƒp=|di| ƒ} dt | ƒ}t | d|| ƒ‚n|i | ƒqI||jod}|d=qI|ot||jogd}t| ƒ} |di | ƒp=|di | ƒ} dt | ƒ}t | d|| ƒ‚qqIqIWdS(NRiiiÿÿÿÿsindent not greater e.g. sindent not equal e.g. (R.tINDENTtDEDENTtNEWLINEtCOMMENTRR;RXRYRaRRSRRRU(ttokensRbRcRdtJUNKtindentst check_equalttypettokentstarttendRtthisguytwitnessR((s /usr/lib64/python2.6/tabnanny.pyRs8          t__main__((R#t __version__R%RRR.thasattrt ValueErrort__all__RRRRt ExceptionRRR;RaRR!(((s /usr/lib64/python2.6/tabnanny.pyt s&       :†  7