o
    g
                     @   sZ   d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 G dd dej
Zdd	 ZdS )
    N)nodes)checkers)check_messages)HIGHIAstroidCheckerc                   @   st   e Zd ZdZeZdZdddZeddde	j
d	d
fddZde	jd	d
fddZde	jd	d
f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returnNc                 C      |  d| d S )Nmodule_check_docstringselfr    r   X/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pylint/extensions/docstyle.pyvisit_module)   s   z"DocStringStyleChecker.visit_modulec                 C   r   )Nclassr   r   r   r   r   visit_classdef-   s   z$DocStringStyleChecker.visit_classdefc                 C   s    |  rdnd}| || d S )Nmethodfunction)	is_methodr   )r   r   ftyper   r   r   visit_functiondef0   s   z'DocStringStyleChecker.visit_functiondefc                 C   s   |j }|r|d dkr| jd||ftd |rb|jd }t| j| }|r2|	ddkr2d S |r;d|v r;d}n|rF|d dkrFd}n|rQ|d d	krQd	}nd
}|rd| jd|||ftd d S d S d S )Nr   
r
   )r   args
confidence   z"""z'''"'Fr	   )
docadd_messager   
fromlineno	linecachegetlinerootfilelstripfind)r   	node_typer   	docstringlinenolinequotesr   r   r   r   6   s:   


z&DocStringStyleChecker._check_docstring)__name__
__module____qualname____doc__r   __implements__namemsgsr   r   Moduler   ClassDefr   FunctionDefr   visit_asyncfunctiondefr   r   r   r   r   r      s    r   c                 C   s   |  t|  dS )zRequired method to auto register this checker.

    :param linter: Main interface object for Pylint plugins
    :type linter: Pylint object
    N)register_checkerr   )linterr   r   r   registerY   s   r@   )r(   astroidr   pylintr   pylint.checkers.utilsr   pylint.interfacesr   r   BaseCheckerr   r@   r   r   r   r   <module>   s   C