
    c                        d Z ddl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 erdd	lmZ  G d
 de	j                  ZddZdS )z'Looks for  comparisons to empty string.    )annotationsN)TYPE_CHECKING)nodes)checkers)utils)HIGH)PyLinterc                  R    e Zd ZdZddiZdZ ej        d          dd	            Zd
S )CompareToEmptyStringCheckercompare-to-empty-stringC1901)z;"%s" can be simplified to "%s" as an empty string is falseyr   z@Used when Pylint detects comparison to an empty string constant. nodenodes.ComparereturnNonec                l   h d}d|j         fg}|                    |j                   t          |          }t	          t          j        |           }t          t          |          dz
            D ]}||         }||dz            }||dz            }d}	||||vr+d}
t          j
        |          rd}	|                                }
n*t          j
        |          rd}	|                                }
|	r=|dv rd	|
 n|
}|                     d
|                                |f|t                     dS )a	  Checks for comparisons to empty string.

        Most of the time you should use the fact that empty strings are false.
        An exception to this rule is when an empty string value is allowed in the program
        and has a different meaning than None!
        >   !=is notis==       FNT>   r   r   znot r   )argsr   
confidence)leftextendopsiterlist	itertoolschainrangelenr   is_empty_str_literal	as_stringadd_messager   )selfr   
_operatorsr   iter_opsops_idxop_1op_2op_3error_detected	node_name
suggestions               =lib/python3.11/site-packages/pylint/extensions/emptystring.pyvisit_comparez)CompareToEmptyStringChecker.visit_compare"   sx    211

 8:49o5F

48999?H-..SXX\** 	 	G(+GDGaK(D(+GaK(8D"N t t:/E I)$// -!% NN,,		+D11 -!% NN,,	 37<3GV/I///Y
  -..**J7#	 !   %	 	    N)r   r   r   r   )	__name__
__module____qualname__namemsgsoptionsr   only_required_for_messagesr4   r   r5   r3   r   r      s]        $D 
D G%U%&?@@' ' ' A@' ' 'r5   r   linterr	   r   r   c                J    |                      t          |                      d S )N)register_checkerr   )r=   s    r3   registerr@   M   s%    
7??@@@@@r5   )r=   r	   r   r   )__doc__
__future__r   r"   typingr   astroidr   pylintr   pylint.checkersr   pylint.interfacesr   pylint.lintr	   BaseCheckerr   r@   r   r5   r3   <module>rJ      s   
 . - " " " " " "                             ! ! ! ! ! ! " " " " " " %$$$$$$4 4 4 4 4("6 4 4 4nA A A A A Ar5   