OwlCyberSecurity - MANAGER
Edit File: tabnanny.cpython-37.pyc
B ����� f�,������������������@���s����d�Z�dZddlZddlZddlZeed�s2ed��dddgZdada d d ��Z dd��ZG�d d��de�Z dd��ZG�dd��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_tokensc��������������G���s:���d}x$|�D�]}t�j�|t|����d}q W�t�j�d��d�S�)N��� � )�sys�stderr�write�str)�args�sep�arg��r����-/opt/alt/python37/lib64/python3.7/tabnanny.py�errprint"���s ���� r���c����������� ���C���s����dd�l�}�y|���tjdd���d�\}}W�n,�|�jk rR�}�zt|��d�S�d�}~X�Y�nX�x0|D�](\}}|dkrrtd�a|dkrZtd�aqZW�|s�tdtjd�d��d�S�x|D�]}t|��q�W�d�S�)Nr�������Zqvz-qz-vzUsage:z[-v] file_or_directory ...)�getoptr ����argv�errorr���� filename_only�verboser���)r���Zoptsr����msg�o�ar���r���r���r����main)���s ���� r���c���������������@���s0���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd S�)r���zk Raised by process_tokens() if detecting an ambiguous indent. Captured and handled in check(). c�������������C���s���|||��|�_�|�_|�_d�S�)N)�linenor����line)�selfr���r���r���r���r���r����__init__B���s����zNannyNag.__init__c�������������C���s���|�j�S�)N)r���)r ���r���r���r���� get_linenoD���s����zNannyNag.get_linenoc�������������C���s���|�j�S�)N)r���)r ���r���r���r����get_msgF���s����zNannyNag.get_msgc�������������C���s���|�j�S�)N)r���)r ���r���r���r����get_lineH���s����zNannyNag.get_lineN)�__name__� __module__�__qualname__�__doc__r!���r"���r#���r$���r���r���r���r���r���=���s ���c������� ��� ���C���s&��t�j�|��r�t�j�|��s�tr*td|�f���t��|��}xR|D�]J}t�j�|�|�}t�j�|�rdt�j�|�r|t�j�|dd���dkr:t |��q:W�dS�yt �|��}W�n2�tk r��}�zt d|�|f���dS�d}~X�Y�nX�tdkr�td|�����zytt �|j���W��n�t jk �r2�}�zt d|�|f���dS�d}~X�Y�n��tk �rd�}�zt d |�|f���dS�d}~X�Y�n��tk �r��}�z||���}|���}t�r�td |�|f���td|f���t|�����n6d|�k�r�d |��d �}�t�r�t|���nt|�|t|���dS�d}~X�Y�nX�W�d|����X�t�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: %sr���zchecking %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�OSErrorr���r����generate_tokens�readline� TokenError�IndentationErrorr���r"���r$���r#���r����repr�close) �file�names�name�fullname�fr���Znag�badliner���r���r���r���r���K���sT���� �� c���������������@���sL���e�Zd�Zd\ZZdd��Zdd��Zdd��Zdd ��Zd d��Z dd ��Z dd��ZdS�)� Whitespacez c������� ������C���s����||�_�tjtj�}}g�}d�}�}}x~|�j�D�]t}||krJ|d�}|d�}q,||kr�|d�}|d�}|t|�kr�|dg|t|��d���}||�d�||<�d}q,P�q,W�||�_||�_t|�|f|�_t|�dk|�_ d�S�)Nr���r���) �rawrB����S�T�len�n�nt�tuple�norm� is_simple) r ���ZwsrD���rE����count�brG���rH���Zchr���r���r���r!�������s(���� zWhitespace.__init__c�������������C���s���|�j�\}}tt|�d�|�S�)Nr���)rJ����maxrF���)r ���rL����trailingr���r���r����longest_run_of_spaces����s���� z Whitespace.longest_run_of_spacesc�������������C���sL���|�j�\}}d}x*t|t|��D�]}|||�||���}qW�||||�j���S�)Nr���)rJ����rangerF���rH���)r ����tabsizerL���rO���Zil�ir���r���r����indent_level����s ���� zWhitespace.indent_levelc�������������C���s���|�j�|j�kS�)N)rJ���)r ����otherr���r���r����equal����s����zWhitespace.equalc�������������C���sf���t�|����|����d�}g�}xFtd|d��D�]4}|��|�|�|�kr*|�||��|�|�|�f��q*W�|S�)Nr���)rN���rP���rQ���rT����append)r ���rU���rG���r����tsr���r���r����not_equal_witness����s����zWhitespace.not_equal_witnessc�������������C���sr���|�j�|j�krdS�|�jr(|jr(|�j|jkS�t|����|����d�}x.td|d��D�]}|��|�|�|�krNdS�qNW�dS�)NFr�������T)rG���rK���rH���rN���rP���rQ���rT���)r ���rU���rG���rX���r���r���r����less����s����zWhitespace.lessc�������������C���sf���t�|����|����d�}g�}xFtd|d��D�]4}|��|�|�|�kr*|�||��|�|�|�f��q*W�|S�)Nr���)rN���rP���rQ���rT���rW���)r ���rU���rG���r���rX���r���r���r����not_less_witness��s����zWhitespace.not_less_witnessN)r%���r&���r'���rD���rE���r!���rP���rT���rV���rY���r[���r\���r���r���r���r���rB�������s���rB���c�������������C���s8���dd��|�D��}d}t�|��dkr&|d�}|d�d�|��S�)Nc�������������s���s���|�]}t�|d���V��qdS�)r���N)r ���)�.0�tupr���r���r���� <genexpr>��s����z#format_witnesses.<locals>.<genexpr>zat tab sizer����sr���z, )rF���r1���)�wZfirsts�prefixr���r���r����format_witnesses��s ����rc���c�������������C���s��t�j}t�j}t�j}t�jt�jf}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�||��q2W�d�S�)Nr���r���r������zindent not greater e.g. zindent not equal e.g. )r3����INDENT�DEDENT�NEWLINE�COMMENTr���rB���r[���r\���rc���r���rW���rV���rY���)�tokensre���rf���rg���ZJUNK�indentsZcheck_equal�type�token�start�endr���ZthisguyZwitnessr���r���r���r���r�����s6���� �__main__)r(����__version__r+���r ���r3����hasattr� ValueError�__all__r���r���r���r���� Exceptionr���r���rB���rc���r���r%���r���r���r���r����<module> ���s&��� =�7