OwlCyberSecurity - MANAGER
Edit File: tabnanny.cpython-312.opt-1.pyc
� ������h-����������������������������d�Z�dZddlZddlZddlZg�d�Zdadad��Zd��Z �G�d��de �������Zd ��Z�G�d ��d�������Z d��Zd ��Zd��Zedk(��r�e ���������yy)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_tokensc�������������������������d}|�D�]/��}t���������j������������������j������������������|t��������|�������z�����������d}�1�t���������j������������������j������������������d��������t��������j������������������d��������y�)N��� � ����)�sys�stderr�write�str�exit)�args�sep�args��� �//opt/alt/python312/lib64/python3.12/tabnanny.py�errprintr��� ���sO������ �C���� � ����s�3�x��(�������J�J���T���H�H�Q�K�����c�������������������Z����dd�l�}� �|�j������������������t��������j������������������dd��d�������\��}}D�]"��\��}}|dk(��r t ��������dz���a|dk(��s�t��������dz���a�$�st ��������dt��������j������������������d���d��������|D�] ��}t��������|����������y�#�|�j������������������$�r}t ��������|��������Y�d�}~�yd�}~ww�xY�w)Nr���r����qvz-qz-vzUsage:z[-v] file_or_directory ...)�getoptr����argv�errorr���� filename_only�verboser���)r����optsr����msg�o�ar���s��� r����mainr"���(���s����������]�]�3�8�8�A�B�<��6� ��d�����1���9�)�A�-�M���9���k�G� �� ����3�8�8�A�;�(D�E��� �c� ������<�<����� � ���s����&B��B*�B%�%B*c��������������������(�����e�Zd�ZdZd��Zd��Zd��Zd��Zy)r���zk Raised by process_tokens() if detecting an ambiguous indent. Captured and handled in check(). c������������������0�����|||c|�_���������|�_��������|�_��������y��N)�linenor����line)�selfr&���r���r'���s��� r����__init__zNannyNag.__init__?���s������+1�3��(���T�X�t�yr���c�����������������������|�j�������������������S�r%���)r&����r(���s��� r���� get_linenozNannyNag.get_linenoA���s�������{�{�r���c�����������������������|�j�������������������S�r%���)r���r+���s��� r����get_msgzNannyNag.get_msgC���s�������x�x�r���c�����������������������|�j�������������������S�r%���)r'���r+���s��� r����get_linezNannyNag.get_lineE���s�������y�y�r���N)�__name__� __module__�__qualname__�__doc__r)���r,���r.���r0�����r���r���r���r���:���s�������=���r���r���c����������������������t���������j������������������j������������������|��������r�t���������j������������������j������������������|��������s�t��������rt��������|��d���������t��������j������������������|��������}|D�]���}t���������j������������������j������������������|�|�������}t���������j������������������j������������������|�������rt���������j������������������j������������������|�������r&t���������j������������������j������������������|dd��������dk(��s��t��������|�����������y �t��������j������������������|��������}t��������dkD��rt��������d|�z���������� �t��������t��������j������������������|j ��������������������������������� �|j%���������������������������t��������rt��������|��d���������yy#�t��������$�r}t��������|��d|����������Y�d}~yd}~ww�xY�w#�t��������j"������������������$�r*}t��������|��d|����������Y�d}~|j%���������������������������yd}~wt&��������$�r*}t��������|��d |����������Y�d}~|j%���������������������������yd}~wt(��������$�r*}t��������|��d |����������Y�d}~|j%���������������������������yd}~wt*��������$�r�}|j-��������������������������}|j/��������������������������}t��������r8t��������d|�|fz����������t��������d|����������t��������|j1����������������������������������n4d |�v�rd|�z���dz���}�t2��������rt��������|���������nt��������|�|t5��������|���������������Y�d}~|j%���������������������������yd}~ww�xY�w#�|j%���������������������������w�xY�w)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: listing directory���Nz.pyz : I/O Error: r���zchecking %r ...z: Token Error: z: Indentation Error: z: Syntax 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�OSErrorr���r����generate_tokens�readline� TokenError�close�IndentationError�SyntaxErrorr���r,���r0���r.���r����repr) �file�names�name�fullname�fr����nag�badliner'���s ��� r���r���r���H���sB������ �w�w�}�}�T��2�7�7�>�>�$�#7���T�3�4�� � �4� ���D��w�w�|�|�D�$�/�H���� � �h�'��G�G�N�N�8�,���� � ��b�c��+�u�4��h����� ���M�M�$��� ���{� ��$�&�'���x�/�/�� � �;�<�8� ��� �� �T�3�4����M������c�2�3������������$��4�5��0� ��� ��-������c�:�;��(� ��� ��%�����4��5�6�� � ��� �������.�.�"���|�|�~����=��w��O�P��$�0�1��#�+�+�-� ��d�{�3��:��#3�D��e�D�k���g�t�D�z�2��� ��� ����� ��� �sy�����E<��-(F"��< F�F�F�"K4�5G�K7��K4�&H�6K7��K4�H<�'K7��<K4�BK/�K7��/K4�4K7��7L c��������������������@�����e�Zd�Zd\��ZZd��Zd��Zd��Zd��Zd��Z d��Z d��Zy ) � Whitespacez c����������������������||�_���������t��������j������������������t��������j������������������}}g�}dx}x}}|�j�������������������D�]V��}||k(��r|dz���}|dz���}�||k(��r>|dz���}|dz���}|t ��������|�������k\��r|dg|t ��������|�������z ��dz���z��z���}||���dz���||<���d}�V�n�||�_��������||�_��������t��������|�������|f|�_��������t ��������|�������dk��|�_ ��������y�)Nr���r���) �rawrS����S�T�len�n�nt�tuple�norm� is_simple) r(����wsrV���rW����count�brY���rZ����chs ��� r���r)���zWhitespace.__init__����s�����������|�|�Z�\�\�1��������A���(�(�B��Q�w���E����E���q����E���!�V����E� �?�!�Q�C�1�s�5�z�>�A�+=�$>�>�E� ��8�a�<��a���������������%�L�!�O�� ��U��q���r���c������������������P�����|�j�������������������\��}}t��������t��������|�������dz ��|�������S��Nr���)r\����maxrX���)r(���r_����trailings��� r����longest_run_of_spacesz Whitespace.longest_run_of_spaces����s$�������)�)���x��3�u�:�a�<��*�*r���c�����������������������|�j�������������������\��}}d}t��������|t��������|��������������D�]��}|||z��||���z��z���}��||||�j������������������z���z��z���S�)Nr���)r\����rangerX���rZ���)r(����tabsizer_���re����il�is��� r����indent_levelzWhitespace.indent_level����sZ��������)�)���x� ���w��E� �+�A��a��j�5��8�+�+�B��,��'�R�$�'�'�\�2�2�2r���c������������������4�����|�j�������������������|j�������������������k(��S�r%���)r\���)r(����others��� r����equalzWhitespace.equal����s�������y�y�E�J�J�&�&r���c������������������4����t��������|�j��������������������������|j���������������������������������dz���}g�}t��������d|dz����������D�]X��}|�j������������������|�������|j������������������|�������k7��s�'|j ������������������||�j������������������|�������|j������������������|�������f���������Z�|S�rc����rd���rf���rh���rl����append�r(���rn���rY���r!����tss��� r����not_equal_witnesszWhitespace.not_equal_witness�������������*�*�,��+�+�-� /�12� 3������1�Q�3�-�B�� � ��$��(:�(:�2�(>�>����2��,�,�R�0� �-�-�b�1�3��5�� � ��r���c������������������b����|�j�������������������|j�������������������k\��ry|�j������������������r%|j������������������r|�j������������������|j������������������k��S�t��������|�j ��������������������������|j ���������������������������������dz���}t��������d|dz����������D�]'��}|�j ������������������|�������|j ������������������|�������k\��s�'�y�y)NFr�������T)rY���r]���rZ���rd���rf���rh���rl���)r(���rn���rY���rt���s��� r����lesszWhitespace.less����s��������6�6�U�W�W����>�>�e�o�o��7�7�e�h�h�&�&���*�*�,��+�+�-� /�12� 3�����1�Q�3�-�B�� � ��$��(:�(:�2�(>�>��� ��r���c������������������4����t��������|�j��������������������������|j���������������������������������dz���}g�}t��������d|dz����������D�]X��}|�j������������������|�������|j������������������|�������k\��s�'|j ������������������||�j������������������|�������|j������������������|�������f���������Z�|S�rc���rq���rs���s��� r����not_less_witnesszWhitespace.not_less_witness��rv���r���N)r1���r2���r3���rV���rW���r)���rf���rl���ro���ru���ry���r{���r5���r���r���rS���rS�������s.�������D�A�q�*)�2+�3�.'� �0�" r���rS���c������������������l�����d��|�D���������}d}t��������|��������dkD��r|dz���}|dz���dj������������������|�������z���S�)Nc��������������3����8���K����|�]��}t��������|d����������������y�w)r���N)r���)�.0�tups��� r���� <genexpr>z#format_witnesses.<locals>.<genexpr>��s��������� '�Q�c�c�#�a�&�k�Q�s����zat tab sizer����sr ���z, )rX���r?���)�w�firsts�prefixs��� r����format_witnessesr������s=������ '�Q� '�F� �F� �1�v��z��#����C�<�$�)�)�F�+�+�+r���c����������������������� �t��������|���������y�#�t��������$�r0}t��������|j������������������|j������������������|j ��������������������������d�}~ww�xY�wr%���)�_process_tokens�TabErrorr���r&���r����text)�tokens�es��� r���r���r�����s:������0�������0��q�x�x�������/�/��0�s������ A�+A�Ac����������������������t���������j������������������}t���������j������������������}t���������j������������������}t���������j������������������t���������j ������������������f}t ��������d�������g}d}|�D�]���\��}}} } }||k(��rd}�||k(��red}t ��������|�������}|d���j������������������|�������s2|d���j������������������|�������} dt��������| �������z���}t��������| d���||��������|j������������������|���������{||k(��rd}|d=���|s��||vs��d}t ��������|�������}|d���j������������������|�������r��|d���j������������������|�������} dt��������| �������z���}t��������| d���||���������y�)Nr���r���r������zindent not greater e.g. zindent not equal e.g. )rA����INDENT�DEDENT�NEWLINE�COMMENT�NLrS���ry���r{���r����r���rr���ro���ru���)r����r����r����r�����JUNK�indents�check_equal�type�token�start�endr'����thisguy�witnessr���s��� r���r����r������sL����� �_�_�F� �_�_�F����G����X�[�[�(�D��"�~��G��K�+1�'��u�e�S�$��7�?���K� �V�^��K� ��'�G��2�;�#�#�G�,�!�"�+�6�6�w�?��0�3C�G�3L�L���u�Q�x��d�3�3��N�N�7�#� �V�^���K���� �T��-���K� ��&�G��2�;�$�$�W�-�!�"�+�7�7��@��.�1A�'�1J�J���u�Q�x��d�3�3�Y�,2r����__main__)r4����__version__r9���r���rA����__all__r���r���r���r"���� Exceptionr���r���rS���r����r���r����r1���r5���r���r����<module>r�������sv����� �$���� �� ��� 1�� ��� ���$�y���?5�BD��D�L,�0�44�n��z���F��r���