
    Y	g                     H   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e
      Z G d dej                        Z G d dej                        Z G d d      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d       Zy)!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                       e Zd ZdZy)
ParseErrorz*Base class for all parsing related errors.N)__name__
__module____qualname____doc__     X/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/docstring_parser/common.pyr   r      s    4r   r   c                   $    e Zd ZdZdZdZdZdZdZy)DocstringStylezDocstring style.               N)	r   r   r   r   RESTGOOGLENUMPYDOCEPYDOCAUTOr   r   r   r    r       s    DFHFDr   r    c                       e Zd ZdZdZdZdZy)RenderingStylez1Rendering style when unparsing parsed docstrings.r!   r"   r#   N)r   r   r   r   COMPACTCLEANEXPANDEDr   r   r   r,   r,   #   s    ;GEHr   r,   c                   X    e Zd ZdZdej
                  e   dej                  e   ddfdZy)DocstringMetazDocstring meta information.

    Symbolizes lines in form of

        :param arg: description
        :raises ValueError: if something happens
    argsdescriptionr   Nc                      || _         || _        y)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)r2   r3   )selfr2   r3   s      r   __init__zDocstringMeta.__init__4   s     	&r   )	r   r   r   r   TListstrOptionalr6   r   r   r   r1   r1   +   s4    'FF3K'./jjo'	'r   r1   c                        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
Z	 xZ
S )DocstringParamz*DocstringMeta symbolizing :param metadata.r2   r3   arg_name	type_nameis_optionaldefaultr   Nc                 ^    t         |   ||       || _        || _        || _        || _        yInitialize self.N)superr6   r=   r>   r?   r@   )r5   r2   r3   r=   r>   r?   r@   	__class__s          r   r6   zDocstringParam.__init__E   s1     	{+ "&r   r   r   r   r   r7   r8   r9   r:   boolr6   __classcell__rE   s   @r   r<   r<   B   s}    4ffSk ZZ_ 	
 ::c? ZZ% C 
 r   r<   c                        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	Z	 xZ
S )DocstringReturnsz7DocstringMeta symbolizing :returns or :yields metadata.Nr2   r3   r>   is_generatorreturn_namer   c                 P    t         |   ||       || _        || _        || _        yrB   )rD   r6   r>   rL   rM   )r5   r2   r3   r>   rL   rM   rE   s         r   r6   zDocstringReturns.__init__Y   s+     	{+"(&r   NrF   rI   s   @r   rK   rK   V   so    A (,'ffSk' ZZ_' ::c?	'
 ' ZZ_' 
' 'r   rK   c                        e Zd ZdZdej
                  e   dej                  e   dej                  e   ddf fdZ xZ	S )DocstringRaisesz+DocstringMeta symbolizing :raises metadata.r2   r3   r>   r   Nc                 B    t         |   ||       || _        || _        yrB   )rD   r6   r>   r3   )r5   r2   r3   r>   rE   s       r   r6   zDocstringRaises.__init__k   s#     	{+"&r   
r   r   r   r   r7   r8   r9   r:   r6   rH   rI   s   @r   rQ   rQ   h   sN    5	'ffSk	' ZZ_	' ::c?		'
 
	' 	'r   rQ   c                        e Zd ZdZdej
                  e   dej                  e   dej                  e   ddf fdZ xZ	S )DocstringDeprecatedz/DocstringMeta symbolizing deprecation metadata.r2   r3   versionr   Nc                 B    t         |   ||       || _        || _        yrB   )rD   r6   rV   r3   )r5   r2   r3   rV   rE   s       r   r6   zDocstringDeprecated.__init__z   #     	{+&r   rS   rI   s   @r   rU   rU   w   sN    9	'ffSk	' ZZ_	' C		'
 
	' 	'r   rU   c                        e Zd ZdZdej
                  e   dej                  e   dej                  e   ddf fdZ xZ	S )DocstringExamplez+DocstringMeta symbolizing example metadata.r2   snippetr3   r   Nc                 B    t         |   ||       || _        || _        yrB   )rD   r6   r[   r3   )r5   r2   r[   r3   rE   s       r   r6   zDocstringExample.__init__   rX   r   rS   rI   s   @r   rZ   rZ      sN    5	'ffSk	' C	' ZZ_		'
 
	' 	'r   rZ   c                   n   e Zd ZdZ	 d	 ddZedej                  e   fd       Z	edej                  e   fd       Zedej                  e   fd       Zedej                  e   fd       Zedej                  e   fd	       Zedej                  e   fd
       Zedej                  e   fd       Zy)	Docstringz Docstring object representation.Nr   c                 X    d| _         d| _        d| _        d| _        g | _        || _        y)rC   NF)short_descriptionlong_descriptionblank_after_short_descriptionblank_after_long_descriptionmetastyle)r5   re   s     r   r6   zDocstring.__init__   s2    
 "& $-2*,1)	
r   c                    g }| j                   r8|j                  | j                          | j                  r|j                  d       | j                  r|j                  | j                         |sydj	                  |      S )z{Return the full description of the function

        Returns None if the docstring did not include any description
         N
)r`   appendrb   ra   join)r5   rets     r   r3   zDocstring.description   sg     !!JJt--.11

2  JJt,,-yy~r   c                 b    | j                   D cg c]  }t        |t              s| c}S c c}w )z0Return a list of information on function params.)rd   
isinstancer<   r5   items     r   paramszDocstring.params   s%     "&Oj~.NOOO   ,,c                 b    | j                   D cg c]  }t        |t              s| c}S c c}w )z\Return a list of information on the exceptions that the function
        may raise.
        )rd   rm   rQ   rn   s     r   r   zDocstring.raises   s.     "YY
*T?*KD
 	
 
rq   c                 N    | j                   D ]  }t        |t              s|c S  y)zeReturn a single information on function return.

        Takes the first return information.
        Nrd   rm   rK   rn   s     r   r   zDocstring.returns   s,     II 	D$ 01	 r   c                 b    | j                   D cg c]  }t        |t              s| c}S c c}w )z0Return a list of information on function return.rt   rn   s     r   many_returnszDocstring.many_returns   /     "YY
*T;K*LD
 	
 
rq   c                 N    | j                   D ]  }t        |t              s|c S  y)z:Return a single information on function deprecation notes.N)rd   rm   rU   rn   s     r   r   zDocstring.deprecation   s,     II 	D$ 34	 r   c                 b    | j                   D cg c]  }t        |t              s| c}S c c}w )z2Return a list of information on function examples.)rd   rm   rZ   rn   s     r   r   zDocstring.examples   rw   rq   rO   )r   N)r   r   r   r   r6   propertyr7   r:   r9   r3   r8   r<   rp   rQ   r   rK   r   rv   rU   r   rZ   r   r   r   r   r^   r^      s   * 
 

 QZZ_  $ P~. P P 
/ 
 
 $45   
aff%56 
 
 QZZ(;<   
!&&!12 
 
r   r^   )r   enumtypingr7   PARAM_KEYWORDSRAISES_KEYWORDSDEPRECATION_KEYWORDSRETURNS_KEYWORDSYIELDS_KEYWORDSEXAMPLES_KEYWORDSRuntimeErrorr   Enumr    r,   r1   r<   rK   rQ   rU   rZ   r^   r   r   r   <module>r      s    !   =%|4 i( H%
+ 5 5TYY TYY ' '.] ('} '$'m ''- ''} 'O
 O
r   