
    e                    r    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y)    )annotations)TYPE_CHECKING)nodes)BaseRawFileChecker)PyLinterc                x    | j                  d      }|dk(  ryt        | |      rt        | d| | |dz   d z         S y)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linecomment_idxs     A/usr/lib/python3/dist-packages/pylint/extensions/empty_comment.pyr   r      sL     ))D/KbdK0 l{!3d;?;L6M!MNN    c                    | d| j                  d      dz  dk(  r| |d j                  d      dz  dk(  s4| d| j                  d      dz  dk(  r| |d j                  d      dz  dk(  ryy)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r   c                  $    e Zd ZdZddiZdZddZy)CommentCheckerempty-commentR2044)zLine with empty commentr   zHUsed when a # symbol appears on a line not followed by an actual comment c                   |j                         5 }t        |      D ]L  \  }}|j                         }|j                  d      s(t	        |d d       r7| j                  d|dz          N 	 d d d        y # 1 sw Y   y xY w)Nr	   r
   r   r   )r   )stream	enumeraterstripendswithr   add_message)selfnoder   line_numr   s        r   process_modulezCommentChecker.process_module7   s|    [[] 	Mf"+F"3 M${{}==&,T#2Y7((x!|(L	M	M 	M 	Ms   3A6A6A66A?N)r%   znodes.ModulereturnNone)__name__
__module____qualname__namemsgsoptionsr'   r   r   r   r   r   *   s#    D 
D GMr   r   c                8    | j                  t        |              y )N)register_checkerr   )linters    r   registerr3   @   s    
N623r   N)r   bytesr(   bool)r   r4   r   intr(   r5   )r2   r   r(   r)   )
__future__r   typingr   astroidr   pylint.checkersr   pylint.lintr   r   r   r   r3   r   r   r   <module>r<      s7   
 #    .$M' M,4r   