Your IP : 3.133.133.79


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

3


 \�,�@s�dZdZddlZddlZddlZddlZeed�s:ed��dddgZda	da
d	d
�Zdd�ZGd
d�de
�Zdd�ZGdd�d�Zdd�Zdd�Zedkr�e�dS)a�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.
�6�N�NLz4tokenize.NL doesn't exist -- tokenize module too old�check�NannyNag�process_tokenscGs:d}x$|D]}tjj|t|��d}q
Wtjjd�dS)N�� �
)�sys�stderr�write�str)�args�sep�arg�r� /usr/lib64/python3.6/tabnanny.py�errprint#s

rcCs�ytjtjdd�d�\}}Wn*tjk
rH}zt|�dSd}~XnXx0|D](\}}|dkrhtda|dkrPtdaqPW|s�tdtjdd�dSx|D]}t|�q�WdS)N�Zqvz-qz-vzUsage:rz[-v] file_or_directory ...)�getoptr
�argv�errorr�
filename_only�verboser)Zoptsr�msg�o�arrrr�main*s
rc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)rzk
    Raised by process_tokens() if detecting an ambiguous indent.
    Captured and handled in check().
    cCs||||_|_|_dS)N)�linenor�line)�selfrrrrrr�__init__AszNannyNag.__init__cCs|jS)N)r)r rrr�
get_linenoCszNannyNag.get_linenocCs|jS)N)r)r rrr�get_msgEszNannyNag.get_msgcCs|jS)N)r)r rrr�get_lineGszNannyNag.get_lineN)�__name__�
__module__�__qualname__�__doc__r!r"r#r$rrrrr<s
c	%Cs"tjj|�r�tjj|�r�tr,td|f�tj|�}xT|D]L}tjj||�}tjj|�rhtjj|�s�tjj|dd��dkr<t	|�q<WdSyt
j|�}Wn0tk
r�}zt
d||f�dSd}~XnXtdkr�td|��zytt
j|j��W�n�t
jk
�r2}zt
d||f�dSd}~Xn�tk
�rb}zt
d	||f�dSd}~Xn�tk
�r�}z||j�}|j�}t�r�td
||f�td|f�t|j��n6d|k�r�d
|d
}t�r�t|�nt||t|��dSd}~XnXWd|j�Xt�rtd|f�dS)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 directory�Nz.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.���)�os�path�isdir�islinkr�print�listdir�join�normcaser�tokenize�open�OSErrorrr�generate_tokens�readline�
TokenError�IndentationErrorrr"r$r#r�repr�close)	�file�names�name�fullname�frZnag�badlinerrrrrJsT





c@sLeZdZd\ZZdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�ZdS)�
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)
�rawrC�S�T�len�n�nt�tuple�norm�	is_simple)	r ZwsrErF�count�brHrIZchrrrr!�s(
zWhitespace.__init__cCs|j\}}tt|�d|�S)Nr)rK�maxrG)r rM�trailingrrr�longest_run_of_spaces�s
z Whitespace.longest_run_of_spacescCsL|j\}}d}x*t|t|��D]}|||||}qW||||jS)Nr)rK�rangerGrI)r �tabsizerMrPZil�irrr�indent_level�s

zWhitespace.indent_levelcCs|j|jkS)N)rK)r �otherrrr�equal�szWhitespace.equalcCsft|j�|j��d}g}xFtd|d�D]4}|j|�|j|�kr*|j||j|�|j|�f�q*W|S)Nr)rOrQrRrU�append)r rVrHr�tsrrr�not_equal_witness�szWhitespace.not_equal_witnesscCsr|j|jkrdS|jr(|jr(|j|jkSt|j�|j��d}x.td|d�D]}|j|�|j|�krNdSqNWdS)NFr�T)rHrLrIrOrQrRrU)r rVrHrYrrr�less�szWhitespace.lesscCsft|j�|j��d}g}xFtd|d�D]4}|j|�|j|�kr*|j||j|�|j|�f�q*W|S)Nr)rOrQrRrUrX)r rVrHrrYrrr�not_less_witnessszWhitespace.not_less_witnessN)r%r&r'rErFr!rQrUrWrZr\r]rrrrrC�srCcCs8dd�|D�}d}t|�dkr&|d}|ddj|�S)Ncss|]}t|d�VqdS)rN)r
)�.0�tuprrr�	<genexpr>sz#format_witnesses.<locals>.<genexpr>zat tab sizer�srz, )rGr2)�wZfirsts�prefixrrr�format_witnesses
s
rdcCstj}tj}tj}tjtjf}td�g}d}x�|D]�\}}}	}
}||krNd}q2||kr�d}t|�}|dj|�s�|dj|�}
dt	|
�}t
|	d||��|j|�q2||kr�d}|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)r4�INDENT�DEDENT�NEWLINE�COMMENTrrCr\r]rdrrXrWrZ)�tokensrfrgrhZJUNK�indentsZcheck_equal�type�token�start�endrZthisguyZwitnessrrrrrs6

�__main__)r(�__version__r,r
rr4�hasattr�
ValueError�__all__rrrr�	ExceptionrrrCrdrr%rrrr�<module>
s(

=7