Your IP : 3.144.30.14


Current Path : /opt/alt/python310/lib64/python3.10/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/__pycache__/tabnanny.cpython-310.pyc

o

6��f0,�@s�dZdZddlZddlZddlZgd�Zdadadd�Zdd�Z	Gd	d
�d
e
�Zdd�ZGd
d�d�Z
dd�Zdd�ZedkrDe	�dSdS)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)�check�NannyNag�process_tokenscGs6d}|D]}tj�|t|��d}qtj�d�dS)N�� �
)�sys�stderr�write�str)�args�sep�arg�r�//opt/alt/python310/lib64/python3.10/tabnanny.py�errprint s
rc
Cs�ddl}z|�tjdd�d�\}}Wn|jy+}zt|�WYd}~dSd}~ww|D]\}}|dkr:tda|dkrBtdaq.|sPtdtjdd�dS|D]}t|�qRdS)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__@szNannyNag.__init__cC�|jSr)r�r rrr�
get_linenoB�zNannyNag.get_linenocCr"r)rr#rrr�get_msgDr%zNannyNag.get_msgcCr"r)rr#rrr�get_lineFr%zNannyNag.get_lineN)�__name__�
__module__�__qualname__�__doc__r!r$r&r'rrrrr;src	
CsNtj�|�rDtj�|�sDtrtd|f�t�|�}|D]%}tj�||�}tj�|�r1tj�|�r=tj�|dd��dkrAt	|�qdSzt
�|�}Wntyf}zt
d||f�WYd}~dSd}~wwtdkrqtd|�z�z
tt
�|j��Wn�t
jy�}zt
d||f�WYd}~W|��dSd}~wty�}zt
d	||f�WYd}~W|��dSd}~wt�y
}zE|��}|��}tr�td
||f�td|f�t|���nd|vr�d
|d
}tr�t|�nt||t|��WYd}~W|��dSd}~wwW|��n|��wt�r%td|f�dSdS)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�close�IndentationErrorrr$r'r&r�repr)	�file�names�name�fullname�frZnagZbadlinerrrrrIsj


������������rc@sLeZdZd\ZZdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�ZdS)�
Whitespacez 	c	Cs�||_tjtj}}g}d}}}|jD]9}||kr$|d}|d}q||krN|d}|d}|t|�krC|dg|t|�d}||d||<d}q||_||_t|�|f|_t|�dk|_	dS)Nrr)
�rawrD�S�T�len�n�nt�tuple�norm�	is_simple)	r ZwsrFrG�count�brIrJZchrrrr!�s(

zWhitespace.__init__cCs|j\}}tt|�d|�S�Nr)rL�maxrH)r rN�trailingrrr�longest_run_of_spaces�s
z Whitespace.longest_run_of_spacescCsH|j\}}d}t|t|��D]}|||||}q||||jS)Nr)rL�rangerHrJ)r �tabsizerNrRZil�irrr�indent_level�s

zWhitespace.indent_levelcCs|j|jkSr)rL)r �otherrrr�equal�szWhitespace.equalcCsbt|��|���d}g}td|d�D]}|�|�|�|�kr.|�||�|�|�|�f�q|SrP�rQrSrTrW�append�r rXrIr�tsrrr�not_equal_witness������zWhitespace.not_equal_witnesscCsp|j|jkrdS|jr|jr|j|jkSt|��|���d}td|d�D]}|�|�|�|�kr5dSq&dS)NFr�T)rIrMrJrQrSrTrW)r rXrIr]rrr�less�s���zWhitespace.lesscCsbt|��|���d}g}td|d�D]}|�|�|�|�kr.|�||�|�|�|�f�q|SrPrZr\rrr�not_less_witnessr_zWhitespace.not_less_witnessN)r(r)r*rFrGr!rSrWrYr^rarbrrrrrD�srDcCs8dd�|D�}d}t|�dkr|d}|dd�|�S)Ncss�|]	}t|d�VqdS)rN)r)�.0�tuprrr�	<genexpr>
s�z#format_witnesses.<locals>.<genexpr>zat tab sizer�srz, )rHr4)�wZfirsts�prefixrrr�format_witnessess
ricCstj}tj}tj}tjtjf}td�g}d}|D]l\}}}	}
}||kr&d}q||krRd}t|�}|d�|�sL|d�|�}
dt	|
�}t
|	d||��|�|�q||kr\d}|d=q|r�||vr�d}t|�}|d�|�s�|d�
|�}
dt	|
�}t
|	d||��qdS)Nrrr���zindent not greater e.g. zindent not equal e.g. )r6�INDENT�DEDENT�NEWLINE�COMMENT�NLrDrarbrirr[rYr^)�tokensrkrlrmZJUNK�indentsZcheck_equal�type�token�start�endrZthisguyZwitnessrrrrrs:

��r�__main__)r+�__version__r.r	r6�__all__rrrr�	ExceptionrrrDrirr(rrrr�<module>s&=7
�

?>