Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/
Upload File :
Current File : //usr/lib/python2.7/tabnanny.pyc


|_c@sdZdZddlZddlZddlZddlZeedsZedndddgZd	a	d	a
d
ZdZde
fdYZd
ZdddYZdZdZedkrendS(sThe 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.
t6iNtNLs4tokenize.NL doesn't exist -- tokenize module too oldtchecktNannyNagtprocess_tokensicGsKd}x.|D]&}tjj|t|d}q
WtjjddS(Ntt s
(tsyststderrtwritetstr(targstseptarg((s/usr/lib/python2.7/tabnanny.pyterrprint#s


cCsy#tjtjdd\}}Wn!tjk
rF}t|dSXxF|D]>\}}|dkrstdan|dkrNtdaqNqNW|stdtjdddSx|D]}t|qWdS(Nitqvs-qs-vsUsage:is[-v] file_or_directory ...(tgetoptRtargvterrorRt
filename_onlytverboseR(toptsRtmsgtotaR
((s/usr/lib/python2.7/tabnanny.pytmain*s#


cBs2eZdZdZdZdZdZRS(sg
    Raised by tokeneater() if detecting an ambiguous indent.
    Captured and handled in check().
    cCs!||||_|_|_dS(N(tlinenoRtline(tselfRRR((s/usr/lib/python2.7/tabnanny.pyt__init__AscCs|jS(N(R(R((s/usr/lib/python2.7/tabnanny.pyt
get_linenoCscCs|jS(N(R(R((s/usr/lib/python2.7/tabnanny.pytget_msgEscCs|jS(N(R(R((s/usr/lib/python2.7/tabnanny.pytget_lineGs(t__name__t
__module__t__doc__RRRR (((s/usr/lib/python2.7/tabnanny.pyR<s
			c	Cs4tjj|rtjj|rtr:d|fGHntj|}xq|D]i}tjj||}tjj|rtjj|stjj|ddkrPt|qPqPWdSyt	|}Wn(t
k
r}td||fdSXtdkrd|GHnytt
j|jWnt
jk
r[}td||fdStk
r}td	||fdStk
r}|j}|j}trd
||fGHd|fGH|jGHn>d|krd
|d
}ntr|GHn|G|Gt|GHdSXtr0d|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 directoryis.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/lib/python2.7/tabnanny.pyRJsR
%
t
WhitespacecBsSeZd\ZZdZdZdZdZdZdZ	dZ
RS(s 	c	Cs||_tjtj}}g}d}}}x|jD]}||krc|d}|d}q:||kr|d}|d}|t|kr|dg|t|d}n||d||<d}q:Pq:W||_||_t||f|_t|dk|_	dS(Nii(
trawR;tStTtlentntntttupletnormt	is_simple(	RtwsR=R>tcounttbR@RAtch((s/usr/lib/python2.7/tabnanny.pyRs(	



"			cCs&|j\}}tt|d|S(Ni(RCtmaxR?(RRFttrailing((s/usr/lib/python2.7/tabnanny.pytlongest_run_of_spacesscCs^|j\}}d}x3t|t|D]}|||||}q+W||||jS(Ni(RCtrangeR?RA(RttabsizeRFRJtilti((s/usr/lib/python2.7/tabnanny.pytindent_levels
cCs|j|jkS(N(RC(Rtother((s/usr/lib/python2.7/tabnanny.pytequalscCst|j|jd}g}xdtd|dD]O}|j||j|kr9|j||j||j|fq9q9W|S(Ni(RIRKRLRPtappend(RRQR@Rtts((s/usr/lib/python2.7/tabnanny.pytnot_equal_witnesss	cCs|j|jkrtS|jr8|jr8|j|jkSt|j|jd}x=td|dD](}|j||j|krktSqkWtS(Nii(	R@tFalseRDRARIRKRLRPtTrue(RRQR@RT((s/usr/lib/python2.7/tabnanny.pytlessscCst|j|jd}g}xdtd|dD]O}|j||j|kr9|j||j||j|fq9q9W|S(Ni(RIRKRLRPRS(RRQR@RRT((s/usr/lib/python2.7/tabnanny.pytnot_less_witnesss	(R!R"R=R>RRKRPRRRURXRY(((s/usr/lib/python2.7/tabnanny.pyR;s						cCsLtd|}d}t|dkr7|d}n|ddj|S(NcSst|dS(Ni(R
(ttup((s/usr/lib/python2.7/tabnanny.pyt<lambda>ssat tab sizeitsRs, (tmapR?R*(twtfirststprefix((s/usr/lib/python2.7/tabnanny.pytformat_witnesses
s

cCstj}tj}tj}tjtjf}tdg}d}xA|D]9\}}}	}
}||krsd}qI||krd}t|}|dj|s|dj|}
dt	|
}t
|	d||n|j|qI||krd}|d=qI|rI||krId}t|}|dj|s|dj
|}
dt	|
}t
|	d||qqIqIWdS(NRiiisindent not greater e.g. sindent not equal e.g. (R.tINDENTtDEDENTtNEWLINEtCOMMENTRR;RXRYRaRRSRRRU(ttokensRbRcRdtJUNKtindentstcheck_equalttypettokentstarttendRtthisguytwitnessR((s/usr/lib/python2.7/tabnanny.pyRs6				

t__main__((R#t__version__R%RRR.thasattrt
ValueErrort__all__RRRRt	ExceptionRRR;RaRR!(((s/usr/lib/python2.7/tabnanny.pyt<module>
s&			:		7