AlkantarClanX12

Your IP : 3.147.65.47


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/pylint/lint/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/pylint/lint/__pycache__/pylinter.cpython-311.pyc

�

�܋fm����UddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddlm
Z
mZmZddlmZddlmZddlmZddlmZdd	lmZddlZdd
lmZddlmZmZmZm Z ddl!m"Z"dd
l#m$Z$ddl%m&Z&m'Z'm(Z(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/m0Z0ddl1m2Z2m3Z3m4Z4ddl5m6Z6ddl7m8Z8ddl9m:Z:m;Z;m<Z<ddl=m>Z>m?Z?m@Z@mAZAddlBmCZCmDZDmEZEddlFmGZGddlHmIZIdd
lJmZKddlLmMZMmNZNmOZOmPZPmQZQmRZRmSZSddlTmUZUmVZVmWZWmXZXejYdkrddlmZZZnddl[mZZZej\Z\Gd�deZ��Z]dvd"�Z^dwd%�Z_id&d'd(d)d*e)j`if�d+d,d-d.d*e)j`if�d/d0d1d2d*e)j`if�d3d4d5d6d*e)j`if�d7d8d9d:d*e)j`if�d;d<d=d>d*e)j`if�d?d@dAdBd*e)j`if�dCdDdEdFd*e)j`if�dGdHdIdJd*e)j`if�dKdLdMdNd*e)j`if�dOdPdQdRdSge)j`dT�f�dUd'dVdWd*e)j`if�dXdYdZd[d*e)j`if�d\d]d^d_e)j`d`gda�f�dbdcdddee)j`d`gda�f�dfdgdhdid*e)j`if�djdkdldmd*e)j`if�dndodpdqd*e)j`ifi�Zadrebds<Gdt�due$e6e jcej"��ZddS)x�)�annotationsN)�defaultdict)�Callable�Iterator�Sequence)�
TextIOWrapper)�Path)�Pattern)�
ModuleType)�Any)�nodes)�checkers�
exceptions�
interfaces�	reporters)�BaseChecker)�_ArgumentsManager)�MAIN_CHECKER_NAME�	MSG_TYPES�MSG_TYPES_STATUS�WarningScope)�HIGH)�_make_linter_options)�load_results�save_results)�_is_ignored_file�discover_package_path�expand_modules)�_MessageStateHandler)�check_parallel)�report_messages_by_module_stats�report_messages_stats�report_total_messages_stats)�_is_relative_to�augmented_sys_path�get_fatal_error_message�prepare_crash_report)�Message�MessageDefinition�MessageDefinitionStore)�BaseReporter)�TextReporter)�DirectoryNamespaceDict�FileItem�ManagedMessage�MessageDefinitionTuple�MessageLocationTuple�ModuleDescriptionDict�Options)�	ASTWalker�	FileState�LinterStats�utils)��)�Protocolc��eZdZ	d
dd	�ZdS)�GetAstProtocolN�filepath�str�modname�data�
str | None�return�nodes.Modulec��dS�N�)�selfr=r?r@s    �e/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/pylint/lint/pylinter.py�__call__zGetAstProtocol.__call__Rs	��	��rE)r=r>r?r>r@rArBrC)�__name__�
__module__�__qualname__rIrFrJrHr<r<Qs0������>B�������rJr<rBr>c���ttjt��sJ�ttj���d���t_tj���S)N�utf-8��encoding)�
isinstance�sys�stdinr�detach�readrFrJrH�_read_stdinrWXsN���c�i��/�/�/�/�/��c�i�.�.�0�0�7�C�C�C�C�I��9�>�>���rJ�reporter_class�type[BaseReporter]c� �|}tj�|��}tj�|��}|�d��d}t||��}t
|t��s
J|�d����|S)N�.���z is not a BaseReporter)�astroid�modutils�get_module_part�load_module_from_name�split�getattr�
issubclassr+)rX�qname�module_part�module�
class_name�klasss      rH�_load_reporter_by_classri_s����E��"�2�2�5�9�9�K�
�
�
3�
3�K�
@�
@�F����S�!�!�"�%�J��F�J�'�'�E��e�\�*�*�L�L�u�,L�,L�,L�L�L�*��LrJ�F0001z%s�fatalzoUsed when an error occurred preventing the analysis of a               module (unable to find it for instance).�scope�F0002z%s: %s�
astroid-errorz�Used when an unexpected error occurred while building the Astroid  representation. This is usually accompanied by a traceback. Please report such errors !�F0010zerror while code parsing: %s�parse-errorzlUsed when an exception occurred while building the Astroid representation which could be handled by astroid.�F0011z)error while parsing the configuration: %szconfig-parse-errorzJUsed when an exception occurred while parsing a pylint configuration file.�I0001z0Unable to run raw checkers on built-in module %s�raw-checker-failedzRUsed to inform that a built-in module has not been checked using the raw checkers.�I0010z#Unable to consider inline option %rzbad-inline-optionzUUsed when an inline option is either badly formatted or can't be used inside modules.�I0011zLocally disabling %s (%s)zlocally-disabledzEUsed when an inline option disables a message or a messages category.�I0013zIgnoring entire filezfile-ignoredz0Used to inform that the file will not be checked�I0020zSuppressed %s (from line %d)zsuppressed-messagez�A message was triggered on a line, but suppressed explicitly by a disable= comment in the file. This message is not generated for messages that are ignored due to configuration settings.�I0021zUseless suppression of %szuseless-suppressionzbReported when a message is explicitly disabled for a line or a block of code, but never triggered.�I0022z+Pragma "%s" is deprecated, use "%s" insteadzdeprecated-pragmaz�Some inline pylint options have been renamed or reworked, only the most recent form should be used. NOTE:skip-all is only available with pylint >= 0.26)�I0014zdeprecated-disable-all)�	old_namesrl�E0001�syntax-errorz0Used when a syntax error is raised for a module.�E0011zUnrecognized file option %rzunrecognized-inline-optionz2Used when an unknown inline option is encountered.�W0012zKUnknown option value for '%s', expected a valid pylint message and got '%s'zunknown-option-valuez8Used when an unknown value is encountered for an option.)�E0012zbad-option-value)rlr{�R0022z!Useless option value for '%s', %szuseless-option-valuezOUsed when a value for an option that is now deleted from pylint is encountered.�E0013z;Plugin '%s' is impossible to load, is it installed ? ('%s')�bad-plugin-valuez0Used when a bad value is used in 'load-plugins'.�E0014zOOut-of-place setting encountered in top level configuration-section '%s' : '%s'zbad-configuration-sectionz_Used when we detect a setting in the top level of a toml configuration that shouldn't be there.�E0015zUnrecognized option found: %szunrecognized-optionz7Used when we detect an option that we do not recognize.z!dict[str, MessageDefinitionTuple]�MSGSc�$�eZdZUdZeZeZdZde	d<ddd�Z
				d�d�d�Zed�d���Z
e
jd�d���Z
d�d�Zd�d�Zd�d�Zd�d�Zd�d!�Zd�d#�Zd�d&�Zd�d(�Zd�d+�Zd�d,�Zd�d.�Zd�d/�Zd�d0�Zd�d1�Zd�d2�Zd�d3�Zed�d�d8���Z d�d9�Z!d�d=�Z"d�d?�Z#d�dD�Z$d�dG�Z%d�dJ�Z&d�dN�Z'd�dQ�Z(d�dT�Z)d�dU�Z*d�dV�Z+d�dX�Z,	d�d�dY�Z-d�d^�Z.e/j0d�d`���Z1	d�d�db�Z2d�dk�Z3d�dm�Z4d�dn�Z5d�dp�Z6d�dq�Z7d�d}�Z8							d�d�d�Z9d	e:j;fd�d��Z<d�d��Z=d	S)��PyLintera�Lint Python modules using external checkers.

    This is the main checker controlling the other ones and the reports
    generation. It is itself both a raw checker and an astroid checker in order
    to:
    * handle message activation / deactivation at the module level
    * handle some basic but necessary stats' data (number of classes, methods...)

    IDE plugin developers: you may have to call
    `astroid.MANAGER.clear_cache()` across runs if you want
    to ensure the latest code version is actually checked.

    This class needs to support pickling for parallel linting to work. The exception
    is reporter member; see check_parallel function for more details.
    z"pylint-crash-%Y-%m-%d-%H-%M-%S.txtr>�crash_file_path�%Options controlling analysis messages�2Options related to output formatting and reporting)�Messages control�ReportsrFN�optionsr3�reporter�7reporters.BaseReporter | reporters.MultiReporter | None�
option_groups�tuple[tuple[str, str], ...]�pylintrcrArB�Nonec��tj|d���tj||��||r|�|��n!|�t	����i|_	t
jt��|_		i|_
	t��|_|t|��z|_|D]}|d|j|d<�|dz|_g|_	d|_t&j�|��t*j�||��ddt.fd	d
t0fddt2ff|_t7|jj��|_d|_g|_ tCd
|jd���|_"d|_#d|_$d|_%g|_&|�'|��dS)N�pylint)�prog�r))r�r�)r�r�F�RP0001zMessages by category�RP0002z% errors / warnings by module�RP0003�Messages�T)�is_base_filestate)(r�__init__r�set_reporterr,�
_reporters�collectionsr�list�	_checkers�_dynamic_pluginsr6�statsrr��option_groups_descs�_option_groups�fail_on_symbols�_error_moder�ReportsHandlerMixInrrr#r!r"�reportsr*�config�
py_version�
msgs_store�
msg_status�_by_id_managed_msgsr5�
file_state�current_name�current_file�_ignore_file�
_ignore_paths�register_checker)rGr�r�r�r��	opt_groups      rHr�zPyLinter.__init__s���	�"�4�h�7�7�7�7��%�d�D�1�1�1�	
�G��	.����h�'�'�'�'����l�n�n�-�-�-�CE���C�

�#�D�)�)�	
��	A�TV���)�!�]�]��
�!(�*>�t�*D�*D� D���&�	B�	B�I�5>�q�\�D�$�Y�q�\�2�2�;H�L
�<
���+-���T� ����%�.�.�t�4�4�4���%�%�d�D�1�1�1��-�/J�K��/�/�
�
�z�#8�9�
���1���1G�H�H������9;�� �$�B���4�P�P�P���(,���(,���!���13������d�#�#�#�#�#rJc�H�tjdtd���|jS�NzQThe option_groups attribute has been deprecated and will be removed in pylint 3.0���
stacklevel��warnings�warn�DeprecationWarningr��rGs rHr�zPyLinter.option_groups]s1��	�
�_���	
�	
�	
�	
�
�"�"rJ�valuec�L�tjdtd���||_dSr�r�)rGr�s  rHr�zPyLinter.option_groupsgs4���
�_���	
�	
�	
�	
�
$����rJc�V�tj|��tj|��dSrE)r�
initializerr�s rH�load_default_pluginszPyLinter.load_default_pluginsps*����D�!�!�!���T�"�"�"�"�"rJ�modnames�	list[str]c���|D]l}||jvr�	tj�|��}|�|��||j|<�L#t
$r}||j|<Yd}~�ed}~wwxYwdS)z�Check a list of pylint plugins modules, load and register them.

        If a module cannot be loaded, never try to load it again and instead
        store the error message for later use in ``load_plugin_configuration``
        below.
        N)r�r]r^r`�register�ModuleNotFoundError)rGr�r?rf�mnf_es     rH�load_plugin_moduleszPyLinter.load_plugin_modulests��� �	7�	7�G��$�/�/�/��
7� �)�?�?��H�H������%�%�%�17��%�g�.�.��&�
7�
7�
7�16��%�g�.�.�.�.�.�.�����
7����	7�	7s�>A�
A-�
A(�(A-c�>�|j���D]Z\}}t|t��r|�d||fd����5t|d��r|�|���[d�|j���D��|_dS)a�Call the configuration hook for plugins.

        This walks through the list of plugins, grabs the "load_configuration"
        hook, if exposed, and calls it to allow plugins to configure specific
        settings.

        The result of attempting to load the plugin of the given name
        is stored in the dynamic plugins dictionary in ``load_plugin_modules`` above.

        ..note::
            This function previously always tried to load modules again, which
            led to some confusion and silent failure conditions as described
            in GitHub issue #7264. Making it use the stored result is more efficient, and
            means that we avoid the ``init-hook`` problems from before.
        r�r)�args�line�load_configurationc�B�i|]\}}|t|t����SrF)rRr�)�.0r?�vals   rH�
<dictcomp>z6PyLinter.load_plugin_configuration.<locals>.<dictcomp>�s<��!
�!
�!
����
��C�)<�=�=�=�!
�!
�!
rJN)r��itemsrRr��add_message�hasattrr�)rGr?�module_or_errors   rH�load_plugin_configurationz"PyLinter.load_plugin_configuration�s��� )-�(=�(C�(C�(E�(E�	9�	9�$�G�_��/�+>�?�?�
9�� � �&�g��-G�a�!�������*>�?�?�
9��2�2�4�8�8�8��
!
�!
� $� 5� ;� ;� =� =�!
�!
�!
����rJ�reporter_namesc	��|jsdSg}g}tj��5}|�d��D]�}|�dd��^}}|�|��}|�|��|rG|�t|ddd�����}||_|�|����|�	��j
}	ddd��n#1swxYwYt|��dks|r*|�tj||	����dS|�|d��dS)	z7Load the reporters if they are available on _reporters.N�,�:r�r�wrOrP)r��
contextlib�	ExitStackra�_load_reporter_by_name�append�
enter_context�open�out�pop_all�close�lenr�r�
MultiReporter)
rGr��
sub_reporters�output_files�stack�
reporter_name�reporter_outputr��output_file�close_output_filess
          rH�_load_reporterszPyLinter._load_reporters�s�����	��F��
���
�
!�
#�
#�	7�u�!/�!5�!5�c�!:�!:�

5�

5�
�2?�2E�2E�c�1�2M�2M�/�
���6�6�}�E�E���$�$�X�.�.�.�"�5�"'�"5�"5��_�Q�/��w�G�G�G�#�#�K�$/�H�L� �'�'��4�4�4��"'�����!6��	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7� �}����!�!�\�!�����'�!�&���
�
�
�
�
�
���m�A�.�/�/�/�/�/s�B=C*�*C.�1C.r��reporters.BaseReporterc��|���}||jvr|j|��S	t|��}n4#ttt
f$r}t
j|��|�d}~wwxYw|��SrE)�lowerr�ri�ImportError�AttributeError�AssertionErrorr�InvalidReporterError)rGr��namerX�es     rHr�zPyLinter._load_reporter_by_name�s����"�"�$�$���4�?�"�"�(�4�?�4�(�*�*�*�	?�4�]�C�C�N�N���^�^�<�	?�	?�	?��1�$�7�7�Q�>�����	?�����~���s�A�A5�A0�0A5�0reporters.BaseReporter | reporters.MultiReporterc�"�||_||_dS)z6Set the reporter used to display messages and reports.N)r��linter)rGr�s  rHr�zPyLinter.set_reporter�s��!��
�����rJrX�type[reporters.BaseReporter]c�$�||j|j<dS)z7Registers a reporter class on the _reporters attribute.N)r�r�)rGrXs  rH�register_reporterzPyLinter.register_reporter�s��/=����+�,�,�,rJ�list[BaseChecker]c���t|jd����}	|�|�|����|�|��n#t
$rYnwxYw|S)Nc�$�t|dd��S)Nr�r�)rb)�xs rH�<lambda>z'PyLinter.report_order.<locals>.<lambda>�s��g�a���6L�6L�rJ)�key)�sorted�_reports�pop�indexr��
ValueError)rGr�s  rH�report_orderzPyLinter.report_order�s�����,L�,L�M�M�M��	!�
�K�K��
�
�d�+�+�,�,�,�
�N�N�4� � � � ���	�	�	��D�	�����s�(A�
A$�#A$�checker�checkers.BaseCheckerc��|j|j�|��|jD]\}}}|�||||���t|d��rE|j�|��|jD]#}|j	s|�
|j���$t|dd��s|�
|j��dSdS)z'This method auto registers the checker.�msgs�enabledTN)
r�r�r�r��register_reportr�r��register_messages_from_checker�messages�default_enabled�disable�msgidrb)rGr�r_id�r_title�r_cb�messages      rHr�zPyLinter.register_checker�s�����w�|�$�+�+�G�4�4�4�#*�?�	?�	?��D�'�4�� � ��w��g�>�>�>�>��7�F�#�#�	0��O�:�:�7�C�C�C�"�+�
0�
0���.�0��L�L���/�/�/���w�	�4�0�0�	'��L�L���&�&�&�&�&�	'�	'rJc��|jj}|sdSt��}t��}|D]6}|tvr|�|���!|�|���7|j���D]�}|D]�}|jD]|}|j|vs	|j	|vr:|�
|j��|j�|j	���N|jd|vr|j�|j	���}����dS)z�Enable 'fail on' msgs.

        Convert values in config.fail_on (which might be msg category, msg id,
        or symbol) to specific msgs, then enable and flag them for later.
        Nr)
r��fail_on�setr�addr��valuesrr�symbol�enabler�r�)rG�fail_on_vals�fail_on_cats�fail_on_msgsr��all_checkersr�msgs        rH�enable_fail_on_messagesz PyLinter.enable_fail_on_messages�sG���{�*���	��F��u�u���u�u���	&�	&�C��i���� � ��%�%�%�%�� � ��%�%�%�%�!�N�1�1�3�3�		@�		@�L�'�
@�
@��"�+�@�@�C��y�L�0�0�C�J�,�4N�4N����C�I�.�.�.��,�3�3�C�J�?�?�?�?���1���5�5��,�3�3�C�J�?�?�?��@�
@�		@�		@rJ�boolc�r��t�fd��jj���D����S)Nc3�*�K�|]
}|�jvV��dSrE)r�)r�rrGs  �rH�	<genexpr>z.PyLinter.any_fail_on_issues.<locals>.<genexpr>s+�����O�O��1��,�,�O�O�O�O�O�OrJ)�anyr��by_msg�keysr�s`rH�any_fail_on_issueszPyLinter.any_fail_on_issuess7����O�O�O�O�d�j�6G�6L�6L�6N�6N�O�O�O�O�O�OrJc�z�|j���D] }|D]\}}}|�|����!dS)zDisable all reporters.N)r
r"�disable_report)rGr��	report_id�_s    rH�disable_reporterszPyLinter.disable_reporterssZ���-�.�.�0�0�	/�	/�J�#-�
/�
/��	�1�a��#�#�I�.�.�.�.�
/�	/�	/rJc���|jsdS|���|�d��|�dd��|�dd��|�dd��dS)zwParse the current state of the error mode.

        Error mode: enable only errors; no reports, no persistent.
        N�
miscellaneousr�F�
persistent�score)r��disable_noerror_messagesr�
set_optionr�s rH�_parse_error_modezPyLinter._parse_error_mode sz��
��	��F��%�%�'�'�'����_�%�%�%����	�5�)�)�)�����e�,�,�,������'�'�'�'�'rJc�b�td�|j���D����S)z1Return all available checkers as an ordered list.c3�$K�|]}|D]}|V���dSrErF)r�r��cs   rHr.z(PyLinter.get_checkers.<locals>.<genexpr>2s/����T�T�I�)�T�T�Q�a�T�T�T�T�T�T�TrJ)r	r�r"r�s rH�get_checkerszPyLinter.get_checkers0s-���T�T���)>�)>�)@�)@�T�T�T�T�T�TrJc�X�td�|���D����S)z7Get all the checker names that this linter knows about.c�<�h|]}|jtk�|j��SrF)r�r)r�rs  rH�	<setcomp>z-PyLinter.get_checker_names.<locals>.<setcomp>7s2��
�
�
���<�#4�4�4���4�4�4rJ)r	rBr�s rH�get_checker_nameszPyLinter.get_checker_names4s<���
�
�#�0�0�2�2�
�
�
�
�
�	
rJc� ���jjs�����g}����dd�D]L}�fd�|jD��}|s t�fd�|jD����r|�|���M|S)z:Return checkers needed for activated messages and reports.r�Nc�>��h|]}��|���|��SrF)�is_message_enabled)r�r)rGs  �rHrEz,PyLinter.prepare_checkers.<locals>.<setcomp>Es,���T�T�T��t�7N�7N�s�7S�7S�T��T�T�TrJc3�N�K�|]}��|d��V�� dS)rN)�report_is_enabled)r��rrGs  �rHr.z,PyLinter.prepare_checkers.<locals>.<genexpr>Fs5�����U�U��t�5�5�a��d�;�;�U�U�U�U�U�UrJ)r�r�r7rBrr/r�)rG�needed_checkersrrs`   rH�prepare_checkerszPyLinter.prepare_checkers>s�����{�"�	%��"�"�$�$�$�.2�V���(�(�*�*�1�2�2�.�	0�	0�G�T�T�T�T�w�|�T�T�T�H��
0�3�U�U�U�U�W�_�U�U�U�U�U�
0��&�&�w�/�/�/���rJFr?�path�is_argumentc�4�|rdS|�d��S)a�Returns whether a module should be checked.

        This implementation returns True for all python source file, indicating
        that all files should be linted.

        Subclasses may override this method to indicate that modules satisfying
        certain conditions should not be linted.

        :param str modname: The name of the module to be checked.
        :param str path: The full path to the source code of the module.
        :param bool is_argument: Whether the file is an argument to pylint or not.
                                 Files which respect this property are always
                                 checked, since the user requested it explicitly.
        :returns: True if the module should be checked.
        T�.py)�endswith)r?rOrPs   rH�should_analyze_filezPyLinter.should_analyze_fileKs#��"�	��4��}�}�U�#�#�#rJc��|jj|_|jjD]0}|�|jj��sd|j|j<�1dS)zbInitialize linter for linting.

        This method is called before any linting is done.
        FN)	r��ignore_pathsr�r�r�may_be_emittedr��_msgs_stater)rGr)s  rHr�zPyLinter.initializebs\��
"�[�5����?�+�	4�	4�C��%�%�d�k�&<�=�=�
4�.3�� ���+��	4�	4rJ�files_or_modules�
Sequence[str]�
Iterator[str]c#�@�K�|D�]}tj�|��r�tj�tj�|d����s�g}tj|��D]�\�}}t
�fd�|D����r�"t�|jj	|jj
|jj��r|�����hd|vr|�����V����fd�|D��Ed{V������|V���dS)z�Discover python modules and packages in sub-directory.

        Returns iterator of paths to discovered modules and packages.
        z__init__.pyc3�B�K�|]}��|��V��dSrE)�
startswith)r��s�roots  �rHr.z+PyLinter._discover_files.<locals>.<genexpr>ys/�����E�E�!�4�?�?�1�-�-�E�E�E�E�E�ErJc3��K�|]9}|�d���tj��|��V��:dS)rRN)rS�osrO�join)r��filer`s  �rHr.z+PyLinter._discover_files.<locals>.<genexpr>�sY�����$�$� $�#�}�}�U�3�3�$��G�L�L��t�4�4�$�$�$�$�$�$rJN)
rbrO�isdir�isfilerc�walkr/rr��ignore�ignore_patternsrVr�)rGrY�	something�
skip_subtreesr6�filesr`s      @rH�_discover_fileszPyLinter._discover_filesns������
*�	 �	 �I��w�}�}�Y�'�'�
 ���������Y�
�6�6�1�1�
 �,.�
�&(�g�i�&8�&8���N�D�!�U��E�E�E�E�}�E�E�E�E�E�!� �'����*���3���0�	��!�&�,�,�T�2�2�2� �$��-�-�%�,�,�T�2�2�2�"�
�
�
�
�$�$�$�$�(-�$�$�$���������%�0 �����;	 �	 rJ�Sequence[str] | strc�`������t|ttf��st	jdtd���|f}�jjr"t��	|����}�jj
r't|��dkrtj
d���t�fd�|D����}�jj
sa�jjdkrQtjdd�}t#��jj��|��|��|t_dSt'|��5�jj
r*��|d��}t+��}n��|��}d}ddd��n#1swxYwYt'|��5����5}��||��}��||��ddd��n#1swxYwYddd��dS#1swxYwYdS)	z�Main checking entry: check a list of files or modules from their name.

        files_or_modules is either a string or list of strings presenting modules to check.
        zNIn pylint 3.0, the checkers check function will only accept sequence of stringr�r�r�z*Missing filename required for --from-stdinc�D��h|]}t|�jj����SrF)rr��source_roots)r��file_or_modulerGs  �rHrEz!PyLinter.check.<locals>.<setcomp>�s8���
�
�
�"�&�n�d�k�6N�O�O�
�
�
rJNr)r�rRr��tupler�r�r�r��	recursiverm�
from_stdinr�r�InvalidArgsError�jobsrSrOr �_iterate_file_descrsr%�_get_file_descr_from_stdinrW�_astroid_module_checker�	_get_asts�_lint_files)rGrY�extra_packages_paths�original_sys_path�	fileitemsr@�check_astroid_module�ast_per_fileitems`       rH�checkzPyLinter.check�sA���	
�������*�T�5�M�:�:�	3��M�`�"��
�
�
�
�
!1�2���;� �	M�$�T�%9�%9�:J�%K�%K�L�L���;�!�	��#�$�$��)�)� �1�@���� $�
�
�
�
�&6�
�
�
� 
� 
���{�%�		�$�+�*:�Q�*>�*>� #����������� ��)�)�*:�;�;�$�	
�
�
�)�C�H��F� � 4�
5�
5�	�	��{�%�
� �;�;�<L�Q�<O�P�P�	�#.�=�=��� �5�5�6F�G�G�	���
	�	�	�	�	�	�	�	�	�	�	����	�	�	�	� � 4�
5�
5�	I�	I��-�-�/�/�
I�3G�#'�>�>�)�T�#B�#B� �� � �!1�3G�H�H�H�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I����
I�
I�
I�
I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�	I�	IsI�	AF#�#F'�*F'�=H#�-H�?H#�H	�H#�H	�H#�#H'�*H'r�Iterator[FileItem]r@�#dict[FileItem, nodes.Module | None]c�~�i}|D]�}|�|j|j��	|�|j|j|��||<�H#tj$r^}t
||j|j��}t|j|��}|�	d|j|ft���Yd}~��d}~wwxYw|S)z$Get the AST for all given FileItems.rn�r��
confidenceN)�set_current_moduler�r=�get_astr]�AstroidBuildingErrorr'r�r&r�r)rGrr@r��fileitem�ex�
template_pathr)s        rHr{zPyLinter._get_asts�s��AC��!�	�	�H��#�#�H�M�8�3D�E�E�E�

�-1�\�\��%�x�}�d�.�.� ��*�*���/�	
�	
�	
� 4���)�4�+?�!�!�
�.�h�.?��O�O��� � �#�"�+�S�1�#�!�������������	
���� �s�$A
�
B:�AB5�5B:r�r=c��tjdtd���|�t	|||����dS)NzkIn pylint 3.0, the checkers check_single_file function will be removed. Use check_single_file_item instead.r�r�)r�r�r��check_single_file_itemr.)rGr�r=r?s    rH�check_single_filezPyLinter.check_single_file�sN���
�
2���		
�	
�	
�	
�	
�#�#�H�T�8�W�$E�$E�F�F�F�F�FrJrdr.c��|���5}|�|j||��ddd��dS#1swxYwYdS)z�Check single file item.

        The arguments are the same that are documented in _check_files

        initialize() should be called before calling this method
        N)rz�_check_filer�)rGrdr�s   rHr�zPyLinter.check_single_file_item�s����
)�
)�
+�
+�	G�/C����T�\�+?��F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs�?�A�A�ast_mappingr��%Callable[[nodes.Module], bool | None]c��|���D]�\}}|��	|�|||���!#t$r�}t||j|j��}t
|j|��}t|tj	��r%|�
d|j|ft���n|�
d|t���Yd}~��d}~wwxYwdS)z%Lint all AST modules from a mapping..Nrnr�rk)r��
_lint_file�	Exceptionr'r=r�r&rRr]�AstroidErrorr�r)rGr�r�r�rfr�r�r)s        rHr|zPyLinter._lint_files�s��!,� 1� 1� 3� 3�	I�	I��H�f��~��
I�����&�2F�G�G�G�G���

I�

I�

I� 4���)�4�+?�!�!�
�.�h�.?��O�O���b�'�"6�7�7�I��$�$�'�x�/@�#�.F�SW�%������$�$�W�3�4�$�H�H�H����������

I����	I�	Is�6�
C�BC�CrfrCc��|�|j|j��d|_t	|j|j|��|_|j|_		||��n#t$r}tj|�d}~wwxYw|j�
|j��}|D]\}}}|�||d|���dS)a�Lint a file using the passed utility function check_astroid_module).

        :param FileItem file: data about the file
        :param nodes.Module module: the ast module to lint
        :param Callable check_astroid_module: callable checking an AST taking the following
               arguments
        - ast: AST of the module
        :raises AstroidError: for any failures stemming from astroid
        FN�r�r�r=r�r5�modpathr�r�rdr�r�r]r��"iter_spurious_suppression_messagesr�)	rGrdrfr�r��spurious_messagesrr�r�s	         rHr�zPyLinter._lint_files���	
����	�4�=�9�9�9�!���#�D�L�$�/�6�J�J���#�K���	.� � ��(�(�(�(���	.�	.�	.��&�A�-�����	.����!�O�N�N��O�
�
��"3�	6�	6��E�4�����U�D�$��5�5�5�5�	6�	6s�A!�!
A=�+
A8�8A=r�r<c��|�|j|j��||j|j��}|�dSd|_t	|j|j|��|_|j|_		||��n#t$r}tj|�d}~wwxYw|j�
|j��}|D]\}}}	|�||d|	���dS)aMCheck a file using the passed utility functions (get_ast and
        check_astroid_module).

        :param callable get_ast: callable returning AST from defined file taking the
                                 following arguments
        - filepath: path to the file to check
        - name: Python module name
        :param callable check_astroid_module: callable checking an AST taking the following
               arguments
        - ast: AST of the module
        :param FileItem file: data about the file
        :raises AstroidError: for any failures stemming from astroid
        NFr�)
rGr�r�rd�ast_noder�r�rr�r�s
          rHr�zPyLinter._check_file6s
��&	
����	�4�=�9�9�9��7�4�=�$�)�4�4�����F�!���#�D�L�$�/�8�L�L���%�M���	.� � ��*�*�*�*���	.�	.�	.��&�A�-�����	.����!�O�N�N��O�
�
��"3�	6�	6��E�4�����U�D�$��5�5�5�5�	6�	6s�/A;�;
B�
B�Bc#�K�t||jj|jj|jj��rdS	d�tj�|����}nR#t$rEtj�tj�
|����d}YnwxYwt|||��V�dS)z�Return file description (tuple of module name, file path, base name) from
        given file path.

        This method is used for creating suitable file description for _check_files when the
        source is standard input.
        Nr[r)rr�rhrirVrcr]r^�modpath_from_filer�rbrO�splitext�basenamer.)rGr=r?s   rHryz#PyLinter._get_file_descr_from_stdin`s��������K���K�'��K�$�	
�
�	�
�F�	F��h�h�w�/�A�A�(�K�K�L�L�G�G���	F�	F�	F��g�&�&�r�w�'7�'7��'A�'A�B�B�1�E�G�G�G�	F�����w��(�3�3�3�3�3�3�3s�2A)�)AB8�7B8c#��K�|�|�����D]K}|d|d|d}}}|�|||���rt|||d��V��LdS)z�Return generator yielding file descriptions (tuples of module name, file
        path, base name).

        The returned generator yield one item for each Python module that should be linted.
        r�rO�isarg)rPr�N)�
_expand_filesr"rTr.)rGrY�descrr�r=�is_args      rHrxzPyLinter._iterate_file_descrsys������'�'�(8�9�9�@�@�B�B�	B�	B�E�%*�6�]�E�&�M�5��>�F�(�D��'�'��h�F�'�K�K�
B��t�X�u�Z�/@�A�A�A�A�A��	B�	BrJ� dict[str, ModuleDescriptionDict]c��t||jj|jj|jj|j��\}}|D]�}|dx}}|d}|�|��|dkrGt|d���tj
��tjzd��}|�||�����|S)z@Get modules and errors from a list of modules and handle errors.�modrrkr�r��r�)
rr�rqrhrir�r�r>�replacerb�getcwd�sepr�)rGrY�result�errors�errorrr?rs        rHr�zPyLinter._expand_files�s���(���K�$��K���K�'���
�
�����	0�	0�E� %�e��,�G�g���,�C��#�#�G�,�,�,��g�~�~��e�D�k�*�*�2�2�2�9�;�;���3G��L�L�����S�w��/�/�/�/��
rJc�\�|s|�dS|j�|pd|��|�tjdtd���||_|p||_|j�|pd��|r:|�	t|��|j��}|r|p|j|_
dSdSdS)zZSet the name of the currently analyzed module and
        init statistics for it.
        Nr�z�In pylint 3.0 modname should be a string so that it can be used to correctly set the current_name attribute of the linter instance. If unknown it should be initialized as an empty string.r�r�)r��on_set_current_moduler�r�r�r�r�r��init_single_module�_get_namespace_for_filer	�_directory_namespaces�_base_configr�)rGr?r=�	namespaces    rHr�zPyLinter.set_current_module�s����	�8�+��F��
�+�+�G�M�r�8�D�D�D��?��M�N�#��
�
�
�
�$���$�/�����
�%�%�g�m��4�4�4��	=��4�4��X���� :���I��
=�'�<�4�+<�����	=�	=�
=�
=rJr	�
namespacesr-�argparse.Namespace | Nonec��|D]F}t||��r4|�|||d��}|�||dcS�GdS)Nr�r)r$r�)rGr=r��	directoryr�s     rHr�z PyLinter._get_namespace_for_file�sm��$�	4�	4�I��x��3�3�
4� �8�8��j��3�A�6���	��$�%�i�0��3�3�3�3���trJ�/Iterator[Callable[[nodes.Module], bool | None]]c#�K�t|��}|���}d�|D��}|D]�}tj��5tjdt
���t
j|tj��r7||vr3||ur/|�	|��tj
dt
��ddd��n#1swxYwY��d�|D��}|D]�}tj��5tjdt
���t
j|tj��r3||vr/|�	|��tj
dt
��ddd��n#1swxYwY��|D]+}|���|�
|���,tj|j|||���V�|j|j_t)|��D]}|����dS)	z}Context manager for checking ASTs.

        The value in the context is callable accepting AST as its only argument.
        c�F�g|]}t|tj���|��SrF)rRr�BaseTokenChecker�r�rAs  rH�
<listcomp>z4PyLinter._astroid_module_checker.<locals>.<listcomp>�s:��
�
�
��J�q�(�2K�$L�$L�
�
�
�
�
rJrh)�categoryz�Checkers should subclass BaseTokenChecker instead of using the __implements__ mechanism. Use of __implements__ will no longer be supported in pylint 3.0Nc�F�g|]}t|tj���|��SrF)rRr�BaseRawFileCheckerr�s  rHr�z4PyLinter._astroid_module_checker.<locals>.<listcomp>�s:��
�
�
��J�q�(�2M�$N�$N�
�
�
�
�
rJz�Checkers should subclass BaseRawFileChecker instead of using the __implements__ mechanism. Use of __implements__ will no longer be supported in pylint 3.0)�walker�
tokencheckers�rawcheckers)r4rNr��catch_warnings�filterwarningsr�r�
implements�
ITokenCheckerr�r��IRawCheckerr��add_checker�	functools�partialr��nbstatementsr��	statement�reversedr�)rGr�r�r�rAr�rs       rHrzz PyLinter._astroid_module_checker�s������4�����)�)�+�+�	�
�
� �
�
�
�
��	�	�A��(�*�*�

�

��'��;M�N�N�N�N��)�!�Z�-E�F�F����.�.���
�
�!�(�(��+�+�+��M�D�+�	���

�

�

�

�

�

�

�

�

�

�

����

�

�

�

��
�
� �
�
�
���
	�
	�A��(�*�*�
�
��'��;M�N�N�N�N��)�!�Z�-C�D�D�
���,�,��&�&�q�)�)�)��M�D�+�	���
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��!�	(�	(�G��L�L�N�N�N����w�'�'�'�'����%��'�#�	
�
�
�	
�	
�	
� &�2��
���	�*�*�	�	�G��M�M�O�O�O�O�	�	s&�	A2C�C	�C	�6A.E0�0E4	�7E4	�nodes.Module | Nonec
�f�	|�t�||d���Stj�t���|||��S#tj$r`}t|jdd��}|�d}|�	d|t|jdd��d|j�d	�t�
��Yd}~nmd}~wtj$r!}|�	d|���Yd}~n?d}~wt$r/}tj��tjd
|���|�d}~wwxYwdS)a�Return an ast(roid) representation of a module or a string.

        :param filepath: path to checked file.
        :param str modname: The name of the module to be checked.
        :param str data: optional contents of the checked file.
        :returns: the AST
        :rtype: astroid.nodes.Module
        :raises AstroidBuildingError: Whenever we encounter an unexpected exception
        NT)�source�linenorr}�offsetzParsing failed: '�')r��
col_offsetr�r�rpr�zMBuilding error when trying to create ast representation of module '{modname}')r?)�MANAGER�
ast_from_filer]�builder�AstroidBuilder�string_build�AstroidSyntaxErrorrbr�r�rr�r��	traceback�	print_exc)rGr=r?r@r�r�s      rHr�zPyLinter.get_asts���	��|��,�,�X�w�t�,�L�L�L��?�1�1�'�:�:�G�G��g�x���
���)�
	�
	�
	��2�8�X�t�4�4�D��|��������"�2�8�X�t�<�<�4���4�4�4��
�
�
�
�
�
�
�
�
������+�	5�	5�	5����]���4�4�4�4�4�4�4�4������	�	�	���!�!�!��.�_������
�����	�����ts5�A�8A�D.�)AC�D.�C2�2
D.�?*D)�)D.r�r�r4r��!list[checkers.BaseRawFileChecker]r��list[checkers.BaseTokenChecker]�bool | Nonec��|j}|�||||��}|jsJ�|j|z
|jj|jd<|S)zlCheck a module from its astroid representation.

        For return value see _check_astroid_module
        r�)r��_check_astroid_moduler�r��	by_module)rGr�r�r�r��before_check_statements�retvals       rHr�zPyLinter.check_astroid_module0sh��#)�"5���+�+��f�k�=�
�
��
� � � � �
��"9�9�	
�
��T�.�/��<��
rJ�nodec���	tj|��}nQ#tj$r?}|�d|jdd|jd���Yd}~dSd}~wwxYw|js|�d|j���nR|�|��|j	rdS|D]}|�
|���|D]}|�|���|�|��d	S)
a�Check given AST node with given walker and checkers.

        :param astroid.nodes.Module node: AST node of the module to check
        :param pylint.utils.ast_walker.ASTWalker walker: AST walker
        :param list rawcheckers: List of token checkers to use
        :param list tokencheckers: List of raw checkers to use

        :returns: True if the module was checked, False if ignored,
            None if the module contents could not be parsed
        r}r�r)r�r�Nrsr�FT)r7�tokenize_module�tokenize�
TokenErrorr�r��pure_pythonr��process_tokensr��process_modulerg)	rGr�r�r�r��tokensr��raw_checker�
token_checkers	         rHr�zPyLinter._check_astroid_moduleJs(��"	��*�4�0�0�F�F���"�	�	�	����^�"�'�!�*�Q�-�b�g�a�j��Q�Q�Q��4�4�4�4�4�����	������	5����1��	��B�B�B�B�
����'�'�'�� �
��u�*�
1�
1���*�*�4�0�0�0�0�!.�
5�
5�
��,�,�V�4�4�4�4����D�����ts��A%�4A � A%c�r�t��|_|jjt_|jjt_tj�	|jj
��|jjr)tj�	|jj��|j���dS)zInitialize counters.N)
r6r�r��unsafe_load_any_extensionr��always_load_extensions�limit_inference_results�max_inferable_values�extension_package_whitelist�update�extension_pkg_allow_list�extension_pkg_whitelist�reset_message_countr�s rHr�z
PyLinter.openrs��� �]�]��
�)-��)N��&�'+�{�'J��$��+�2�2�4�;�3W�X�X�X��;�.�	��/�6�6���3�
�
�
�	
�
�&�&�(�(�(�(�(rJ�
int | Nonec��|j�tj����|jjs�|jj��t|jj��}|j�|j	|��|j
jr|�|j	|��}ntj��}|j
jr|j�
|��|���}|j
jrt!|j	|jj��n.|j�|j	t#����d}|S)z�Close the whole package /module, it's time to make reports !

        if persistent run, pickle results for later comparison
        N)r��display_messages�report_nodes�Sectionr��_is_base_filestate�	base_namer�on_closer�r�r��make_reports�display_reports�_report_evaluationr:rr6)rG�previous_stats�sect�score_values    rH�generate_reportszPyLinter.generate_reports~s"��	
�
�&�&�|�';�'=�'=�>�>�>���2�	���)�5�*�$�/�*C�D�D�N��M�"�"�4�:�~�>�>�>��{�"�
.��(�(���^�D�D���#�+�-�-���{�"�
4��
�-�-�d�3�3�3��1�1�3�3�K��{�%�
D��T�Z���)B�C�C�C���M�"�"�4�:�{�}�}�=�=�=��K��rJc�d�d}|jj�J�t|jj��}|jjdkr|S|jj}	|jj|jj|jj	|jj
|jj|jj|jjd�}t|i|��}||j_d|d�d�}|r|j}|�|d|d�d||z
d	�d
�z
}n#t$r}d|��}Yd}~nd}~wwxYw|jjr.t#j|��}|j�|��|S)z"Make the global evaluation report.Nr)rkr��warning�refactor�
conventionr��infozYour code has been rated at z.2fz/10z (previous run: z/10, z+.2f�)z$An exception occurred while rating: )r�rrr�r�r��
evaluationrkr�rrrr�eval�global_noter�r;r�EvaluationSectionr�r
)	rG�noterr�
stats_dictr)�pnoter�r
s	         rHrzPyLinter._report_evaluation�sz������(�4�4�4�%�d�o�&?�@�@���:��1�$�$��K��[�+�
�	S���)���)��:�-� �J�/�"�j�3�!�Z�1��
����J��
�B�
�3�3�D�&*�D�J�"�>��>�>�>�>�C��
S�&�2���$��R�e�R�R�R�d�U�l�R�R�R�R�R�C����	>�	>�	>�=��=�=�C�C�C�C�C�C�����	>�����;��	0��1�#�6�6�D��M�)�)�$�/�/�/��s�	A!C�
C3�$C.�.C3�message_definitionr)r��nodes.NodeNG | Noner��
Any | Noner��interfaces.Confidence | Noner��
end_lineno�end_col_offsetc	��|�||��|rd|jr9|s|jj}|s|jj}|s|jj}|s|jj}n$|s|j}|s|j}|s|j}|s|j}|�|j||��s=|j	�
|�|j||��|j|��dSt|jd}	|xj
t|jdzc_
|j�|	d��|j�|j|	d��	|jj|jxxdz
cc<n$#t*$rd|jj|j<YnwxYw|j}
|�|
|z}
|�|jd}}|j}
n0t1j|��\}}|���j}
|
�"|
�|jjdd��}nd}|j�tA|j|jtC|
pd||pd||pd|pd||��|
|����dS)zpAfter various checks have passed a single Message is
        passed to the reporter and added to stats.
        Nrr�r��
configuration)"�check_message_definition�positionr�r�r!r"�
fromlinenorIrr��handle_ignored_message�_get_message_state_scoperr�rr��increase_single_message_count�$increase_single_module_message_countr�r0r#�KeyErrorr)r�r7�get_module_and_frameidr`rdr�r��path_strip_prefix�handle_messager(r1)rGrr�r�r�r�r�r!r"�msg_catr)rf�obj�abspathrOs               rH�_add_one_messagezPyLinter._add_one_message�s���	�3�3�D�$�?�?�?��	9��}�
9��0��=�/�D�!�:�!%��!9�J�!�:�!%��!9�J�%�B�%)�]�%A�N���+��?�D�!�1�!%��J�!�1�!%��J�%�9�%)�%8�N��&�&�'9�'?��z�R�R�	��O�2�2��-�-�&�,�d�J���#�(��
�
�
�
�F��.�4�Q�7�8�����+�,>�,D�Q�,G�H�H����
�0�0��!�<�<�<��
�7�7����
�	
�	
�	
�
	=��J��0�7�8�8�8�A�=�8�8�8�8���	=�	=�	=�;<�D�J��0�7�8�8�8�	=����!�$�����4�K�C��<��+�R�C�F��'�G�G��6�t�<�<�K�F�C��i�i�k�k�&�G����?�?�4�=�#B�B��J�J�D�D�"�D��
�$�$��"�(�"�)�$��M�r���L�b���I�A��O�!��"�	�	���
�
�	
�	
�	
�	
�	
s�E1�1F�Frc	��|�tj}|j�|��}	|	D]}
|�|
|||||||���dS)a,Adds a message given by ID or name.

        If provided, the message string is expanded using args.

        AST checkers must provide the node argument (but may optionally
        provide line if the line number is different), raw and token checkers
        must provide the line argument.
        N)r�	UNDEFINEDr��get_message_definitionsr3)rGrr�r�r�r�r�r!r"�message_definitionsrs           rHr�zPyLinter.add_message&sw��&��#�-�J�"�o�E�E�e�L�L��"5�
	�
	���!�!�"��������	
�	
�	
�	
�
	�
	rJ�intc���|j�|��}|D]S}|�||��|j�|�|j||��|j|���TdS)ahPrepares a message to be added to the ignored message storage.

        Some checks return early in special cases and never reach add_message(),
        even though they would normally issue a message.
        This creates false positives for useless-suppression.
        This function avoids this by adding those message to the ignored msgs attribute
        N)r�r6r%r�r(r)r)rGrr�r�r�r7rs       rH�add_ignored_messagezPyLinter.add_ignored_messageHs���#�o�E�E�e�L�L��"5�	�	���7�7��d�C�C�C��O�2�2��-�-�&�,�d�J���#�(��
�
�
�
�	�	rJc��|j���D]G\}}|\}}|j�|��|D] }|�||dt
����!�Ht
jt��|_dS)Nr)r�r�r�)	�_stashed_messagesr�r�r�r�rr�rr�)rGr1r"r?r#r�s      rH�_emit_stashed_messageszPyLinter._emit_stashed_messagesas��� �2�8�8�:�:�		�		�L�D�&�"�O�G�V��K�*�*�7�3�3�3��
�
��� � ����#�	!�����
�"-�!8��!>�!>����rJ)rFNrFN)
r�r3r�r�r�r�r�rArBr�)rBr�)r�r�rBr�)rBr�)r�r�rBr�)r�r>rBr�)r�r>rBr�)r�r�rBr�)rXrrBr�)rBr)rrrBr�)rBr+)rBr�)F)r?r>rOr>rPr+rBr+)rYrZrBr[)rYrnrBr�)rr�r@rArBr�)r�r>r=r>r?r>rBr�)rdr.rBr�)r�r�r�r�rBr�)rdr.rfrCr�r�rBr�)r�r<r�r�rdr.rBr�)r=r>rBr�)rYrZrBr�)rYrZrBr�rE)r?rAr=rArBr�)r=r	r�r-rBr�)rBr�)r=r>r?r>r@rArBr�)
r�rCr�r4r�r�r�r�rBr�)
r�rCr�r4r�r�r�r�rBr�)rBr)rr)r�rr�rr�rr�r r�rr!rr"rrBr�)NNNNNNN)rr>r�rr�rr�rr�r r�rr!rr"rrBr�)
rr>r�r8r�rr�r rBr�)>rKrLrM�__doc__rr�r�rr��__annotations__r�r��propertyr��setterr�r�r�r�r�r�rrr�r*r2r7r>rBrFrN�staticmethodrTr�rmr�r{r�r�r|r�r�ryrxr�r�r�r��contextmanagerrzr�r�r�r�rrr3r�rr5r:r=rFrJrHr�r��s���������� �D��D�?�O�?�?�?�?�D�G�����LP�57�#�
G$�G$�G$�G$�G$�R�#�#�#��X�#���$�$�$���$�#�#�#�#�7�7�7�7�"
�
�
�
�@0�0�0�0�@
 �
 �
 �
 �����>�>�>�>�
�
�
�
�'�'�'�'�@�@�@�@�>P�P�P�P�/�/�/�/�(�(�(�(� U�U�U�U�
�
�
�
�
�
�
�
��$�$�$�$��\�$�,
4�
4�
4�
4�" �" �" �" �H<I�<I�<I�<I�| � � � �4G�G�G�G�G�G�G�G�I�I�I�I�. 6� 6� 6� 6�D(6�(6�(6�(6�T4�4�4�4�2B�B�B�B�����*;?�=�=�=�=�=�@
�
�
�
���=�=�=���=�@?C�(�(�(�(�(�T����4&�&�&�&�P
)�
)�
)�
)�����@%�%�%�%�N_
�_
�_
�_
�H �$(��37�!%�!%�%)� � � � � �L%)�3=�3G������2?�?�?�?�?�?rJr�)rBr>)rXr>rBrY)e�
__future__r�argparser�r�r�rbrSr�r�r�r�collections.abcrrr�ior�pathlibr	�rer
�typesr�typingrr]r
r�rrrr�pylint.checkers.base_checkerr�pylint.config.arguments_managerr�pylint.constantsrrrr�pylint.interfacesr�pylint.lint.base_optionsr�pylint.lint.cachingrr�pylint.lint.expand_modulesrrr�!pylint.lint.message_state_handlerr�pylint.lint.parallelr �pylint.lint.report_functionsr!r"r#�pylint.lint.utilsr$r%r&r'�pylint.messager(r)r*�pylint.reporters.base_reporterr+�pylint.reporters.textr,�pylint.reporters.ureportsr�
pylint.typingr-r.r/r0r1r2r3�pylint.utilsr4r5r6r7�version_infor:�typing_extensionsr�r<rWri�LINEr�r?r�r�rFrJrH�<module>r`sa��
#�"�"�"�"�"�"�����������������	�	�	�	�
�
�
�
�������������#�#�#�#�#�#�8�8�8�8�8�8�8�8�8�8�����������������������������������������>�>�>�>�>�>�>�>�>�>�>�>�4�4�4�4�4�4�=�=�=�=�=�=�������������#�"�"�"�"�"�9�9�9�9�9�9�:�:�:�:�:�:�:�:�����������
C�B�B�B�B�B�/�/�/�/�/�/�����������
������������N�M�M�M�M�M�M�M�M�M�7�7�7�7�7�7�.�.�.�.�.�.�;�;�;�;�;�;�������������������B�A�A�A�A�A�A�A�A�A�A�A���v����������*�*�*�*�*�*��/�������X������������D+����	8�	�,�#�$��D+����	1�
�,�#�$�
�D+� �&��	<�	�,�#�$��!D+�.�3��T�	�,�#�$�	�/D+�:�:��	"�	�,�#�$��;D+�H�-��	"�	�,�#�$��ID+�V�#��O�	�,�#�$�	�WD+�b���:�	�,�#�$�	�cD+�n�&��	�
�,�#�$��oD+�@�#��	0�	�,�#�$��AD+�N�5��	>�>�>�!�&�	
�	
�
�OD+�d���:�	�,�#�$�	�eD+�p�%�$�<�	�,�#�$�	�qD+�|�U��B�!�&�7�8�	
�	
�	�}D+�N�+��	�"�&�7�8�	
�	
�	�OD+�b�E��:�	�,�#�$�	�cD+�n�Y�#�	�	�,�#�$��oD+�|�'��A�	�,�#�$�	�}D+�D+��D�D�D�D�Px?�x?�x?�x?�x?���
�!���	x?�x?�x?�x?�x?rJ