§
    ÷yIf/2  ã                  ób  — d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlZd dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZm Z  d dl!m"Z"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( eee)e*f                  Z+ ee,¦  «        j-        dz  Z. G d„ d¦  «        Z/dS )é    )ÚannotationsN)ÚCounter)ÚStringIO)ÚPath)ÚTextIOÚTuple)ÚConfig)Úcheckers)Ú_config_initialization)ÚIS_PYPY)ÚPyLinter)ÚMessage)Ú_EXPECTED_REÚ
_OPERATORSÚUPDATE_OPTION)ÚFunctionalTestFileÚNoFileErrorÚparse_python_version)Ú
OutputLine)ÚFunctionalTestReporterÚtesting_pylintrcc                  ó®   — e Zd ZdZ	 d(d)d„Zd*d	„Zd*d
„Zd+d„Zd,d„Ze	d-d„¦   «         Z
e	d.d„¦   «         Zd/d„Zd/d„Zd0d„Zd0d„Zd*d„Zd1d!„Zd2d$„Zd3d'„ZdS )4ÚLintModuleTestNÚ	test_filer   ÚconfigúConfig | NoneÚreturnÚNonec                ó&  — t          ¦   «         }t          ¦   «         | _        d| j        j        _        t          j        | j        ¦  «         t          }	 |j        }| j         	                    d¦  «         | j         	                    d¦  «         | j         	                    d¦  «         n# t          $ r Y nw xY w|| _        	 |j        g}n# t          $ r dg}Y nw xY w|rÌ|                     d¦  «        r·|                      ¦   «         5 }d„ |                      |¦  «        D ¦   «         }|                     d¦  «         |                     d	¦  «         |                     d
¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ddd                     |¦  «        › �g¦  «         | j        j                             dt*          d¬¦  «         | j        j                             dt*          d¬¦  «         | j        j                             dt*          d¬¦  «         | j        j                             dd„ g ¬¦  «         | j        j                             dd„ g ¬¦  «         | j        j                             dd„ g ¬¦  «         | j        j                             dd¬¦  «         t-          | j        |||¬¦  «         t.          j        | j        j        j        k    | _        | j        rt6          rt.          j        dk    | _        || _        d S ) Nr   zsuppressed-messagezlocally-disabledzuseless-suppressionÚ Úminimal_messages_configc                ó   — h | ]
}|d          ’ŒS )é   © ©Ú.0Úmsgs     úU/var/www/piapp/venv/lib/python3.11/site-packages/pylint/testutils/lint_module_test.pyú	<setcomp>z*LintModuleTest.__init__.<locals>.<setcomp>F   s   € Ð%VÐ%VÐ%V° c¨!¤fÐ%VÐ%VÐ%Vó    zastroid-errorÚfatalzsyntax-errorz--disable=allz	--enable=ú,z--min_pyver)é   é   )ÚtypeÚdefaultz--max_pyver)é   r   z--min_pyver_end_position)é   é   z
--requiresc                ó@   — d„ |                       d¦  «        D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r$   ©Ústrip©r&   Úis     r(   ú
<listcomp>z=LintModuleTest.__init__.<locals>.<lambda>.<locals>.<listcomp>X   s    € Ð)JÐ)JÐ)J¸¨!¯'ª'©)¬)Ð)JÐ)JÐ)Jr*   r,   ©Úsplit©Úss    r(   ú<lambda>z)LintModuleTest.__init__.<locals>.<lambda>X   s   € Ð)JÐ)J¸Q¿WºWÀS¹\¼\Ð)JÑ)JÔ)J€ r*   z--except_implementationsc                ó@   — d„ |                       d¦  «        D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r$   r6   r8   s     r(   r:   z=LintModuleTest.__init__.<locals>.<lambda>.<locals>.<listcomp>\   ó    € Ð<Ð<Ð<¨!˜AŸGšG™IœIÐ<Ð<Ð<r*   r,   r;   r=   s    r(   r?   z)LintModuleTest.__init__.<locals>.<lambda>\   ó   € Ð<Ð<¨q¯wªw°s©|¬|Ð<Ñ<Ô<€ r*   z--exclude_platformsc                ó@   — d„ |                       d¦  «        D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r$   r6   r8   s     r(   r:   z=LintModuleTest.__init__.<locals>.<lambda>.<locals>.<listcomp>a   rB   r*   r,   r;   r=   s    r(   r?   z)LintModuleTest.__init__.<locals>.<lambda>a   rC   r*   z&--exclude_from_minimal_messages_configF)r0   )Ú	args_listÚconfig_fileÚreporter)r2   é	   )r   r   Ú_linterr   Ú
persistentr
   Ú
initializeÚPYLINTRCÚoption_fileÚdisabler   Ú
_test_fileÚsourceÚ	getoptionÚ_open_source_fileÚget_expected_messagesÚaddÚextendÚjoinÚ_arg_parserÚadd_argumentr   r   ÚsysÚversion_infoÚmin_pyver_end_positionÚ_check_end_positionr   Ú_config)Úselfr   r   Ú_test_reporterÚrc_fileÚargsÚfÚmessages_to_enables           r(   Ú__init__zLintModuleTest.__init__,   sº  € õ 0Ñ1Ô1ˆÝ‘z”zˆŒØ)*ˆŒÔÔ&ÝÔ˜DœLÑ)Ô)Ð)õ 'ˆð	ØÔ+ˆGØŒL× Ò Ð!5Ñ6Ô6Ð6ØŒL× Ò Ð!3Ñ4Ô4Ð4ØŒL× Ò Ð!6Ñ7Ô7Ð7Ð7øÝð 	ð 	ð 	ØˆDð	øøøð $ˆŒð	ØÔ$Ð%ˆDˆDøÝð 	ð 	ð 	à�4ˆDˆDˆDð	øøøð ð 	W�f×&Ò&Ð'@ÑAÔAð 	WØ×'Ò'Ñ)Ô)ð 7¨QØ%VÐ%V¸×8RÒ8RÐSTÑ8UÔ8UÐ%VÑ%VÔ%VÐ"à"×&Ò& Ñ7Ô7Ð7Ø"×&Ò& wÑ/Ô/Ð/Ø"×&Ò& ~Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð �KŠK˜Ð*T°c·h²hÐ?QÑ6RÔ6RÐ*TÐ*TÐUÑVÔVÐVð 	ŒÔ ×-Ò-ØÕ 4¸fð 	.ñ 	
ô 	
ð 	
ð 	ŒÔ ×-Ò-ØÕ 4¸fð 	.ñ 	
ô 	
ð 	
ð 	ŒÔ ×-Ò-Ø&Õ-AÈ6ð 	.ñ 	
ô 	
ð 	
ð 	ŒÔ ×-Ò-ØÐJÐJÐTVð 	.ñ 	
ô 	
ð 	
ð 	ŒÔ ×-Ò-Ø&Ø<Ð<Øð 	.ñ 	
ô 	
ð 	
ð
 	ŒÔ ×-Ò-Ø!Ø<Ð<Øð 	.ñ 	
ô 	
ð 	
ð
 	ŒÔ ×-Ò-Ø4¸eð 	.ñ 	
ô 	
ð 	
õ 	ØŒL D°gÈð	
ñ 	
ô 	
ð 	
õ
 Ô ¤Ô 3Ô JÒJð 	Ô ð Ô#ð 	B­ð 	BÝ'*Ô'7¸6Ò'AˆDÔ$àˆŒˆˆs8   ÁAB* Â*
B7Â6B7ÃC ÃCÃCÄ	AE4Å4E8Å;E8c                ó|  — |                       ¦   «         r=t          j        dt          j                             dd¬¦  «        d         › d�¦  «         g }| j        j        j        D ]7}	 t          |¦  «         Œ# t          $ r |                     |¦  «         Y Œ4w xY w|r+t          j        dd                     |¦  «        › d	�¦  «         | j        j        j        }|r?t          j        ¦   «         |v r*d
}t          j        |t          j        ¦   «         z  ¦  «         | j        j        j        }|rAt          j                             ¦   «         |v r!t          j        dt          j        ›�¦  «         | j        rA| j                             d¦  «        r)| j        j        j        rt          j        d¦  «         d S d S d S d S )NzTest cannot run with Python ú r#   )Úmaxsplitr   ú.z	Requires r,   z to be present.z-Test cannot run with Python implementation %rzTest cannot run on platform r!   z,Test excluded from --minimal-messages-config)Ú!_should_be_skipped_due_to_versionÚpytestÚskiprZ   Úversionr<   rJ   r   ÚrequiresÚ
__import__ÚImportErrorÚappendrW   Úexcept_implementationsÚplatformÚpython_implementationÚexclude_platformsÚlowerr^   rR   Ú$exclude_from_minimal_messages_config)r_   ÚmissingÚrequirementrr   r'   Úexcluded_platformss         r(   ÚsetUpzLintModuleTest.setUpu   sû  € Ø×1Ò1Ñ3Ô3ð 	ÝŒKØW­s¬{×/@Ò/@ÀÈqÐ/@Ñ/QÔ/QÐRSÔ/TÐWÐWÐWñô ð ð ˆØœ<Ô.Ô7ð 	,ð 	,ˆKð,Ý˜;Ñ'Ô'Ð'Ð'øÝð ,ð ,ð ,Ø—’˜{Ñ+Ô+Ð+Ð+Ð+ð,øøøàð 	HÝŒKÐF C§H¢H¨WÑ$5Ô$5ÐFÐFÐFÑGÔGÐGØ!%¤Ô!4Ô!KÐØ!ð 	DÝÔ-Ñ/Ô/Ð3IÐIÐIØE�Ý”˜C¥(Ô"@Ñ"BÔ"BÑBÑCÔCÐCØ!œ\Ô0ÔBÐØð 	MÝŒ|×!Ò!Ñ#Ô#Ð'9Ð9Ð9Ý”ÐK½3¼<ÐKÐKÑLÔLÐLàŒLð	Hà”×&Ò&Ð'@ÑAÔAð	Hð ”Ô#ÔHð	Hõ
 ŒKÐFÑGÔGÐGÐGÐGð	Hð 	Hð 	Hð 	Hð 	Hð 	Hs   Á(A8Á8BÂBc                ó.   — |                       ¦   «          d S ©N)Ú_runTest©r_   s    r(   ÚrunTestzLintModuleTest.runTest’   s   € Ø�Š‰Œˆˆˆr*   Úboolc                ó~   — t           j        | j        j        j        k     pt           j        | j        j        j        k    S r}   )rZ   r[   rJ   r   Ú	min_pyverÚ	max_pyverr   s    r(   rj   z0LintModuleTest._should_be_skipped_due_to_version•   s3   € åÔ˜tœ|Ô2Ô<Ò<ð @ÝÔ $¤,Ô"5Ô"?Ò?ð	
r*   Ústrc                óT   — | j         j        › d| j        j        › d| j        j        › d�S )Nz (ri   ú))rP   ÚbaseÚ	__class__Ú
__module__Ú__name__r   s    r(   Ú__str__zLintModuleTest.__str__›   s0   € Ø”/Ô&Ð`Ð`¨$¬.Ô*CÐ`Ð`ÀdÄnÔF]Ð`Ð`Ð`Ð`r*   Ústreamr   ÚMessageCounterc                ó¬  — t          ¦   «         }t          | ¦  «        D �]4\  }}t          j        |¦  «        }|€Œ|                     d¦  «        }|€|dz   }nO|                     d¦  «        s|                     d¦  «        r|dz   t          |¦  «        z   }nt          |¦  «        }|                     d¦  «        }|                     d¦  «        }|r0t          |¦  «        }t          |         t          j
        |¦  «        sŒå|                     d¦  «                             d	¦  «        D ]&}	|||	                     ¦   «         fxx         dz  cc<   Œ'�Œ6|S )
zêParses a file and get expected messages.

        :param stream: File-like input stream.
        :type stream: enumerable
        :returns: A dict mapping line,msg-symbol tuples to the count on this line.
        :rtype: dict
        NÚliner#   ú+ú-rm   ÚopÚmsgsr,   )r   Ú	enumerater   ÚsearchÚgroupÚ
startswithÚintr   r   rZ   r[   r<   r7   )
r�   Úmessagesr9   r�   ÚmatchÚlinenorm   r“   ÚrequiredÚmsg_ids
             r(   rT   z$LintModuleTest.get_expected_messagesž   s[  € õ $+¡9¤9ˆÝ  Ñ(Ô(ð 	6ñ 	6‰GˆAˆtÝ Ô'¨Ñ-Ô-ˆEØˆ}ØØ—;’;˜vÑ&Ô&ˆDØˆ|Ø˜Q™��Ø—’ Ñ%Ô%ð #¨¯ª¸Ñ)=Ô)=ð #Ø˜Q™¥ T¡¤Ñ*��å˜T™œ�à—k’k )Ñ,Ô,ˆGØ—’˜TÑ"Ô"ˆBØð Ý/°Ñ8Ô8�Ý! "”~¥cÔ&6¸ÑAÔAð ØàŸ+š+ fÑ-Ô-×3Ò3°CÑ8Ô8ð 6ð 6�Ø˜ §¢¡¤Ð/Ð0Ð0Ô0°AÑ5Ð0Ð0Ñ0Ð0ñ6àˆr*   Úexpected_entriesÚactual_entriesú1tuple[MessageCounter, dict[tuple[int, str], int]]c                óü   — |                       ¦   «         }|                     |¦  «         i }t          |                     ¦   «         ¦  «        D ],\  }}|dk    r!|                     |¦  «         |dk     r| ||<   Œ-||fS )z{Takes two multisets and compares them.

        A multiset is a dict with the cardinality of the key as the value.
        r   )ÚcopyÚsubtractÚlistÚitemsÚpop)rŸ   r    rx   Ú
unexpectedÚkeyÚvalues         r(   Úmultiset_differencez"LintModuleTest.multiset_difference¿   sŒ   € ð #×'Ò'Ñ)Ô)ˆØ×Ò˜Ñ(Ô(Ð(Øˆ
Ý˜wŸ}š}™œÑ/Ô/ð 	-ð 	-‰JˆC�Ø˜ŠzˆzØ—’˜CÑ Ô Ð Ø˜1’9�9Ø', f�J˜s‘OøØ˜
Ð"Ð"r*   c                óx   — 	 t          | j        j        d¬¦  «        S # t          $ r t	          d¦  «        cY S w xY w)Núutf-8©Úencodingr    )ÚopenrP   Úexpected_outputÚFileNotFoundErrorr   r   s    r(   Ú_open_expected_filez"LintModuleTest._open_expected_fileÒ   sL   € ð	 Ý˜œÔ7À'ÐJÑJÔJÐJøÝ ð 	 ð 	 ð 	 Ý˜B‘<”<ÐÐÐð	 øøøs   ‚ �9¸9c                óà   — | j         j        dk    rt          | j         j        d¬¦  «        S d| j         j        v rt          | j         j        d¬¦  «        S t          | j         j        d¬¦  «        S )NÚinvalid_encoded_datar­   r®   Úlatin1Úutf8)rP   rˆ   r°   rQ   r   s    r(   rS   z LintModuleTest._open_source_fileØ   sk   € ØŒ?ÔÐ#9Ò9Ð9Ý˜œÔ.¸ÐAÑAÔAÐAØ�t”Ô+Ð+Ð+Ý˜œÔ.¸ÐBÑBÔBÐBÝ�D”OÔ*°VÐ<Ñ<Ô<Ð<r*   ú'tuple[MessageCounter, list[OutputLine]]c                óH  ‡ — ‰                       ¦   «         5 }‰                      |¦  «        }d d d ¦  «         n# 1 swxY w Y   |st          ¦   «         }‰                      ¦   «         5 }ˆ fd„t	          j        |d¦  «        D ¦   «         }d d d ¦  «         n# 1 swxY w Y   ||fS )Nc                óD   •— g | ]}t          j        |‰j        ¦  «        ‘ŒS r$   )r   Úfrom_csvr]   )r&   Úrowr_   s     €r(   r:   z0LintModuleTest._get_expected.<locals>.<listcomp>å   s9   ø€ ð %ð %ð %àõ Ô# C¨Ô)AÑBÔBð%ð %ð %r*   Útest)rS   rT   r   r³   ÚcsvÚreader)r_   rc   Úexpected_msgsÚexpected_output_liness   `   r(   Ú_get_expectedzLintModuleTest._get_expectedß   s2  ø€ Ø×#Ò#Ñ%Ô%ð 	:¨Ø ×6Ò6°qÑ9Ô9ˆMð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:àð 	&Ý#™IœIˆMØ×%Ò%Ñ'Ô'ð 	¨1ð%ð %ð %ð %åœ: a¨Ñ0Ô0ð%ñ %ô %Ð!ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 Ð3Ð3Ð3s   –8¸<¿<Á'"BÂBÂBc                óR  — | j         j        j        }|                     d„ ¬¦  «         t	          ¦   «         }g }|D ]i}|j        dk    sJ d|j        › d�¦   «         ‚||j        |j        fxx         dz  cc<   |                     t          j
        || j        ¦  «        ¦  «         Œj||fS )Nc                ó*   — | j         | j        | j        fS r}   )r�   Úsymbolr'   )Úms    r(   r?   z,LintModuleTest._get_actual.<locals>.<lambda>í   s   €  Q¤V¨Q¬X°q´uÐ$=€ r*   ©r©   r+   z#Pylint analysis failed because of 'ú'r#   )rJ   rH   rš   Úsortr   rÅ   r'   r�   rq   r   Úfrom_msgr]   )r_   rš   Úreceived_msgsÚreceived_output_linesr'   s        r(   Ú_get_actualzLintModuleTest._get_actualë   sÓ   € Ø"&¤,Ô"7Ô"@ˆØ�ŠÐ=Ð=ˆÑ>Ô>Ð>Ý(/©	¬	ˆØ "ÐØð 	ð 	ˆCà”
˜gÒ%Ð%Ð%Ø?°S´WÐ?Ð?Ð?ñ &Ô%Ð%à˜#œ( C¤JÐ.Ð/Ð/Ô/°1Ñ4Ð/Ð/Ñ/Ø!×(Ò(ÝÔ# C¨Ô)AÑBÔBñô ð ð ð Ð3Ð3Ð3r*   c                ó,  — d}| j         j        g}| j                             |¦  «         |                      ¦   «         \  }}|                      ¦   «         \  }}||k    sJ |                      |||¦  «        ¦   «         ‚|                      |||¦  «         d S )NT)rP   rQ   rJ   ÚcheckrÂ   rÍ   Úerror_msg_for_unequal_messagesÚ_check_output_text)r_   Ú__tracebackhide__Úmodules_to_checkÚexpected_messagesr±   Úactual_messagesÚactual_outputs          r(   r~   zLintModuleTest._runTestú   s¯   € Ø ÐØ œOÔ2Ð3ÐØŒ×ÒÐ+Ñ,Ô,Ð,Ø-1×-?Ò-?Ñ-AÔ-AÑ*Ð˜?Ø)-×)9Ò)9Ñ);Ô);Ñ&ˆ˜à Ò0Ð0Ð0Ø×.Ò.ØÐ.°ñ
ô 
ñ 1Ô0Ð0ð 	×ÒÐ 1°?ÀMÑRÔRÐRÐRÐRr*   rÕ   rÔ   rÖ   úlist[OutputLine]c                óL  — dt          | j        j        ¦  «        j        › d�g}|                      ||¦  «        \  }}|rA|                     d¦  «         |                     d„ t          |¦  «        D ¦   «         ¦  «         |rA|                     d¦  «         |                     d„ t          |¦  «        D ¦   «         ¦  «         d                     |¦  «        }| j	        rE| j	         
                    d¦  «        d	k    r'|d
z  }|d                     d„ |D ¦   «         ¦  «        z  }|S )NzWrong message(s) raised for "ú":z
Expected in testdata:c              3  ó@   K  — | ]}d |d         d›d|d         › �V — ŒdS ©rg   r   Ú3z: r#   Nr$   r%   s     r(   ú	<genexpr>z@LintModuleTest.error_msg_for_unequal_messages.<locals>.<genexpr>  s>   è è € ÐKÐK°CÐ/˜3˜qœ6Ð/Ð/Ð/ s¨1¤vÐ/Ð/ÐKÐKÐKÐKÐKÐKr*   z
Unexpected in testdata:c              3  ó@   K  — | ]}d |d         d›d|d         › �V — ŒdS rÛ   r$   r%   s     r(   rÝ   z@LintModuleTest.error_msg_for_unequal_messages.<locals>.<genexpr>  s>   è è € ÐNÐN°CÐ/˜3˜qœ6Ð/Ð/Ð/ s¨1¤vÐ/Ð/ÐNÐNÐNÐNÐNÐNr*   ú
Úverboser   z&

Actual pylint output for this file:
c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r}   )r…   )r&   Úos     r(   rÝ   z@LintModuleTest.error_msg_for_unequal_messages.<locals>.<genexpr>  s(   è è € Ð"AÐ"A¨a¥3 q¡6¤6Ð"AÐ"AÐ"AÐ"AÐ"AÐ"Ar*   )r   rP   rQ   Únamer«   rq   rV   ÚsortedrW   r^   rR   )r_   rÕ   rÔ   rÖ   r'   rx   r¨   Ú	error_msgs           r(   rÐ   z-LintModuleTest.error_msg_for_unequal_messages  s;  € ð U­t°D´OÔ4JÑ/KÔ/KÔ/PÐTÐTÐTÐUˆØ"×6Ò6Ø˜ñ
ô 
Ñˆ�ð ð 	LØ�JŠJÐ0Ñ1Ô1Ð1Ø�JŠJÐKÐK½6À'¹?¼?ÐKÑKÔKÑKÔKÐKØð 	OØ�JŠJÐ2Ñ3Ô3Ð3Ø�JŠJÐNÐN½6À*Ñ;MÔ;MÐNÑNÔNÑNÔNÐNØ—I’I˜c‘N”Nˆ	ØŒ<ð 	B˜DœL×2Ò2°9Ñ=Ô=ÀÒAÐAØÐDÑDˆIØ˜ŸšÐ"AÐ"A°=Ð"AÑ"AÔ"AÑAÔAÑAˆIØÐr*   Úexpected_linesÚreceived_linesc                óœ  — t          |¦  «        t          |¦  «        z
  }t          |¦  «        t          |¦  «        z
  }dt          | j        j        ¦  «        j        › d�}t          j        d¦  «        }|r!|dz  }t          ||¬¦  «        D ]
}||› d�z  }Œ|r²|dz  }t          ||¬¦  «        D ]
}||› d�z  }Œ|dt          › d	| j        j	        › d
�z  }t          ¦   «         }t          j        |d¬¦  «        }	t          ||¬¦  «        D ])}|	                     |                     ¦   «         ¦  «         Œ*||                     ¦   «         z  }|S )NzWrong output for "rÙ   rœ   z
- Missing lines:
rÇ   rß   z
- Unexpected lines:
zY
You can update the expected output automatically with:
'python tests/test_functional.py z -k "test_functional[z/]"'

Here's the update text in case you can't:
r½   )Údialect)Úsetr   rP   r±   rã   ÚoperatorÚ
attrgetterrä   r   rˆ   r   r¾   ÚwriterÚwriterowÚto_csvÚgetvalue)
r_   ræ   rç   rx   r¨   rå   Úsort_by_line_numberr�   Úexpected_csvrí   s
             r(   Úerror_msg_for_unequal_outputz+LintModuleTest.error_msg_for_unequal_output  s•  € õ
 �nÑ%Ô%­¨NÑ(;Ô(;Ñ;ˆÝ˜Ñ(Ô(­3¨~Ñ+>Ô+>Ñ>ˆ
ØW­¨d¬oÔ.MÑ)NÔ)NÔ)SÐWÐWÐWˆ	Ý&Ô1°(Ñ;Ô;ÐØð 	)ØÐ/Ñ/ˆIÝ˜wÐ,?Ð@Ñ@Ô@ð )ð )�Ø ˜[˜[˜[Ñ(�	�	Øð 	1ØÐ2Ñ2ˆIÝ˜zÐ/BÐCÑCÔCð )ð )�Ø ˜[˜[˜[Ñ(�	�	Øð>Ý3@ð>ð >à$(¤OÔ$8ð>ð >ð >ñˆIõ $™:œ:ˆLÝ”Z °fÐ=Ñ=Ô=ˆFÝ˜~Ð3FÐGÑGÔGð /ð /�Ø—’ §¢¡¤Ñ.Ô.Ð.Ð.Ø˜×.Ò.Ñ0Ô0Ñ0ˆIØÐr*   Ú_r±   c                óN   — ||k    sJ |                       ||¦  «        ¦   «         ‚dS )zlThis is a function because we want to be able to update the text in
        LintModuleOutputUpdate.
        N)ró   )r_   rô   r±   rÖ   s       r(   rÑ   z!LintModuleTest._check_output_text;  s8   € ð  -Ò/Ð/Ð/°×1RÒ1RØ˜]ñ2
ô 2
Ñ/Ô/Ð/Ð/Ð/r*   r}   )r   r   r   r   r   r   )r   r   )r   r�   )r   r…   )r�   r   r   rŽ   )rŸ   rŽ   r    rŽ   r   r¡   )r   r   )r   r¸   )rÕ   rŽ   rÔ   rŽ   rÖ   r×   r   r…   )ræ   r×   rç   r×   r   r…   )rô   rŽ   r±   r×   rÖ   r×   r   r   )r‹   rŠ   Ú__qualname__ÚmaxDiffre   r{   r€   rj   rŒ   ÚstaticmethodrT   r«   r³   rS   rÂ   rÍ   r~   rÐ   ró   rÑ   r$   r*   r(   r   r   )   s|  € € € € € Ø€Gð FJðGð Gð Gð Gð GðRHð Hð Hð Hð:ð ð ð ð
ð 
ð 
ð 
ðað að að að ðð ð ñ „\ðð@ ð#ð #ð #ñ „\ð#ð$ ð  ð  ð  ð=ð =ð =ð =ð
4ð 
4ð 
4ð 
4ð4ð 4ð 4ð 4ðSð Sð Sð Sðð ð ð ð,ð ð ð ð<
ð 
ð 
ð 
ð 
ð 
r*   r   )0Ú
__future__r   r¾   rë   rs   rZ   Úcollectionsr   Úior   Úpathlibr   ÚtypingÚCounterTyper   r   rk   Ú_pytest.configr	   Úpylintr
   Ú#pylint.config.config_initializationr   Úpylint.constantsr   Úpylint.lintr   Úpylint.message.messager   Úpylint.testutils.constantsr   r   r   Ú%pylint.testutils.functional.test_filer   r   r   Úpylint.testutils.output_liner   Ú#pylint.testutils.reporter_for_testsr   r™   r…   rŽ   Ú__file__ÚparentrM   r   r$   r*   r(   ú<module>r     sì  ðð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à €€€Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FØ $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nðð ð ð ð ð ð ð ð ð ð
 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø FÐ FÐ FÐ FÐ FÐ Fà˜U 3¨ 8œ_Ô-€àˆ4�‰>Œ>Ô Ð#5Ñ5€ð]
ð ]
ð ]
ð ]
ð ]
ñ ]
ô ]
ð ]
ð ]
ð ]
r*   