Edit File: message_state_handler.cpython-311.pyc
� ����s�dLD���������������������������d�dl�mZ�d�dlZd�dlZd�dlmZ�d�dlmZ�d�dlm Z m Z �d�dlmZm Z mZmZmZ�d�dlmZ�d�dlmZ�d�d lmZ�d�d lmZmZmZmZ�ej��������dk����rd�dlmZ�nd�dlmZ�erd�d lm Z ��G�d��d������������Z!dS�)�����)�annotationsN)�defaultdict)� TYPE_CHECKING)� exceptions� interfaces)�MSG_STATE_CONFIDENCE�MSG_STATE_SCOPE_CONFIG�MSG_STATE_SCOPE_MODULE� MSG_TYPES�MSG_TYPES_LONG)�HIGH)�MessageDefinition)�ManagedMessage)� OPTION_PO�InvalidPragmaError�UnRecognizedOptionError�parse_pragma)��������)�Literal)�PyLinterc������������������������e�Zd�ZdZd,d�Zd-d�Z �d.d/d�Z � � �d0d1d�Z �d2d3d�Z � � �d0d4d�Z � � �d0d5d�Z � � �d0d4d�Zd6d �Zd6d!�Z � �d7d8d%�Zd9d&�Z � �d7d:d(�Zd;d+�ZdS�)<�_MessageStateHandlerz[Class that handles message disabling & enabling and processing of inline pragma's. �linterr����return�Nonec�����������������������||�_���������i�|�_��������|�j��������|�j��������|�j��������d�|�_��������|�j��������d���������|�j��������d���������d�|�_��������i�|�_��������t����������t����������������������|�_ ��������d�S�)N)�enable�disable�disable-nextr���r���)zdisable-msgz enable-msg)r����_msgs_stater���r����disable_next�_options_methods�_bw_options_methods�_pragma_linenor����list�_stashed_messages)�selfr���s��� �r/builddir/build/BUILD/cloudlinux-venv-1.0.2/venv/lib/python3.11/site-packages/pylint/lint/message_state_handler.py�__init__z_MessageStateHandler.__init__-���s����������,.����k��|� �-�! ��! ���� �0��;��/��9�$ ��$ �� ��/1���� ����� �� �� ������scope�str�msgr����line� int | Noner����boolc���������������������|dv�rut����������|t����������������������sJ��|�j��������j�����������������������������||||�������������|s6|j��������dk����r-|�j�����������������������������d||j��������|j��������f��������������dS�dS�dS�|�j��������}|||j��������<���dS�)z(Set the status of an individual message.>���r/����modulezlocally-disabled�r/����argsN) � isinstance�intr���� file_state�set_msg_status�symbol�add_message�msgidr!���)r(���r,���r.���r/���r����msgss��� r)����_set_one_msg_statusz(_MessageStateHandler._set_one_msg_statusE���s���������&�&�&��d�C�(�(�(�(�(��K�"�1�1�#�t�V�U�K�K�K��� �c�j�,>�>�>���'�'�&�T���S�Y�8O��(����������� �� �>�>� ��#�D�$�D���O�O�Or+���Fr<����ignore_unknown�list[MessageDefinition]c����������� ����������g�}|dk����r6t�����������D�],}|���������������������|����������������������|||��������������������������-|S�|�����������������������������������}|t�����������vrt ����������j��������|������������}n|}|�F|�j��������j��������j��������|���������D�],}|���������������������|����������������������|||��������������������������-|S�|� ����������������������������������|�j��������j ��������v�r]|�j��������j ��������|� �������������������������������������������D�]6}|j��������D�],}|���������������������|����������������������|||��������������������������-�7|S�|� �������������������������������������������������������d������������r9|r|�j��������� ��������������������|�������������n|�j�����������������������������|�������������|S� �|�j��������j�����������������������������|������������}n#�t ����������j��������$�r�|s��Y�nw�xY�w|S�)zMDo some tests and find the actual messages of which the status should be set.�allN�rp)r����extend�_get_messages_to_set�upperr����getr���� msgs_store�_msgs_by_category�lower� _checkersr=���� startswith� enable_report�disable_report�get_message_definitionsr����UnknownMessageError) r(���r<���r���r?����message_definitions�_msgid�category_id�category_id_formatted�checkers ��� r)���rE���z)_MessageStateHandler._get_messages_to_setU���s6������8:���E�>�>�#�� �� ��#�*�*��-�-�f�f�n�M�M���������'�&���k�k�m�m���i�'�'�$2�$6�{�$C�$C�!�!�$/�!� �,��+�0�B�%��� �� ���$�*�*��-�-�f�f�n�M�M���������'�&���;�;�=�=�D�K�1�1�1��;�0������?�� �� ��%�l�����F�'�.�.��1�1�&�&�.�Q�Q����������'�&���;�;�=�=�#�#�D�)�)�� '��� 2���)�)�%�0�0�0�0���*�*�5�1�1�1�&�&� �"&�+�"8�"P�"P�QV�"W�"W�����-�� �� �� �!�� �� �� � �����#�"s����F9��9G� G�packageNc���������������������|dv�sJ��|�����������������������|||������������}|D�]}|����������������������||||��������������g�|�j��������j��������_��������g�|�j��������j��������_��������|�j�������������������������������������������D�]e\��}} d��|�j��������j��������� ��������������������|������������D���������������} | r|�j��������j��������xj��������| z ��c_���������K|�j��������j��������xj��������| z ��c_���������fdS�)zEDo some tests and then iterate over message definitions to set state.>���r/���r3���rV���c����������������������g�|�] }|j����������� S���)r:���)�.0�ms��� r)���� <listcomp>z8_MessageStateHandler._set_msg_status.<locals>.<listcomp>����s*��������������������r+���N) rE���r>���r����configr���r���r!����itemsrH���rO���)r(���r<���r���r,���r/���r?���rQ����message_definition�msgid_or_symbol� is_enabled�symbolss��� r)����_set_msg_statusz$_MessageStateHandler._set_msg_status����s�������5�5�5�5�5�"�7�7��v�~�V�V��"5�� N�� N���$�$�U�,>��f�M�M�M�M��%'����!�%'����"�+/�+;�+A�+A�+C�+C�� 6�� 6�'�O�Z������/�G�G��X�X������G���� 6���"�)�)�W�4�)�)�)���"�*�*�g�5�*�*�*� 6�� 6r+���Tr`����is_disabledc�����������������4����|dd����������������������������������������������r{ �|�j��������j��������j�����������������������������|�������������}n#�t ����������j��������$�r�Y�dS�w�xY�wt����������|�j��������j��������||||������������}|�j��������j ��������� ��������������������|�������������dS�dS�)z~If the msgid is a numeric one, then register it to inform the user it could furnish instead a symbolic msgid. ����N)r<���)�isdigitr���rH����message_id_store� get_symbolr���rP���r����current_name�_by_id_managed_msgs�append)r(���r`���r/���rd���r:����manageds��� r)����_register_by_id_managed_msgz0_MessageStateHandler._register_by_id_managed_msg����s���������1�2�2��&�&�(�(�� <� ���/�@�K�K�)��L����������1�� �� �� ���� ����$���(�/�6�4�����G�� �K�+�2�2�7�;�;�;�;�;� <�� <s����%A��A�Ac�����������������f�����|�����������������������|d|||��������������|����������������������||�������������dS�)zDisable a message for a scope.F�r���r,���r/���r?���N�rc���rn����r(���r<���r,���r/���r?���s��� r)���r���z_MessageStateHandler.disable����sJ������� ����%�u�4��� �� �� �� �� �(�(���5�5�5�5�5r+����_c����������������������|st�����������j���������|����������������������|dd|dz���|��������������|����������������������||dz����������������dS�)z$Disable a message for the next line.Fr/���rf���rp���N)r����NoLineSuppliedErrorrc���rn���)r(���r<���rs���r/���r?���s��� r)���r"���z!_MessageStateHandler.disable_next����sg��������� 1��0�0����������)�� �� �� �� �� �(�(���q��9�9�9�9�9r+���c�����������������j�����|�����������������������|d|||��������������|����������������������||d��������������dS�)zEnable a message for a scope.Trp���F)rd���Nrq���rr���s��� r)���r���z_MessageStateHandler.enable����sO������� ����$�e�$�~�� �� �� �� �� �(�(���%�(�H�H�H�H�Hr+���c�����������������b�����|�j���������j��������j��������D�]}|dv�r�|����������������������|��������������dS�)z:Disable message categories other than `error` and `fatal`.>����E�FN)r���rH���rI���r���)r(����msgcats��� r)����disable_noerror_messagesz-_MessageStateHandler.disable_noerror_messages����sF�������k�,�>�� !�� !�F���#�#���L�L�� � � � � !�� !r+���c�����������������:����|�j���������j�������������������������������������������\��}}g�}g�}|D�]i}|����������������������|j��������������������r'|���������������������d|j����������d|j����������d���������������C|���������������������d|j����������d|j����������d���������������jt����������d�������������|D�]}t����������|��������������t����������d�������������|D�]}t����������|��������������t����������d�������������|D�]"}t����������d|j����������d|j����������d���������������#t����������d�������������d�S�)Nz z (�)zEnabled messages:z Disabled messages:z1 Non-emittable messages with current interpreter:��)r���rH����find_emittable_messages�is_message_enabledr<���rl���r:����print)r(���� emittable� non_emittable�enabled�disabled�messager.����msg_defs��� r)����list_messages_enabledz*_MessageStateHandler.list_messages_enabled����sW�����#'�;�#9�#Q�#Q�#S�#S� � �=��� �� �� I�� I�G��&�&�w�}�5�5�� I����F�G�N�F�F�g�m�F�F�F�G�G�G�G���� G�W�^� G� G�w�}� G� G� G�H�H�H�H� �!�"�"�"��� �� �C��#�J�J�J�J� �$�%�%�%��� �� �C��#�J�J�J�J� �B�C�C�C�$�� ;�� ;�G��9�w�~�9�9���9�9�9�:�:�:�:� �b� � � � � r+���� confidence�interfaces.Confidence | None�Literal[0, 1, 2] | Nonec�����������������������|�t�����������j��������}|j��������|�j��������j��������j��������vrt����������S� �||�j��������j��������j��������|���������v�rt����������S�n#�t����������t����������f$�r �t����������cY�S�w�xY�wdS�)z:Returns the scope at which a message was enabled/disabled.N) r���� UNDEFINED�namer���r]���r����r���r8����_module_msgs_stater ����KeyError� TypeErrorr ���)r(���r<���r/���r����s��� r)����_get_message_state_scopez-_MessageStateHandler._get_message_state_scope���s����������#�-�J��?�$�+�"4�"?�?�?�'�'� *��t�{�-�@��G�G�G�-�-��H���)�$�� *�� *�� *�)�)�)�)� *�����ts����A��A+�*A+c�����������������,�������|�j������������������������������|d������������S� �|�j��������j��������j��������|�������������������S�#�t ����������$�r��|�j��������j�������������������������������������������}|r��|k����r�d}|�j��������j��������j�����������������������������|i�������������}t�����������fd�|� ����������������������������������D���������������������������}t����������|d������������\��}}|�|}|�j������������������������������||������������cY�S�|�j������������������������������|d������������cY�S�w�xY�w)z�Checks state of a single message for the current file. This function can't be cached as it depends on self.file_state which can change. NTc�����������������*������g�|�]\��}}|�k�����||f��S�rY���rY���)rZ����message_liner���r/���s��� �r)���r\���z@_MessageStateHandler._is_one_message_enabled.<locals>.<listcomp>)��s7�������������0�L�&�'�4�/�/��&�v�.�/�/�/r+����NN)r!���rG���r���r8���r����r�����get_effective_max_line_number�_raw_module_msgs_state�reversedr^����next) r(���r<���r/����max_line_number�fallback�lines� closest_linesrs���� fallback_iters ��� ` r)����_is_one_message_enabledz,_MessageStateHandler._is_one_message_enabled��sF��������<��#�'�'��t�4�4�4� 5��;�)�<�U�C�D�I�I���� 5�� 5�� 5� �#�k�4�R�R�T�T�O��� =�4�/�#9�#9�����.�E�I�I�%�QS�T�T���!)��������49�K�K�M�M������!��!� ��$(� �|�#D�#D� ��=� �,�,�H��'�+�+�E�8�<�<�<�<�<��#�'�'��t�4�4�4�4�4�1 5���s����=��B6D�5D�D� msg_descrc��������������������������|r|j�����������j��������j��������j��������vrdS� ���j��������j��������j�����������������������������|������������}n#�t����������j��������$�r�|g}Y�nw�xY�wt�������������fd�|D���������������������������S�)a��Return whether this message is enabled for the current file, line and confidence level. This function can't be cached right now as the line is the line of the currently analysed file (self.file_state), if it changes, then the result for the same msg_descr/line might need to change. :param msg_descr: Either the msgid or the symbol for a MessageDefinition :param line: The line of the currently analysed file :param confidence: The confidence of the message Fc��������������3���D����K����|�]}�����������������������|�������������V����d�S�)N)r����)rZ���r<���r/���r(���s��� ��r)���� <genexpr>z:_MessageStateHandler.is_message_enabled.<locals>.<genexpr>R��s3�����������Q�Q��4�/�/��t�<�<�Q�Q�Q�Q�Q�Qr+���) r����r���r]���r����rH���rh����get_active_msgidsr���rP����any)r(���r����r/���r�����msgidss���` ` r)���r����z'_MessageStateHandler.is_message_enabled6��s���������"��� �*�/���1C�1N�N�N��5� !��[�+�<�N�N�����F�F����-�� !�� !�� !�� �[�F�F�F� !���� ��Q�Q�Q�Q�Q�&�Q�Q�Q�Q�Q�Qs����$A��A�A�tokens�list[tokenize.TokenInfo]c�����������������`����h�d�}d}d}d}|D��]\��}}}} } |r||d���������k����r|}d}|d���������}|t�����������j��������t�����������j��������fv�rd}|t�����������j��������k����r�Pt ����������j��������|������������} | ��g �t ����������| ���������������������d������������������������D��]}|j��������dv�r[|j��������dk����r#|�j ��������� ��������������������d |d���������d ��������������|�j ��������� ��������������������d|d���������� �������������d|�_����������dS� �|�j��������|j�����������������}ne#�t����������$�rX�|�j��������|j�����������������}|�j ��������� ��������������������d |d���������|j��������|j�����������������������������dd������������f��������������Y�nw�xY�w|j��������D��]/} |j��������|v�r|d���������|�j��������| <���|j��������| fdk����rQ|�j ��������� ��������������������d |d���������d��������������|�j ��������� ��������������������d|d���������� �������������d|�_�����������dS�|d���������}|s|dz��} ��|| d|���������������#�t$����������j��������t$����������j��������f$�r:}|�j ��������� ��������������������d|j��������|f|d���������t*������������������������Y�d}~��d}~wt$����������j��������$�r4�|�j ��������� ��������������������d|j��������| f|d���������t*������������������������Y���-w�xY�w�����#�t.����������$�r3}|�j ��������� ��������������������d|j��������|d�����������������������Y�d}~���d}~wt2����������$�r3}|�j ��������� ��������������������d|j��������|d�����������������������Y�d}~��d}~ww�xY�wdS�)z�Process tokens from the current module to search for module/block level options. See func_block_disable_msg.py test case for expected behaviour. >���r���r���r ���NTr���F����>���� skip-file�disable-allr����zdeprecated-pragma)r����r����r4���zfile-ignored)r/���z-msgr~���)r���rB���)zdisable=allr����rf���r3���zuseless-option-value)r5���r/���r����zunknown-option-valuezunrecognized-inline-option)r5���r/���zbad-inline-option)�tokenize�NL�NEWLINE�COMMENTr����searchr����group�actionr���r;����_ignore_filer#���r����r$����replace�messagesr%���r����DeletedMessageError�MessageBecameExtensionErrorr ���rP���r����tokenr���)r(���r�����control_pragmas� prev_line�saw_newline�seen_newline�tok_type�content�startrs����match�pragma_repr�methr<����l_start�e�errs��� r)����process_tokensz#_MessageStateHandler.process_tokensT��sV������@�?�?��� �����.4��W ��W �*�H�g�u�a���� %�Y�%��(�2�2�*��$���a��I��H�K��)9�:�:�:�#���8�+�+�+���$�W�-�-�E��}��I �#/����A���#?�#?��=��=�K�"�)�-I�I�I�&�-��>�>� �K�3�3� 3�%*�1�X�%A��4������� ���/�/��U�1�X�/�N�N�N�,0��)������#�4�[�5G�H����#�� �� �� �#�7��8J�K����/�/�/�!&�q�� +� 2� +� 2� :� :�6�2� F� F�"��0����������� �����"-�!5��%��%��&�-��@�@�9>�q��D�/��6�'�.��6�:L�L�L� �K�3�3� 3�%*�1�X�%A��4������� �!�K�3�3�N��q��3�R�R�R�04�D�-�"�F�F�F�F��#(��(��*��)�#�q�L�G�� �D���'�:�:�:�:��&�:�&�B� �� �� �� ��!�K�3�3� 6�&1�&8�!�%<�%*�1�X�+/� �4���������������������� *�=������� �K�3�3� 6�&1�&8�%�%@�%*�1�X�+/� �4���������������?%�1=��~�+�� �� �� ���'�'�0�s�y�u�Q�x��(�����������������%�� �� �� ���'�'�'�c�i�e�A�h��(����������������� ����gW ��W s�����5BJ3�?D�J3�AE4�1J3�3E4�4BJ3�8J3� H�J3�J, �10I& �!J3�&AJ, �(J3�+J, �,J3�3 L+�=(K+�+ L+�8(L&�&L+)r���r���r���r���) r,���r-���r.���r���r/���r0���r���r1���r���r���)F)r<���r-���r���r1���r?���r1���r���r@���)rV���NF)r<���r-���r���r1���r,���r-���r/���r0���r?���r1���r���r���)T)r`���r-���r/���r0���rd���r1���r���r���) r<���r-���r,���r-���r/���r0���r?���r1���r���r���) r<���r-���rs���r-���r/���r0���r?���r1���r���r���)r���r���r����)r<���r-���r/���r0���r����r����r���r����)r<���r-���r/���r0���r���r1���)r����r-���r/���r0���r����r����r���r1���)r����r����r���r���)�__name__� __module__�__qualname__�__doc__r*���r>���rE���rc���rn���r���r"���r���r{���r����r����r����r����r����rY���r+���r)���r���r���(���s������������������������0%��%��%��%�"�@E�2#��2#��2#��2#��2#�p���$� 6��6��6��6��6�<�KO�<��<��<��<��<�*���$�6��6��6��6��6� ���$�:��:��:��:��:�,���$�I��I��I��I��I�!��!��!��!��������.� �37� ���������$"5��"5��"5��"5�N� �37� R��R��R��R��R�<a��a��a��a��a��ar+���r���)"� __future__r����sysr�����collectionsr����typingr����pylintr���r����pylint.constantsr���r ���r ���r���r����pylint.interfacesr ����pylint.messager���� pylint.typingr����pylint.utils.pragma_parserr���r���r���r����version_infor����typing_extensions�pylint.lint.pylinterr���r���rY���r+���r)����<module>r�������s����� �#��"��"��"��"��"�� � � � �������#��#��#��#��#��#�� �� �� �� �� �� ��)��)��)��)��)��)��)��)�����������������������������#��"��"��"��"��"��,��,��,��,��,��,��(��(��(��(��(��(���������������������������v����������)�)�)�)�)�)����.�-�-�-�-�-�-�M��M��M��M��M��M��M��M��M��Mr+���