� !A?h6,��� dZddlZddlZddlZgd�Zdadad�Zd�ZGd�de ��Z d�Z Gd �d ��Z d �Z d �Zed kr e��dSdS)�6�N)�check�NannyNag�process_tokensc��d}|D]3}tj�|t|��z��d}�4tj�d��dS)N�� � )�sys�stderr�write�str)�args�sep�args �5/opt/alt/python-internal/lib64/python3.11/tabnanny.py�errprintr sY�� �C����� � ����s�3�x�x��(�(�(�����J���T������c�x�ddl} |�tjdd�d��\}}n'#|j$r}t |��Yd}~dSd}~wwxYw|D]%\}}|dkr t dza|dkr t dza�&|s#t dtjdd��dS|D]}t|���dS)Nr��qvz-qz-vzUsage:z[-v] file_or_directory ...)�getoptr �argv�errorr� filename_only�verboser)r�optsr�msg�o�ars r�mainr!'s����M�M�M���]�]�3�8�A�B�B�<��6�6� ��d�d�� �<������ � � ����������������"�"���1� ��9�9�)�A�-�M� ��9�9���k�G�� ����3�8�A�;�(D�E�E�E������� �c� � � � ��s�+2� A�A�Ac�(�eZdZ d�Zd�Zd�Zd�ZdS)rc�2�|||c|_|_|_dS�N)�linenor�line)�selfr%rr&s r�__init__zNannyNag.__init__@s��+1�3��(�� �T�X�t�y�y�yrc��|jSr$)r%�r's r� get_linenozNannyNag.get_linenoBs ���{�rc��|jSr$)rr*s r�get_msgzNannyNag.get_msgDs ���x�rc��|jSr$)r&r*s r�get_linezNannyNag.get_lineFs ���y�rN)�__name__� __module__� __qualname__r(r+r-r/�rrrr;sU�������=�=�=�����������rrc�~� tj�|��r�tj�|��s�trt |�d���tj|��}|D]�}tj�||��}tj�|��rtj�|��r+tj�|dd���dkrt|����dS tj |��}n,#t$r}t|�d|����Yd}~dSd}~wwxYwtdkrt d|z�� ttj|j�����n_#tj$r3}t|�d|����Yd}~|���dSd}~wt&$r3}t|�d|����Yd}~|���dSd}~wt($r�}|���}|���}trHt d ||fz��t d |����t |�����nAd |vrd |zd z}t0rt |��nt ||t3|����Yd}~|���dSd}~wwxYw |���n#|���wxYwtrt |�d ���dSdS)Nz: listing directory�����z.pyz : I/O Error: rzchecking %r ...z: Token Error: z: Indentation Error: z)%r: *** Line %d: trouble in tab city! ***zoffending line: r �"z: 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�fr�nag�badliner&s rrrIsZ��� �w�}�}�T��� �2�7�>�>�$�#7�#7� � � 5� �T�T�T�3� 4� 4� 4�� �4� � ��� � �D��w�|�|�D�$�/�/�H��� � �h�'�'� ��G�N�N�8�,�,� ��� � ��b�c�c��+�+�u�4�4��h�������� �M�$� � ���� ��������c�c�2�3�3�3�����������������{�{� ��$�&�'�'�'���x�/�� �;�;�<�<�<�<�� � �����$�$�$���4�5�5�5�����( ��� � � � � �����% ��������c�c�:�;�;�;����� ��� � � � � ����� � � � ��.�.�"�"���|�|�~�~�� � 3� �=��w��O� P� P� P� �E�$�$�0� 1� 1� 1� �#�+�+�-�-� � � � ��d�{�{�3��:��#3�D�� 3�e�D�k�k�k�k���g�t�D�z�z�2�2�2����� ��� � � � � ����� ���� =�0 ��� � � � ����� � � � �����5� �T�T�T�3�4�4�4�4�4�5�5sm� D"�" E �,E�E �,&F�L �K0�#G�7L � K0�H �2L � K0�B8K+�L �+K0�0L � Lc�B�eZdZd\ZZd�Zd�Zd�Zd�Zd�Z d�Z d�Z d S) � Whitespacez c��||_tjtj}}g}dx}x}}|jD]c}||kr |dz}|dz}�||krJ|dz}|dz}|t |��kr|dg|t |��z dzzz}||dz||<d}�c||_||_t|��|f|_t |��dk|_ dS)Nrr) �rawrP�S�T�len�n�nt�tuple�norm� is_simple) r'�wsrSrT�count�brVrW�chs rr(zWhitespace.__init__�s�������|�Z�\�1��������A���(� � �B��Q�w�w���E����E����q�����E���!�V����E� � �?�?�!�Q�C�1�s�5�z�z�>�A�+=�$>�>�E� ��8�a�<��a�������������%�L�L�!�O�� ��U���q�����rc�V�|j\}}tt|��dz |��S�Nr)rY�maxrU)r'r\�trailings r�longest_run_of_spacesz Whitespace.longest_run_of_spaces�s'���)���x��3�u�:�:�a�<��*�*�*rc��|j\}}d}t|t|����D]}|||z||zz}�||||jzzzS)Nr)rY�rangerUrW)r'�tabsizer\rb�il�is r� indent_levelzWhitespace.indent_level�sb���)���x� ���w��E� � �+�+� ,� ,�A��a��j�5��8�+�+�B�B��'�R�$�'�\�2�2�2rc�"�|j|jkSr$)rY)r'�others r�equalzWhitespace.equal�s���y�E�J�&�&rc�x�t|���|�����dz}g}td|dz��D]l}|�|��|�|��kr>|�||�|��|�|��f���m|Sr`�rarcreri�append�r'rkrVr �tss r�not_equal_witnesszWhitespace.not_equal_witness����� ��*�*�,�,��+�+�-�-� /� /�12� 3�� ����1�Q�3�-�-� 5� 5�B�� � ��$�$��(:�(:�2�(>�(>�>�>����2��,�,�R�0�0� �-�-�b�1�1�3�5�5�5���rc�^�|j|jkrdS|jr|jr|j|jkSt|���|�����dz}t d|dz��D]1}|�|��|�|��krdS�2dS)NFr�T)rVrZrWrarcreri)r'rkrVrqs r�lesszWhitespace.less�s��� �6�U�W� � ��5� �>� '�e�o� '��7�e�h�&� &� ��*�*�,�,��+�+�-�-� /� /�12� 3����1�Q�3�-�-� � �B�� � ��$�$��(:�(:�2�(>�(>�>�>��u�u�?��trc�x�t|���|�����dz}g}td|dz��D]l}|�|��|�|��kr>|�||�|��|�|��f���m|Sr`rnrps r�not_less_witnesszWhitespace.not_less_witnessrsrN) r0r1r2rSrTr(rcrirlrrrvrxr3rrrPrP�s������� �D�A�q�*)�)�)�2+�+�+�3�3�3�.'�'�'� � � �0 � � �" � � � � rrPc��d�|D��}d}t|��dkr|dz}|dzd�|��zS)Nc3�@K�|]}t|d��V��dS)rN)r)�.0�tups r� z#format_witnesses.. s,���� '� '�c�c�#�a�&�k�k� '� '� '� '� '� 'rz at tab sizer�sr z, )rUr=)�w�firsts�prefixs r�format_witnessesr� sM�� '� '�Q� '� '� '�F� �F� �1�v�v��z�z��#��� �C�<�$�)�)�F�+�+� +�+rc���tj}tj}tj}tjtjf}t d��g}d}|D�] \}}} } } ||krd}�||kr�d}t |��} |d�| ��sD|d�| ��} dt| ��z}t| d|| ���|� | ����||krd}|d=��|rt||vrpd}t | ��} |d� | ��sD|d� | ��} dt| ��z}t| d|| �����"dS)Nrrr�����zindent not greater e.g. zindent not equal e.g. )r?�INDENT�DEDENT�NEWLINE�COMMENT�NLrPrvrxr�rrorlrr)�tokensr�r�r��JUNK�indents� check_equal�type�token�start�endr&�thisguy�witnessrs rrrs��� �_�F� �_�F���G� � �X�[� (�D��"�~�~��G��K�+1�,4�,4�'��u�e�S�$� �7�?�?� �K�K� �V�^�^��K� ��'�'�G��2�;�#�#�G�,�,� 4�!�"�+�6�6�w�?�?��0�3C�G�3L�3L�L���u�Q�x��d�3�3�3� �N�N�7� #� #� #� #� �V�^�^��K��� � � � 4�T��-�-��K� ��&�&�G��2�;�$�$�W�-�-� 4�!�"�+�7�7��@�@��.�1A�'�1J�1J�J���u�Q�x��d�3�3�3��Y,4�,4r�__main__)� __version__r7r r?�__all__rrrr!� ExceptionrrrPr�rr0r3rr�r�s �� �$� � � � � � � � � ����� 1� 1� 1�� ��� �������( � � � � �y� � � �;5�;5�;5�zD�D�D�D�D�D�D�D�L,�,�,�44�44�44�n �z����D�F�F�F�F�F��r