
    c                    v    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	 erd dl
mZ  G d de          ZddZdS )    )annotations)TYPE_CHECKING)nodes)BaseChecker)only_required_for_messages)PyLinterc                  ^     e Zd ZdZddiZd fdZ ed	          dd            ZddZ xZ	S )SetMembershipCheckerset_membershipR6201)z&Consider using set for membership testuse-set-for-membershipz`Membership tests are more efficient when performed on a lookup optimized datatype like ``sets``.linterr   returnNonec                L    t                                          |           dS )zInitialize checker instance.r   N)super__init__)selfr   	__class__s     @lib/python3.11/site-packages/pylint/extensions/set_membership.pyr   zSetMembershipChecker.__init__   s$    '''''    r   nodenodes.Comparec                V    |j         D ] \  }}|dk    r|                     |           !d S )Nin)ops_check_in_comparison)r   r   op
comparators       r   visit_comparez"SetMembershipChecker.visit_compare!   sB    "h 	6 	6NB
Tz 6))*555	6 	6r   r    nodes.NodeNGc                    t          |t          j                  rt          |t          j                  rdS t	          d |j        D                       r|                     d|           dS dS )zBChecks for membership comparisons with in-place container objects.Nc              3  J   K   | ]}t          |t          j                  V  d S N)
isinstancer   Const).0items     r   	<genexpr>z<SetMembershipChecker._check_in_comparison.<locals>.<genexpr>/   s.      IIz$,,IIIIIIr   r   )r   )r&   r   BaseContainerSetalleltsadd_message)r   r    s     r   r   z)SetMembershipChecker._check_in_comparison'   s    *e&9:: 	j	?
 ?
 	 F IIIIIII 	H5JGGGGG	H 	Hr   r   r   r   r   )r   r   r   r   )r    r"   r   r   )
__name__
__module____qualname__namemsgsr   r   r!   r   __classcell__)r   s   @r   r
   r
      s        D 
D( ( ( ( ( (   8996 6 6 :96
	H 	H 	H 	H 	H 	H 	H 	Hr   r
   r   r   r   r   c                J    |                      t          |                      d S r%   )register_checkerr
   r   s    r   registerr9   3   s%    
08899999r   Nr0   )
__future__r   typingr   astroidr   pylint.checkersr   pylint.checkers.utilsr   pylint.lintr   r
   r9    r   r   <module>rA      s   
 # " " " " "                   ' ' ' ' ' ' < < < < < < %$$$$$$H H H H H; H H HB: : : : : :r   