a
    =a?                     @   sD   d dl mZ d dlmZ dd Zdd ZG dd deZd	d
 ZdS )    )BaseChecker)IRawCheckerc                 C   sD   |  d}|dkrdS t| |r@t| d| | |d d  S dS )zDChecks if a `# symbol that is not part of a string was found in line   #FN   T)findcomment_part_of_stringis_line_commentedlineZcomment_idx r   >lib/python3.9/site-packages/pylint/extensions/empty_comment.pyr	      s    

 r	   c                 C   sp   | d|  dd dkr4| |d  dd dksh| d|  dd dkrl| |d  dd dkrldS dS )z7checks if the symbol at comment_idx is part of a stringN   '   r      "TF)countr
   r   r   r   r      s    r   c                   @   s,   e Zd ZeZdZddiZdZdZdd Z	dS )	CommentCheckerZrefactoringZR2044)zLine with empty commentempty-commentzHUsed when a # symbol appears on a line not followed by an actual commentr   r   c                 C   sr   |  V}t|D ]<\}}| }|drt|d d s| jd|d d qW d    n1 sd0    Y  d S )Nr   r   r   r   )r   )stream	enumeraterstripendswithr	   Zadd_message)selfZnoder   Zline_numr   r   r   r   process_module.   s    

zCommentChecker.process_moduleN)
__name__
__module____qualname__r   Z__implements__nameZmsgsZoptionsZpriorityr   r   r   r   r   r      s   	r   c                 C   s   |  t|  d S )N)Zregister_checkerr   )Zlinterr   r   r   register7   s    r   N)Zpylint.checkersr   Zpylint.interfacesr   r	   r   r   r   r   r   r   r   <module>   s
   