
    c                    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	 dd
Z
ddZ G d de          ZddZdS )    )annotations)TYPE_CHECKING)nodes)BaseRawFileChecker)PyLinterlinebytesreturnboolc                    |                      d          }|dk    rdS t          | |          r%t          | d|         | |dz   d         z             S dS )zEChecks if a `# symbol that is not part of a string was found in line.   #FN   T)findcomment_part_of_stringis_line_commentedr   comment_idxs     ?lib/python3.11/site-packages/pylint/extensions/empty_comment.pyr   r      sh     ))D//Kb udK00 O l{l!3d;?;L;L6M!MNNN4    r   intc                *   | d|                              d          dz  dk    r$| |d                              d          dz  dk    sH| d|                              d          dz  dk    r&| |d                              d          dz  dk    rdS dS )z8Checks if the symbol at comment_idx is part of a string.N   '   r      "TF)countr   s     r   r   r      s     	\k\  &&*a/$$T**Q.!3 	\k\  &&*a/	
 $$T**Q.!3 t5r   c                  &    e Zd ZdZddiZdZdd	Zd
S )CommentCheckerempty-commentR2044)zLine with empty commentr   zHUsed when a # symbol appears on a line not followed by an actual comment nodenodes.Moduler
   Nonec                @   |                                 5 }t          |          D ]_\  }}|                                }|                    d          r1t	          |d d                   s|                     d|dz              `	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   )r   )stream	enumeraterstripendswithr   add_message)selfr"   r&   line_numr   s        r   process_modulezCommentChecker.process_module7   s    [[]] 	Mf"+F"3"3 M M${{}}==&& M,T#2#Y77 M((x!|(LLL	M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms   A0BBBN)r"   r#   r
   r$   )__name__
__module____qualname__namemsgsoptionsr-   r!   r   r   r   r   *   sI        D 
D GM M M M M Mr   r   linterr   r$   c                J    |                      t          |                      d S )N)register_checkerr   )r4   s    r   registerr7   @   s$    
N62233333r   N)r   r	   r
   r   )r   r	   r   r   r
   r   )r4   r   r
   r$   )
__future__r   typingr   astroidr   pylint.checkersr   pylint.lintr   r   r   r   r7   r!   r   r   <module>r=      s   
 # " " " " "                   . . . . . . %$$$$$$      M M M M M' M M M,4 4 4 4 4 4r   