MINI MINI MANI MO

Path : /usr/lib64/python3.6/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/__pycache__/tabnanny.cpython-36.pyc

3


 \,@sdZdZddlZddlZddlZddlZeeds:eddddgZda	da
d	d
ZddZGd
dde
ZddZGdddZddZddZedkredS)aThe 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.
6NNLz4tokenize.NL doesn't exist -- tokenize module too oldcheckNannyNagprocess_tokenscGs:d}x$|D]}tjj|t|d}q
WtjjddS)N 
)sysstderrwritestr)argssepargr /usr/lib64/python3.6/tabnanny.pyerrprint#s

rcCsytjtjddd\}}Wn*tjk
rH}zt|dSd}~XnXx0|D](\}}|dkrhtda|dkrPtdaqPW|stdtjdddSx|D]}t|qWdS)NZqvz-qz-vzUsage:rz[-v] file_or_directory ...)getoptr
argverrorr
filename_onlyverboser)Zoptsrmsgoarrrrmain*s
rc@s0eZdZdZddZddZddZdd	Zd
S)rzk
    Raised by process_tokens() if detecting an ambiguous indent.
    Captured and handled in check().
    cCs||||_|_|_dS)N)linenorline)selfrrrrrr__init__AszNannyNag.__init__cCs|jS)N)r)r rrr
get_linenoCszNannyNag.get_linenocCs|jS)N)r)r rrrget_msgEszNannyNag.get_msgcCs|jS)N)r)r rrrget_lineGszNannyNag.get_lineN)__name__
__module____qualname____doc__r!r"r#r$rrrrr<s
c	%Cs"tjj|rtjj|rtr,td|ftj|}xT|D]L}tjj||}tjj|rhtjj|stjj|dddkr<t	|q<WdSyt
j|}Wn0tk
r}zt
d||fdSd}~XnXtdkrtd|zytt
j|jWnt
jk
r2}zt
d||fdSd}~Xntk
rb}zt
d	||fdSd}~Xntk
r}z||j}|j}trtd
||ftd|ft|jn6d|krd
|d
}trt|nt||t|dSd}~XnXWd|jXtrtd|fdS)a~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.
    z%r: listing directoryNz.pyz%r: I/O Error: %srzchecking %r ...z%r: Token Error: %sz%r: Indentation Error: %sz)%r: *** Line %d: trouble in tab city! ***zoffending line: %rr"z%r: Clean bill of health.)ospathisdirislinkrprintlistdirjoinnormcasertokenizeopenOSErrorrrgenerate_tokensreadline
TokenErrorIndentationErrorrr"r$r#rreprclose)	filenamesnamefullnamefrZnagbadlinerrrrrJsT





c@sLeZdZd\ZZddZddZddZdd	Zd
dZ	dd
Z
ddZdS)
Whitespacez 	c	Cs||_tjtj}}g}d}}}x~|jD]t}||krJ|d}|d}q,||kr|d}|d}|t|kr|dg|t|d}||d||<d}q,Pq,W||_||_t||f|_t|dk|_	dS)Nrr)
rawrCSTlennnttuplenorm	is_simple)	r ZwsrErFcountbrHrIZchrrrr!s(
zWhitespace.__init__cCs|j\}}tt|d|S)Nr)rKmaxrG)r rMtrailingrrrlongest_run_of_spacess
z Whitespace.longest_run_of_spacescCsL|j\}}d}x*t|t|D]}|||||}qW||||jS)Nr)rKrangerGrI)r tabsizerMrPZilirrrindent_levels

zWhitespace.indent_levelcCs|j|jkS)N)rK)r otherrrrequalszWhitespace.equalcCsft|j|jd}g}xFtd|dD]4}|j||j|kr*|j||j||j|fq*W|S)Nr)rOrQrRrUappend)r rVrHrtsrrrnot_equal_witnessszWhitespace.not_equal_witnesscCsr|j|jkrdS|jr(|jr(|j|jkSt|j|jd}x.td|dD]}|j||j|krNdSqNWdS)NFrT)rHrLrIrOrQrRrU)r rVrHrYrrrlessszWhitespace.lesscCsft|j|jd}g}xFtd|dD]4}|j||j|kr*|j||j||j|fq*W|S)Nr)rOrQrRrUrX)r rVrHrrYrrrnot_less_witnessszWhitespace.not_less_witnessN)r%r&r'rErFr!rQrUrWrZr\r]rrrrrCsrCcCs8dd|D}d}t|dkr&|d}|ddj|S)Ncss|]}t|dVqdS)rN)r
).0tuprrr	<genexpr>sz#format_witnesses.<locals>.<genexpr>zat tab sizersrz, )rGr2)wZfirstsprefixrrrformat_witnesses
s
rdcCstj}tj}tj}tjtjf}tdg}d}x|D]\}}}	}
}||krNd}q2||krd}t|}|dj|s|dj|}
dt	|
}t
|	d|||j|q2||krd}|d=q2|o||kr2d}t|}|d	j|s2|d
j
|}
dt	|
}t
|	d||q2WdS)Nrrrzindent not greater e.g. zindent not equal e.g. rererere)r4INDENTDEDENTNEWLINECOMMENTrrCr\r]rdrrXrWrZ)tokensrfrgrhZJUNKindentsZcheck_equaltypetokenstartendrZthisguyZwitnessrrrrrs6

__main__)r(__version__r,r
rr4hasattr
ValueError__all__rrrr	ExceptionrrrCrdrr%rrrr<module>
s(

=7

OHA YOOOO