
    h                     H   S r SSKrSSKr1 Skr1 SkrSS1rSS1rS	S
1rSS1r	 " S S\
5      r " S S\R                  5      r " S S\R                  5      r " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S 5      rg)!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                       \ rS rSrSrSrg)
ParseError   z*Base class for all parsing related errors. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       Q/home/james-whalen/.local/lib/python3.13/site-packages/docstring_parser/common.pyr   r      s    4r    r   c                   ,    \ rS rSrSrSrSrSrSrSr	Sr
g	)
DocstringStyle   zDocstring style.               r   N)r   r   r   r   r   RESTGOOGLENUMPYDOCEPYDOCAUTOr   r   r    r!   r#   r#      s    DFHFDr    r#   c                   $    \ rS rSrSrSrSrSrSrg)RenderingStyle$   z1Rendering style when unparsing parsed docstrings.r%   r&   r'   r   N)	r   r   r   r   r   COMPACTCLEANEXPANDEDr   r   r    r!   r0   r0   $   s    ;GEHr    r0   c                   b    \ rS rSrSrS\R                  \   S\R                  \   SS4S jr	Sr
g)	DocstringMeta,   zDocstring meta information.

Symbolizes lines in form of

    :param arg: description
    :raises ValueError: if something happens
argsdescriptionr   Nc                     Xl         X l        g)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r8   r9   )selfr8   r9   s      r!   __init__DocstringMeta.__init__5   s     	&r    r;   )r   r   r   r   r   TListstrOptionalr=   r   r   r    r!   r6   r6   ,   s4    'FF3K'./jjo'	'r    r6   c                      ^  \ rS rSrSrS\R                  \   S\R                  \   S\S\R                  \   S\R                  \	   S\R                  \   S	S
4U 4S jjr
SrU =r$ )DocstringParamC   z*DocstringMeta symbolizing :param metadata.r8   r9   arg_name	type_nameis_optionaldefaultr   Nc                 T   > [         TU ]  X5        X0l        X@l        XPl        X`l        gInitialize self.N)superr=   rF   rG   rH   rI   )r<   r8   r9   rF   rG   rH   rI   	__class__s          r!   r=   DocstringParam.__init__F   s'     	+ "&r    )rF   rI   rH   rG   r   r   r   r   r   r?   r@   rA   rB   boolr=   r   __classcell__rN   s   @r!   rD   rD   C   s}    4ffSk ZZ_ 	
 ::c? ZZ% C 
 r    rD   c                      ^  \ rS rSrSr SS\R                  \   S\R                  \   S\R                  \   S\	S\R                  \   S	S4U 4S
 jjjr
SrU =r$ )DocstringReturnsW   z7DocstringMeta symbolizing :returns or :yields metadata.Nr8   r9   rG   is_generatorreturn_namer   c                 H   > [         TU ]  X5        X0l        X@l        XPl        grK   )rM   r=   rG   rW   rX   )r<   r8   r9   rG   rW   rX   rN   s         r!   r=   DocstringReturns.__init__Z   s#     	+"(&r    )rW   rX   rG   NrP   rS   s   @r!   rU   rU   W   so    A (,'ffSk' ZZ_' ::c?	'
 ' ZZ_' 
' 'r    rU   c                      ^  \ rS rSrSrS\R                  \   S\R                  \   S\R                  \   SS4U 4S jjr	S	r
U =r$ )
DocstringRaisesi   z+DocstringMeta symbolizing :raises metadata.r8   r9   rG   r   Nc                 <   > [         TU ]  X5        X0l        X l        grK   )rM   r=   rG   r9   )r<   r8   r9   rG   rN   s       r!   r=   DocstringRaises.__init__l   s     	+"&r    )r9   rG   r   r   r   r   r   r?   r@   rA   rB   r=   r   rR   rS   s   @r!   r]   r]   i   sN    5	'ffSk	' ZZ_	' ::c?		'
 
	' 	'r    r]   c                      ^  \ rS rSrSrS\R                  \   S\R                  \   S\R                  \   SS4U 4S jjr	S	r
U =r$ )
DocstringDeprecatedx   z/DocstringMeta symbolizing deprecation metadata.r8   r9   versionr   Nc                 <   > [         TU ]  X5        X0l        X l        grK   )rM   r=   re   r9   )r<   r8   r9   re   rN   s       r!   r=   DocstringDeprecated.__init__{        	+&r    )r9   re   ra   rS   s   @r!   rc   rc   x   sN    9	'ffSk	' ZZ_	' C		'
 
	' 	'r    rc   c                      ^  \ rS rSrSrS\R                  \   S\R                  \   S\R                  \   SS4U 4S jjr	S	r
U =r$ )
DocstringExample   z+DocstringMeta symbolizing example metadata.r8   snippetr9   r   Nc                 <   > [         TU ]  X5        X l        X0l        grK   )rM   r=   rl   r9   )r<   r8   rl   r9   rN   s       r!   r=   DocstringExample.__init__   rh   r    )r9   rl   ra   rS   s   @r!   rj   rj      sN    5	'ffSk	' C	' ZZ_		'
 
	' 	'r    rj   c                      \ rS rSrSr S SS jjr\S\R                  \	   4S j5       r
\S\R                  \   4S j5       r\S\R                  \   4S j5       r\S\R                  \   4S	 j5       r\S\R                  \   4S
 j5       r\S\R                  \   4S j5       r\S\R                  \   4S j5       rSrg)	Docstring   z Docstring object representation.Nr   c                 V    SU l         SU l        SU l        SU l        / U l        Xl        g)rL   NF)short_descriptionlong_descriptionblank_after_short_descriptionblank_after_long_descriptionmetastyle)r<   rx   s     r!   r=   Docstring.__init__   s0    
 "& $-2*,1)	
r    c                 ,   / nU R                   (       a=  UR                  U R                   5        U R                  (       a  UR                  S5        U R                  (       a  UR                  U R                  5        U(       d  gSR	                  U5      $ )zkReturn the full description of the function

Returns None if the docstring did not include any description
 N
)rs   appendru   rt   join)r<   rets     r!   r9   Docstring.description   sg     !!JJt--.11

2  JJt,,-yy~r    c                 t    U R                    Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf )z0Return a list of information on function params.)rw   
isinstancerD   r<   items     r!   paramsDocstring.params   s)     "&Oj~.NOOO   55c                 t    U R                    Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf )zLReturn a list of information on the exceptions that the function
may raise.
)rw   r   r]   r   s     r!   r   Docstring.raises   s2     "YY
&T*T?*KDY
 	
 
r   c                 \    U R                    H  n[        U[        5      (       d  M  Us  $    g)zUReturn a single information on function return.

Takes the first return information.
Nrw   r   rU   r   s     r!   r   Docstring.returns   s*     IID$ 011  r    c                 t    U R                    Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf )z0Return a list of information on function return.r   r   s     r!   many_returnsDocstring.many_returns   3     "YY
&T*T;K*LDY
 	
 
r   c                 \    U R                    H  n[        U[        5      (       d  M  Us  $    g)z:Return a single information on function deprecation notes.N)rw   r   rc   r   s     r!   r   Docstring.deprecation   s*     IID$ 344  r    c                 t    U R                    Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf )z2Return a list of information on function examples.)rw   r   rj   r   s     r!   r   Docstring.examples   r   r   )rv   ru   rt   rw   rs   rx   r[   )r   N)r   r   r   r   r   r=   propertyr?   rB   rA   r9   r@   rD   r   r]   r   rU   r   r   rc   r   rj   r   r   r   r    r!   rp   rp      s   * 
 

 QZZ_  $ P~. P P 
/ 
 
 $45   
aff%56 
 
 QZZ(;<   
!&&!12 
 
r    rp   )r   enumtypingr?   PARAM_KEYWORDSRAISES_KEYWORDSDEPRECATION_KEYWORDSRETURNS_KEYWORDSYIELDS_KEYWORDSEXAMPLES_KEYWORDSRuntimeErrorr   Enumr#   r0   r6   rD   rU   r]   rc   rj   rp   r   r    r!   <module>r      s    !   =%|4 i( H%
+ 5 5TYY TYY ' '.] ('} '$'m ''- ''} 'O
 O
r    