
    
`ia               	           d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ dej        e         dedefdZd	edefd
Zej        dfdedededefdZdS )zReST-style docstring parsing.    N   )DEPRECATION_KEYWORDSPARAM_KEYWORDSRAISES_KEYWORDSRETURNS_KEYWORDSYIELDS_KEYWORDS	DocstringDocstringDeprecatedDocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle
ParseErrorRenderingStyleargsdescreturnc                 Z   | d         }|t           v rt          |           dk    r+| \  }}}|                    d          rd}|d d         }n3d}n0t          |           dk    r
| \  }}d }d }nt          d| d	          t	          j        d
|t          j                  }|r(|                    d                              d          nd }t          | |||||          S |t          t          z  v r_t          |           dk    r	| d         }n)t          |           dk    rd }nt          d| d	          t          | |||t          v           S |t          v rat	          j        d|t          j                  }t!          | |r|                    d          nd |r|                    d          n|          S |t"          v rWt          |           dk    r	| d         }n)t          |           dk    rd }nt          d| d	          t%          | ||          S t'          | |          S )Nr      ?TF   z$Expected one or two arguments for a z	 keyword.z.*defaults to (.+)flagsr   .)r   descriptionarg_name	type_nameis_optionaldefaultz#Expected one or no arguments for a )r   r   r   is_generatorz7^(?P<version>v?((?:\d+)(?:\.[0-9a-z\.]+))) (?P<desc>.+)versionr   )r   r#   r   )r   r   r   )r   r   )r   lenendswithr   rematchDOTALLgrouprstripr   r   r   r   r   searchIr
   r   r   r   )r   r   keyr   r   r    r'   r!   s           i/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/docstring_parser/rest.py_build_metar/      s   
q'C
nt99>>'+$CH!!#&& $"%crcN		#YY!^^ MCIKKEsEEE   .BIFFF05?%++a..'',,,4#
 
 
 	
 000t99>>QIIYY!^^IIDcDDD    /	
 
 
 	
 """	F$
 
 

 #.3=EKK	***/4>F+++$
 
 
 	
 ot99>>QIIYY!^^IIDcDDD   49
 
 
 	
 d5555    textc           
      B   t          t          j                  }| s|S t          j        |           } t          j        d| t
          j                  }|r9| d|                                         }| |                                d         }n| }d}|	                    dd          }|d         pd|_
        t          |          dk    rY|d         pd}|                    d          |_        |                    d	          |_        |                                pd|_        i }i }t          j        d
|t
          j        t
          j        z            D ]`}|                    d          }	|	s	 |	                    d          	                    dd          \  }
}n&# t,          $ r}t/          d|	 d          |d}~ww xY w|
	                                }|                                }d|v r3|	                    dd          \  }}|dz   t          j        |          z   }t          |          dk    r|d         dk    r|||d         <   t          |          dv r.|d         dk    r"||t          |          dk    rdn|d         <   8|j                            t5          ||                     b|j        D ]y}t7          |t8                    r'|j        p|                    |j                  |_        >t7          |t@                    r&|j        p|                    |j!                  |_        ztE          d |j        D                       sH|rF|#                                D ]1\  }}|j                            tA          g |dd|                     2|S )zXParse the ReST-style docstring into its components.

    :returns: parsed docstring
    )stylez^:r   N 
r   r   z

z(^:.*?)(?=^:|\Z):z%Error parsing meta information near "z".r   type)r   r   rtypec              3   @   K   | ]}t          |t                    V  d S )N)
isinstancer   ).0ms     r.   	<genexpr>zparse.<locals>.<genexpr>   s-      AA1z!-..AAAAAAr0   F)r   r   r   r"   return_name)$r	   r   RESTinspectcleandocr&   r+   Mstartsplitshort_descriptionr$   
startswithblank_after_short_descriptionr%   blank_after_long_descriptionstriplong_descriptionfinditerSr)   lstrip
ValueErrorr   metaappendr/   r:   r   r   getr   r   r>   anyitems)r1   retr'   
desc_chunk
meta_chunkpartslong_desc_chunktypesrtypeschunk
args_chunkexr   r   
first_linerestrO   r>   r   s                      r.   parser`   f   s   
 .-
.
.
.C 
D!!DIdD---E /EKKMM/*
%++--//*



T1%%E!!H,C
5zzA~~(.b,;,F,Ft,L,L)+:+C+CF+K+K(.4466>$EFZrtbd{   5 5 A 		%*\\#%6%6%<%<S!%D%D"J

 	 	 	AAAA 	 !!!!4<<#zz$22J$w'7'='==D t99>>d1g//!E$q'NNYY&  T!W%7%7:>F3t99>>44tAw77HOOKd334444 L LdN++ 	L!^Guyy/G/GDNN.// 	L!^Kvzz$:J/K/KDNAAAAAAA 
f 
&,llnn 		 		"KHOO ' $!& +      Js   2,F
G)F==Gz    	docstringrendering_styleindentc           	         dt           j        t                   dt          ffd}g }| j        r|                    | j                   | j        r|                    d           | j        r|                    | j                   | j        r|                    d           | j        D ]L}t          |t                    r|j        r|j        rd|j         dn
d|j         d}nd}t          j        k    rfd|j         d}| ||j                  z  }|                    |           |d	d
         r(|                    d|j         d|d	d
                     d| |j         d}| ||j                  z  }|                    |           t          |t"                    r|j        r
d|j         nd}|j        rdnd}t          j        k    rQ|j        r.d| d}| ||j                  z  }|                    |           |r|                    d|            d| | d}| ||j                  z  }|                    |           t          |t&                    rB|j        rd|j         dnd}d| d ||j                  z   }|                    |           dd                    |j                   d ||j                  z   }|                    |           Nd                    |          S )a  Render a parsed docstring into docstring text.

    :param docstring: parsed docstring representation
    :param rendering_style: the style to render docstrings
    :param indent: the characters used as indentation in the docstring string
    :returns: docstring text
    r   r   c                 T   | sdS t           j        k    r>|                                 ^}}d                    d|z   gfd|D             z             S t           j        k    rA|                                 ^}}d                    dz   |z   gfd|D             z             S d| z   S )Nr4   r5    c                     g | ]}|z   S  rh   r;   linerc   s     r.   
<listcomp>z1compose.<locals>.process_desc.<locals>.<listcomp>   s    -M-M-Mftm-M-M-Mr0   c                     g | ]}|z   S rh   rh   ri   s     r.   rk   z1compose.<locals>.process_desc.<locals>.<listcomp>   s    *J*J*JT6D=*J*J*Jr0   )r   CLEAN
splitlinesjoinEXPANDED)r   firstr_   rc   rb   s      r.   process_desczcompose.<locals>.process_desc   s     	2n222!__..NUT99cEk]-M-M-M-M-M-M-MMNNNn555!__..NUT99&'*J*J*J*JT*J*J*JJ   Tzr0   r4   rf   z? z:param r6   Nr   z:type z:paramyieldsreturnsz:rtype:z:raisesr5   )TOptionalstrrE   rP   rG   rJ   rH   rO   r:   r   r   r    r   rp   r   r   r   r"   r   ro   r   )	ra   rb   rc   rr   rW   rO   	type_textr1   r-   s	    ``      r.   composery      s   1:c? s         E" 2Y0111. R! 1Y/000- R ) )dN++ (	~   '/*****.T^... 	  	."9991111T%5666T"""SbS> LLL!J$-!J!J)CRC.!J!JKKK;	;4=;;;T%5666T"""".// 	04F,DN,,,BI"/>((YC."999# '%s:::DLL)9:::DLL&&& 8LL!69!6!6777,3,	,,,T%5666T""""o.. 	15G-DN----RI)Y)))LL9I,J,JJDLL-sxx	**---T=M0N0NNDLL99Ur0   )__doc__r@   r&   typingru   commonr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Listrw   r/   r`   COMPACTry   rh   r0   r.   <module>r      s   # #  				                                   $J6afSk J6 J6 J6 J6 J6 J6ZI I	 I I I I\ '5&<Q QQ#Q Q 		Q Q Q Q Q Qr0   