o
    g                     @   sb   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	 G dd deZ
de	d	d
fddZd
S )    )nodes)BaseChecker)check_messages)IAstroidChecker)PyLinterc                       sl   e Zd ZefZdZdZddiZdeddf fdd	Z	e
d
dejddfddZdejddfddZ  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``.linterreturnNc                    s   t  j|d dS )zInitialize checker instance.r   N)super__init__)selfr   	__class__ ^/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pylint/extensions/set_membership.pyr      s   zSetMembershipChecker.__init__r   nodec                 C   s&   |j D ]\}}|dkr| | qd S )Nin)ops_check_in_comparison)r   r   op
comparatorr   r   r   visit_compare   s
   
z"SetMembershipChecker.visit_comparer   c                 C   sF   t |tjrt |tjrdS tdd |jD r!| jd|d dS dS )zBChecks for membership comparisons with in-place container objects.Nc                 s   s    | ]	}t |tjV  qd S N)
isinstancer   Const).0itemr   r   r   	<genexpr>*   s    z<SetMembershipChecker._check_in_comparison.<locals>.<genexpr>r   )r   )r   r   BaseContainerSetalleltsadd_message)r   r   r   r   r   r   "   s   z)SetMembershipChecker._check_in_comparison)__name__
__module____qualname__r   __implements__nameprioritymsgsr   r   r   r   Comparer   NodeNGr   __classcell__r   r   r   r   r   	   s    	r   r   r   Nc                 C   s   |  t|  d S r   )register_checkerr   r   r   r   r   register.   s   r3   )astroidr   pylint.checkersr   pylint.checkers.utilsr   pylint.interfacesr   pylint.lintr   r   r3   r   r   r   r   <module>   s    %