AlkantarClanX12

Your IP : 18.219.18.238


Current Path : /opt/alt/python37/lib64/python3.7/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/__pycache__/tabnanny.cpython-37.opt-1.pyc

B

� f�,�@s�dZdZddlZddlZddlZeed�s2ed��dddgZdada	d	d
�Z
dd�ZGd
d�de�Z
dd�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]}tj�|t|��d}q
Wtj�d�dS)N�� �
)�sys�stderr�write�str)�args�sep�arg�r�-/opt/alt/python37/lib64/python3.7/tabnanny.py�errprint"s

rc
Cs�ddl}y|�tjdd�d�\}}Wn,|jk
rR}zt|�dSd}~XYnXx0|D](\}}|dkrrtda|dkrZtdaqZW|s�tdtjdd�dSx|D]}t|�q�WdS)Nr�Zqvz-qz-vzUsage:z[-v] file_or_directory ...)�getoptr
�argv�errorr�
filename_only�verboser)rZoptsr�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__BszNannyNag.__init__cCs|jS)N)r)r rrr�
get_linenoDszNannyNag.get_linenocCs|jS)N)r)r rrr�get_msgFszNannyNag.get_msgcCs|jS)N)r)r rrr�get_lineHszNannyNag.get_lineN)�__name__�
__module__�__qualname__�__doc__r!r"r#r$rrrrr=s
c	
Cs&tj�|�r�tj�|�s�tr*td|f�t�|�}xR|D]J}tj�||�}tj�|�rdtj�|�r|tj�|dd��dkr:t	|�q:WdSyt
�|�}Wn2tk
r�}zt
d||f�dSd}~XYnXtdkr�td|��zytt
�|j��W�nt
jk
�r2}zt
d||f�dSd}~XYn�tk
�rd}zt
d	||f�dSd}~XYn�tk
�r�}z||��}|��}t�r�td
||f�td|f�t|���n6d|k�r�d
|d
}t�r�t|�nt||t|��dSd}~XYnXWd|��Xt�r"td|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�badlinerrrrrKsT





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)
�rawrB�S�T�len�n�nt�tuple�norm�	is_simple)	r ZwsrDrE�count�brGrHZchrrrr!�s(
zWhitespace.__init__cCs|j\}}tt|�d|�S)Nr)rJ�maxrF)r rL�trailingrrr�longest_run_of_spaces�s
z Whitespace.longest_run_of_spacescCsL|j\}}d}x*t|t|��D]}|||||}qW||||jS)Nr)rJ�rangerFrH)r �tabsizerLrOZil�irrr�indent_level�s

zWhitespace.indent_levelcCs|j|jkS)N)rJ)r �otherrrr�equal�szWhitespace.equalcCsft|��|���d}g}xFtd|d�D]4}|�|�|�|�kr*|�||�|�|�|�f�q*W|S)Nr)rNrPrQrT�append)r rUrGr�tsrrr�not_equal_witness�szWhitespace.not_equal_witnesscCsr|j|jkrdS|jr(|jr(|j|jkSt|��|���d}x.td|d�D]}|�|�|�|�krNdSqNWdS)NFr�T)rGrKrHrNrPrQrT)r rUrGrXrrr�less�szWhitespace.lesscCsft|��|���d}g}xFtd|d�D]4}|�|�|�|�kr*|�||�|�|�|�f�q*W|S)Nr)rNrPrQrTrW)r rUrGrrXrrr�not_less_witnessszWhitespace.not_less_witnessN)r%r&r'rDrEr!rPrTrVrYr[r\rrrrrB�srBcCs8dd�|D�}d}t|�dkr&|d}|dd�|�S)Ncss|]}t|d�VqdS)rN)r
)�.0�tuprrr�	<genexpr>sz#format_witnesses.<locals>.<genexpr>zat tab sizer�srz, )rFr1)�wZfirsts�prefixrrr�format_witnessess
rccCstj}tj}tj}tjtjf}td�g}d}x�|D]�\}}}	}
}||krNd}q2||kr�d}t|�}|d�|�s�|d�|�}
dt	|
�}t
|	d||��|�|�q2||kr�d}|d=q2|r2||kr2d}t|�}|d�|�s2|d�
|�}
dt	|
�}t
|	d||��q2WdS)Nrrr���zindent not greater e.g. zindent not equal e.g. )r3�INDENT�DEDENT�NEWLINE�COMMENTrrBr[r\rcrrWrVrY)�tokensrerfrgZJUNK�indentsZcheck_equal�type�token�start�endrZthisguyZwitnessrrrrrs6

�__main__)r(�__version__r+r
r3�hasattr�
ValueError�__all__rrrr�	ExceptionrrrBrcrr%rrrr�<module>
s&

=7