OwlCyberSecurity - MANAGER
Edit File: tabnanny.cpython-39.opt-1.pyc
a ����?�g�,����������������������@���s����d�Z�dZddlZddlZddlZeed�s2ed��g�d�Zdada dd��Z d d ��ZG�dd��de�Z d d��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���s6���d}|�D�]}t�j�|t|����d}qt�j�d��d�S�)N��� � )�sys�stderr�write�str)�args�sep�arg��r����-/opt/alt/python39/lib64/python3.9/tabnanny.py�errprint"���s ����r���c��������������� ���C���s����dd�l�}�z|���tjdd���d�\}}W�n0�|�jyV�}�zt|��W�Y�d�}~d�S�d�}~0�0�|D�](\}}|dkrttd�a|dkr\td�aq\|s�tdtjd�d��d�S�|D�]}t|��q�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�r���)r����r!���r���r���r���� get_linenoD���s����zNannyNag.get_linenoc�����������������C���s���|�j�S�r���)r���r#���r���r���r����get_msgF���s����zNannyNag.get_msgc�����������������C���s���|�j�S�r���)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 ���r���c����������� ��� ���C���sX��t�j�|��r�t�j�|��s�tr*td|�f���t��|��}|D�]J}t�j�|�|�}t�j�|�rbt�j�|�rzt�j�|dd���dkr8t |��q8dS�zt �|��}W�n6�ty��}�zt d|�|f���W�Y�d}~dS�d}~0�0�tdkr�td|�����zPztt �|j���W��n,�t j�y@�}�z(t d|�|f���W�Y�d}~W�|����dS�d}~0��t�y��}�z(t d |�|f���W�Y�d}~W�|����dS�d}~0��t�y(�}�z�|���}|���}t�r�td |�|f���td|f���t|�����n6d|�v��r�d |��d �}�t�r�t|���nt|�|t|���W�Y�d}~W�|����dS�d}~0�0�W�|����n |����0�t�rTtd|�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�close�IndentationErrorr���r$���r&���r%���r����repr) �file�names�name�fullname�fr���ZnagZbadliner ���r���r���r���r���K���s`���� �� ���r���c�������������������@���sL���e�Zd�Zd\ZZdd��Zdd��Zdd��Zdd ��Zd d��Z dd ��Z dd��ZdS�)� Whitespacez c����������� ������C���s����||�_�tjtj�}}g�}d�}�}}|�j�D�]v}||krH|d�}|d�}q*||kr�|d�}|d�}|t|�kr�|dg|t|��d���}||�d�||<�d}q*�q�q*||�_||�_t|�|f|�_t|�dk|�_ d�S�)Nr���r���) �rawrC����S�T�len�n�nt�tuple�norm� is_simple) r!���ZwsrE���rF����count�brH���rI���Zchr���r���r���r"�������s(���� zWhitespace.__init__c�����������������C���s���|�j�\}}tt|�d�|�S��Nr���)rK����maxrG���)r!���rM����trailingr���r���r����longest_run_of_spaces����s���� z Whitespace.longest_run_of_spacesc�����������������C���sH���|�j�\}}d}t|t|��D�]}|||�||���}q||||�j���S�)Nr���)rK����rangerG���rI���)r!����tabsizerM���rQ���Zil�ir���r���r����indent_level����s ���� zWhitespace.indent_levelc�����������������C���s���|�j�|j�kS�r���)rK���)r!����otherr���r���r����equal����s����zWhitespace.equalc�����������������C���sb���t�|����|����d�}g�}td|d��D�]4}|��|�|�|�kr(|�||��|�|�|�f��q(|S�rO����rP���rR���rS���rV����append�r!���rW���rH���r����tsr���r���r����not_equal_witness����s�������zWhitespace.not_equal_witnessc�����������������C���sp���|�j�|j�krdS�|�jr(|jr(|�j|jkS�t|����|����d�}td|d��D�]}|��|�|�|�krL�dS�qLdS�)NFr�������T)rH���rL���rI���rP���rR���rS���rV���)r!���rW���rH���r\���r���r���r����less����s������zWhitespace.lessc�����������������C���sb���t�|����|����d�}g�}td|d��D�]4}|��|�|�|�kr(|�||��|�|�|�f��q(|S�rO���rY���r[���r���r���r����not_less_witness��s�������zWhitespace.not_less_witnessN)r'���r(���r)���rE���rF���r"���rR���rV���rX���r]���r_���r`���r���r���r���r���rC�������s���rC���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>�������z#format_witnesses.<locals>.<genexpr>zat tab sizer����sr���z, )rG���r3���)�wZfirsts�prefixr���r���r����format_witnesses��s ����rh���c�����������������C���s��t�j}t�j}t�j}t�jt�jf}td�g}d}|�D�]�\}}} } }||krLd}q0||kr�d}t|�}|d��|�s�|d��|�} dt | ��}t | d�||��|�|��q0||kr�d}|d=�q0|r0||vr0d}t|�}|d��|�s0|d�� |�} dt | ��}t | d�||��q0d�S�)Nr���r���r������zindent not greater e.g. zindent not equal e.g. )r5����INDENT�DEDENT�NEWLINE�COMMENTr���rC���r_���r`���rh���r���rZ���rX���r]���)�tokensrj���rk���rl���ZJUNK�indentsZcheck_equal�type�token�start�endr ���ZthisguyZwitnessr���r���r���r���r�����s6���� r����__main__)r*����__version__r-���r ���r5����hasattr� ValueError�__all__r���r���r���r���� Exceptionr���r���rC���rh���r���r'���r���r���r���r����<module>���s&��� =�7