
    ha               	           S r SSKrSSKrSSKrSSKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJr  S\R(                  \   S\S\4S jrS	\S\4S
 jr\R0                  S4S\S\S\S\4S jjrg)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           	         U S   nU[         ;   a  [        U 5      S:X  a&  U u  p#nUR                  S5      (       a  SnUS S nO*SnO'[        U 5      S:X  a	  U u  p$S nS nO[        SU S	35      e[        R
                  " S
U[        R                  S9nU(       a   UR                  S5      R                  S5      OS n[        U UUUUUS9$ U[        [        -  ;   aI  [        U 5      S:X  a  U S   nO![        U 5      S:X  a  S nO[        SU S	35      e[        U UUU[        ;   S9$ U[        ;   aa  [        R                  " SU[        R                  S9n[!        U U(       a  UR                  S5      OS U(       a  UR                  S5      S9$ US9$ U["        ;   a@  [        U 5      S:X  a  U S   nO![        U 5      S:X  a  S nO[        SU S	35      e[%        XUS9$ ['        XS9$ )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           O/home/james-whalen/.local/lib/python3.13/site-packages/docstring_parser/rest.py_build_metar/      s   
q'C
nt9>'+$CH!!#&&"%crN	#Y!^ MCIK6se9E  .BIIF05%++a.'',4#
 	
 00t9>QIY!^I5cU)D   /	
 	
 ""		F$$

 #.3EKK	*/4F+
 	
 ;?
 	
 ot9>QIY!^I5cU)D  9
 	
 d55    textc                 0   [        [        R                  S9nU (       d  U$ [        R                  " U 5      n [
        R                  " SU [
        R                  S9nU(       a&  U SUR                  5        nXR                  5       S nOU nSnUR                  SS5      nUS   =(       d    SUl
        [        U5      S:  aX  US   =(       d    SnUR                  S5      Ul        UR                  S	5      Ul        UR!                  5       =(       d    SUl        0 n0 n[
        R$                  " S
U[
        R&                  [
        R                  -  S9 GH  nUR)                  S5      n	U	(       d  M   U	R+                  S5      R                  SS5      u  pU
R                  5       nUR!                  5       nSU;   a0  UR                  SS5      u  pUS-   [        R                  " U5      -   n[        U5      S:X  a  US   S:X  a	  XUS   '   M  [        U5      S;   a#  US   S:X  a  X[        U5      S:X  a  SOUS   '   M  UR0                  R3                  [5        X5      5        GM     UR0                   H  n[7        U[8        5      (       a5  UR:                  =(       d    UR=                  UR>                  5      Ul        MM  [7        U[@        5      (       d  Md  UR:                  =(       d    UR=                  URB                  5      Ul        M     [E        S UR0                   5       5      (       dG  U(       a@  URG                  5        H,  u  nnUR0                  R3                  [A        / USSUS95        M.     U$ ! [,         a  n[/        SU	 S35      UeSnAff = f)zPParse 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   B   #    U  H  n[        U[        5      v   M     g 7f)N)
isinstancer   ).0ms     r.   	<genexpr>parse.<locals>.<genexpr>   s     A1z!-..s   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restrP   r?   r   s                      r.   parsera   f   s   
 .--
.C
D!DIIdD-E/EKKM*
++-/*


T1%E!!H,C
5zA~(.b,;,F,Ft,L)+:+C+CF+K(.446>$EFZrttbdd{ A	%*\\#%6%<%<S!%D"J
 !!4<#zz$2J$w'7'7'==D t9>d1g/!$q'NY& T!W%7:>3t9>4tAw7HHOOK3436 dN++!^^Guyy/GDN.//!^^Kvzz$:J:J/KDN	  AAAAf&,lln"KHHOO ' $!& + '5 JK  	7wbA	s   0#M66
N NNz    	docstringrendering_styleindentc           	      "  ^^ S[         R                  [           S[        4UU4S jjn/ 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 R                  (       a  UR	                  S5        U R                   GH  n[        U[        5      (       a  UR                  (       a2  UR                  (       a  SUR                   S3OSUR                   S3nOSnT[        R                  :X  ag  SUR                   S3nXs" UR                   5      -  nUR	                  U5        US	S
 (       a&  UR	                  SUR                   SUS	S
  35        M  M  SU UR                   S3nXs" UR                   5      -  nUR	                  U5        GM  [        U["        5      (       a  UR                  (       a  SUR                   3OSnUR$                  (       a  SOSnT[        R                  :X  a]  UR                   (       a+  SU S3nXs" UR                   5      -  nUR	                  U5        U(       a  UR	                  SU 35        GM  GM  SU U S3nXs" UR                   5      -  nUR	                  U5        GM   [        U[&        5      (       aP  UR                  (       a  SUR                   S3OSnSU S3U" UR                   5      -   nUR	                  U5        GMe  SSR)                  UR*                  5       S3U" UR                   5      -   nUR	                  U5        GM     SR)                  U5      $ )zRender 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                 |  > U (       d  gT[         R                  :X  a=  U R                  5       tpSR                  SU-   /U Vs/ s H  nTU-   PM
     sn-   5      $ T[         R                  :X  a@  U R                  5       tpSR                  ST-   U-   /U Vs/ s H  nTU-   PM
     sn-   5      $ SU -   $ s  snf s  snf )Nr4   r5    )r   CLEAN
splitlinesjoinEXPANDED)r   firstr`   linerd   rc   s       r.   process_desccompose.<locals>.process_desc   s    n222!__.NU99cEk]-Mftm-MMNNn555!__.NU99&'T*JTT6D=T*JJ  Tz .N
 +Ks   B4
B9
r4   rg   z? z:param r6   Nr   z:type z:paramyieldsreturnsz:rtype:z:raisesr5   )TOptionalstrrF   rQ   rH   rK   rI   rP   r:   r   r   r    r   rk   r   r   r   r"   r   rj   r   )	rb   rc   rd   rn   rX   rP   	type_textr1   r-   s	    ``      r.   composerv      s   1::c? s    E""Y001..R!!Y//0--RdN++~~ '' 'r*T^^,A.   	."9"99 q1T%5%566T"Sb>LL6$--)CR.9I!JK "  	{4==/;T%5%566T".//04!DNN+,BI"//(YC."9"99##se1:DL)9)9::DLL&LL79+!67  3%	{!,T%5%566T"o..15!DNN+1-RIYKq)L9I9I,JJDLLsxx		*+1-T=M=M0NNDLLS T 99Ur0   )__doc__rA   r&   typingrr   commonr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Listrt   r/   ra   COMPACTrv    r0   r.   <module>r}      s    #  	    $J6affSk J6 J6 J6ZI I	 I\ '5&<&<QQ#Q Q 		Qr0   