
    c                        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 )    )annotationsN)TYPE_CHECKING)nodes)checkers)only_required_for_messages)HIGH)PyLinterc                  h    e Zd ZdZdZdddZ edd          dd            ZddZddZ	e	Z
ddZdS )DocStringStyleCheckerz.Checks format of docstrings based on PEP 0257.docstyle)z2Bad docstring quotes in %s, expected """, given %sbad-docstring-quotesz9Used when a docstring does not have triple double quotes.)z First line empty in %s docstringdocstring-first-line-emptyz@Used when a blank line is found at the beginning of a docstring.)C0198C0199r   r   nodenodes.ModulereturnNonec                2    |                      d|           d S )Nmodule_check_docstringselfr   s     :lib/python3.11/site-packages/pylint/extensions/docstyle.pyvisit_modulez"DocStringStyleChecker.visit_module&   s    h-----    nodes.ClassDefc                2    |                      d|           d S )Nclassr   r   s     r   visit_classdefz$DocStringStyleChecker.visit_classdef*   s    gt,,,,,r   nodes.FunctionDefc                b    |                                 rdnd}|                     ||           d S )Nmethodfunction)	is_methodr   )r   r   ftypes      r   visit_functiondefz'DocStringStyleChecker.visit_functiondef-   s6     NN,,<*eT*****r   	node_typestr1nodes.Module | nodes.ClassDef | nodes.FunctionDefc                   |j         r|j         j        nd }|r+|d         dk    r|                     d||ft                     |r|j        dz   }t          j        |                                j        |          	                                }|r|
                    d          dk    rd S |rd|v rd}n$|r|d         dk    rd}n|r|d         d	k    rd	}nd
}|r$|                     d|||ft                     d S d S d S )Nr   
r   )r   args
confidence   z"""z'''"' r   )doc_nodevalueadd_messager   
fromlineno	linecachegetlinerootfilelstripfind)r   r)   r   	docstringlinenolinequotess          r   r   z&DocStringStyleChecker._check_docstring3   sp    ,0=BDM''d	 	1- 	,\	      	_q(F$TYY[[%5v>>EEGGD 		%((A-    $q'S.  $q'S.    *#V,#	 !     	 	 r   N)r   r   r   r   )r   r   r   r   )r   r"   r   r   )r)   r*   r   r+   r   r   )__name__
__module____qualname____doc__namemsgsr   r   r!   r(   visit_asyncfunctiondefr    r   r   r   r      s        88D


 D   <>TUU. . . VU.- - - -+ + + + /" " " " " "r   r   linterr	   r   r   c                J    |                      t          |                      d S )N)register_checkerr   )rJ   s    r   registerrM   X   s%    
1&99:::::r   )rJ   r	   r   r   )
__future__r   r8   typingr   astroidr   pylintr   pylint.checkers.utilsr   pylint.interfacesr   pylint.lintr	   BaseCheckerr   rM   rI   r   r   <module>rV      s   
 # " " " " "                             < < < < < < " " " " " " %$$$$$$A A A A AH0 A A AH; ; ; ; ; ;r   