o
    ]’i°  ã                   @   sè   d Z ddlZddlZh d£Zh d£ZddhZddhZd	d
hZddhZ	G dd„ de
ƒZG dd„ dejƒZG dd„ dejƒZG dd„ dƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d ƒZdS )!zCommon methods for parsing.é    N>   ÚargÚkeyÚparamÚkeywordÚargumentÚ	attributeÚ	parameter>   ÚraiseÚexceptÚraisesÚ	exceptionÚdeprecationÚ
deprecatedÚreturnÚreturnsÚyieldÚyieldsÚexampleÚexamplesc                   @   s   e Zd ZdZdS )Ú
ParseErrorz*Base class for all parsing related errors.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   ú\/var/www/html/stock_analysis/be/venv/lib/python3.10/site-packages/docstring_parser/common.pyr      s    r   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )ÚDocstringStylezDocstring style.é   é   é   é   éÿ   N)	r   r   r   r   ÚRESTÚGOOGLEÚNUMPYDOCÚEPYDOCÚAUTOr   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZdZdZdS )ÚRenderingStylez1Rendering style when unparsing parsed docstrings.r   r   r   N)r   r   r   r   ÚCOMPACTÚCLEANÚEXPANDEDr   r   r   r   r'   $   s
    r'   c                   @   s2   e Zd ZdZdeje deje ddfdd„ZdS )ÚDocstringMetaz“Docstring meta information.

    Symbolizes lines in form of

        :param arg: description
        :raises ValueError: if something happens
    ÚargsÚdescriptionr   Nc                 C   s   || _ || _dS )a,  Initialize self.

        :param args: list of arguments. The exact content of this variable is
            dependent on the kind of docstring; it's used to distinguish
            between custom docstring meta information items.
        :param description: associated docstring description.
        N)r,   r-   )Úselfr,   r-   r   r   r   Ú__init__5   s   

zDocstringMeta.__init__)	r   r   r   r   ÚTÚListÚstrÚOptionalr/   r   r   r   r   r+   ,   s    ÿÿþr+   c                       s\   e Zd ZdZdeje deje dedeje deje deje dd	f‡ fd
d„Z	‡  Z
S )ÚDocstringParamz*DocstringMeta symbolizing :param metadata.r,   r-   Úarg_nameÚ	type_nameÚis_optionalÚdefaultr   Nc                    s*   t ƒ  ||¡ || _|| _|| _|| _dS ©úInitialize self.N)Úsuperr/   r5   r6   r7   r8   )r.   r,   r-   r5   r6   r7   r8   ©Ú	__class__r   r   r/   F   s
   

zDocstringParam.__init__©r   r   r   r   r0   r1   r2   r3   Úboolr/   Ú__classcell__r   r   r<   r   r4   C   s"    þýüûúùør4   c                       sV   e Zd ZdZ	ddeje deje deje dedeje ddf‡ fd	d
„Z	‡  Z
S )ÚDocstringReturnsz7DocstringMeta symbolizing :returns or :yields metadata.Nr,   r-   r6   Úis_generatorÚreturn_namer   c                    s$   t ƒ  ||¡ || _|| _|| _dS r9   )r;   r/   r6   rB   rC   )r.   r,   r-   r6   rB   rC   r<   r   r   r/   Z   s   	
zDocstringReturns.__init__©Nr>   r   r   r<   r   rA   W   s     úþýüûúùrA   c                       óD   e Zd ZdZdeje deje deje ddf‡ fdd„Z‡  Z	S )	ÚDocstringRaisesz+DocstringMeta symbolizing :raises metadata.r,   r-   r6   r   Nc                    ó   t ƒ  ||¡ || _|| _dS r9   )r;   r/   r6   r-   )r.   r,   r-   r6   r<   r   r   r/   l   ó   
zDocstringRaises.__init__©
r   r   r   r   r0   r1   r2   r3   r/   r@   r   r   r<   r   rF   i   ó    þýüûrF   c                       rE   )	ÚDocstringDeprecatedz/DocstringMeta symbolizing deprecation metadata.r,   r-   Úversionr   Nc                    rG   r9   )r;   r/   rL   r-   )r.   r,   r-   rL   r<   r   r   r/   {   rH   zDocstringDeprecated.__init__rI   r   r   r<   r   rK   x   rJ   rK   c                       rE   )	ÚDocstringExamplez+DocstringMeta symbolizing example metadata.r,   Úsnippetr-   r   Nc                    s   t ƒ  ||¡ || _|| _dS r9   )r;   r/   rN   r-   )r.   r,   rN   r-   r<   r   r   r/   Š   rH   zDocstringExample.__init__rI   r   r   r<   r   rM   ‡   rJ   rM   c                   @   sÈ   e Zd ZdZ	d	ddd„Zedeje fdd„ƒZ	edej
e fdd	„ƒZedej
e fd
d„ƒZedeje fdd„ƒZedej
e fdd„ƒZedeje fdd„ƒZedej
e fdd„ƒZdS )Ú	Docstringz Docstring object representation.Nr   c                 C   s(   d| _ d| _d| _d| _g | _|| _dS )r:   NF)Úshort_descriptionÚlong_descriptionÚblank_after_short_descriptionÚblank_after_long_descriptionÚmetaÚstyle)r.   rU   r   r   r   r/   ™   s   
zDocstring.__init__c                 C   sJ   g }| j r| | j ¡ | jr| d¡ | jr| | j¡ |s dS d |¡S )z{Return the full description of the function

        Returns None if the docstring did not include any description
        Ú NÚ
)rP   ÚappendrR   rQ   Újoin)r.   Úretr   r   r   r-   ¥   s   

zDocstring.descriptionc                 C   ó   dd„ | j D ƒS )z0Return a list of information on function params.c                 S   ó   g | ]	}t |tƒr|‘qS r   )Ú
isinstancer4   ©Ú.0Úitemr   r   r   Ú
<listcomp>»   s    z$Docstring.params.<locals>.<listcomp>©rT   ©r.   r   r   r   Úparams¸   s   zDocstring.paramsc                 C   r[   )z\Return a list of information on the exceptions that the function
        may raise.
        c                 S   r\   r   )r]   rF   r^   r   r   r   ra   Â   ó
    
ÿÿz$Docstring.raises.<locals>.<listcomp>rb   rc   r   r   r   r   ½   s   ÿzDocstring.raisesc                 C   ó"   | j D ]}t|tƒr|  S qdS )zeReturn a single information on function return.

        Takes the first return information.
        N)rT   r]   rA   ©r.   r`   r   r   r   r   Æ   s
   

ÿzDocstring.returnsc                 C   r[   )z0Return a list of information on function return.c                 S   r\   r   )r]   rA   r^   r   r   r   ra   Ô   re   z*Docstring.many_returns.<locals>.<listcomp>rb   rc   r   r   r   Úmany_returnsÑ   ó   ÿzDocstring.many_returnsc                 C   rf   )z:Return a single information on function deprecation notes.N)rT   r]   rK   rg   r   r   r   r   Ø   s
   

ÿzDocstring.deprecationc                 C   r[   )z2Return a list of information on function examples.c                 S   r\   r   )r]   rM   r^   r   r   r   ra   ã   re   z&Docstring.examples.<locals>.<listcomp>rb   rc   r   r   r   r   à   ri   zDocstring.examplesrD   )r   N)r   r   r   r   r/   Úpropertyr0   r3   r2   r-   r1   r4   rd   rF   r   rA   r   rh   rK   r   rM   r   r   r   r   r   rO   –   s(    þ
ý
rO   )r   ÚenumÚtypingr0   ÚPARAM_KEYWORDSÚRAISES_KEYWORDSÚDEPRECATION_KEYWORDSÚRETURNS_KEYWORDSÚYIELDS_KEYWORDSÚEXAMPLES_KEYWORDSÚRuntimeErrorr   ÚEnumr   r'   r+   r4   rA   rF   rK   rM   rO   r   r   r   r   Ú<module>   s&    	
