
    
`i"              	           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 dedej        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^Epyoc-style docstring parsing.

.. seealso:: http://epydoc.sourceforge.net/manual-fields.html
    N   )	DocstringDocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle
ParseErrorRenderingStylestringreturnc                 X    |                                  } t          |           dk    r| S d S )Nr   )striplen)r   s    k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/docstring_parser/epydoc.py
_clean_strr      s(    \\^^F
6{{Q4    textc           
      x   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|_        t          j        d
          }t          j        d          }t          j        d          }	t          j        d          }
g }t          j        d|t
          j        t
          j        z            D ]>}|                    d          }|st          j        ||          }t          j        ||          }t          j        |	|          }t          j        |
|          }|p|p|p|}|st-          d| d          ||                                d         }|r@d}|                    d          }|                    d                                          g}n|rWd}|                    d          }|                    d          g n'|                    d                                          g}n|rd}|                    d          }g }n{d}|                    d          }t1          |                    d                                                    }|g nt          j	        d|          }|dv rt-          d| d          |                                }d|v r3|	                    dd          \  }}|dz   t          j        |          z   }|                    ||||f           @i }|D ]l\  }}}}|dvr|pd\  }|                    |i           }d|v rdnd}|||<   |dk    r1|dv }|                    d|          |k    rt-          d| d          mi }|D ]\  }}}}|dk    r|                    |d         d           s|\  }||         }|                    d          }|r"|                    d!          rd"}|dd#         }nd }t          j        d$|t
          j                  }|r(|                    d                              d%          nd} t?          ||g|                    d          |||| &          }!d"||<   n|dk    rr|                    dd           s\|d         }tA          |g|                    d          |                    d          |                    dd           '          }!d"|d<   n_|dk    r|pd(\  }tC          |g|z   ||)          }!n<|dk    rtE          |g|z   |*          }!n |pd^}}"|                    |d           sJ |j#                            |!           |S )+zZParse the epydoc-style docstring into its components.

    :returns: parsed docstring
    )stylez^@)flagsN 
r   r   z

z-(param|keyword|type)(\s+[_A-z][_A-z0-9]*\??):z!(raise)(\s+[_A-z][_A-z0-9]*\??)?:z(return|rtype|yield|ytype):z.([_A-z][_A-z0-9]+)((\s+[_A-z][_A-z0-9]*\??)*):z(^@.*?)(?=^@|\Z)z%Error parsing meta information near "z".param   raiser   metaz\s+)r   keywordtyper   rtypeyieldytype)r   r   )r   r   	type_namedescription>   r!   r"   is_generatorz$Error parsing meta information for "F?Tz.*defaults to (.+).)argsr$   arg_namer#   is_optionaldefault)r)   r$   r#   r%   )N)r)   r$   r#   )r)   r$   )$r   r	   EPYDOCinspectcleandocresearchMstartsplitshort_descriptionr   
startswithblank_after_short_descriptionendswithblank_after_long_descriptionr   long_descriptioncompilefinditerSgroupr
   endr   append
setdefaultgetmatchDOTALLrstripr   r   r   r   r   )#r   retrC   
desc_chunk
meta_chunkpartslong_desc_chunkparam_patternraise_patternreturn_patternmeta_patternstreamchunkparam_matchraise_matchreturn_match
meta_matchbasekeyr)   tokendesc
first_linerestparamsr*   infoinfo_keyr%   is_doner#   r+   r,   	meta_item_s#                                      r   parsera      s   
 ./
0
0
0C 
D!!DIdD---E /EKKMM/*
%++--//*



T1%%E!!H,C
5zzA~~(.b,;,F,Ft,L,L)+:+C+CF+K+K(.4466>$J8 M JCDDMZ >??N:9 L
 ;=FZrtbd{   6/ 6/ A 	iu55iu55y77Y|U33
H{HlHj 	PNUNNNOOO599;;==)
 	D{{1~~CKKNN((**+DD 	D{{1~~CQ/22ekk!nn6J6J6L6L5MDD 	D{{1~~CDDD{{1~~Cu{{1~~335566E22BHVU,C,CD     !EEEEE   !!4<<#zz$22J$w'7'='==DtS$-.... /1F!'  c4***)k  2.."(C--;;]X8"44L~|<<LL G8GGG   "$G!' 2# 2#c47??7;;tAw#>#>?KX(#D--I $Y//44 $"%crcN		#H2D	JJJE49Cekk!nn++C000tG&8_ HH]33!#'  I !%GHXgkk(E&B&B(#D(U HH]33((;//!XXne<<	  I !%GHW__?7LY'UT\ #  II
 V^^%UT\   II
 +IS1;;sE*****	""""Jr   z    	docstringrendering_styleindentc                    dt           j        t                   dt          dt          ffd}g }| j        r|                    | j                   | j        r|                    d           | j        r|                    | j                   | j        r|                    d           | j	        D ]}t          |t                    r|j        rG|j        r
|j         dn|j        }d|j         d}| ||d	          z  }|                    |           d
|j         d ||j        d          z   }|                    |           t          |t                     rx|j        rdnd\  }}	|j        r-d|	 d ||j        d	          z   }|                    |           |j        r-d| d ||j        d          z   }|                    |           &t          |t$                    r?|j        rd|j         dnd}| ||j        d          z  }|                    |           zdd                    |j                   d}| ||j        d          z  }|                    |           d                    |          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
    rX   is_typer   c                 N   | sdS t           j        k    st           j        k    rC|sA|                                 ^}}d                    dz   |z   gfd|D             z             S |                                 ^}}d                    d|z   gfd|D             z             S )Nr   r   c                     g | ]}|z   S  ri   .0linerd   s     r   
<listcomp>z1compose.<locals>.process_desc.<locals>.<listcomp>   s    *J*J*JT6D=*J*J*Jr    c                     g | ]}|z   S ri   ri   rj   s     r   rm   z1compose.<locals>.process_desc.<locals>.<listcomp>   s    )I)I)ID&4-)I)I)Ir   )r   EXPANDEDCLEAN
splitlinesjoin)rX   rf   firstrZ   rd   rc   s       r   process_desczcompose.<locals>.process_desc   s     	2n555~333G3!__..NUT99&'*J*J*J*JT*J*J*JJ   **yy#+)I)I)I)ID)I)I)IIJJJr   r   r&   z@type :Tz@param F)r!   r"   )r   r    @z@raise z@raise:rn   r   )TOptionalstrboolr5   r@   r7   r:   r9   r   
isinstancer   r#   r+   r*   r$   r   r%   r   rs   r)   )
rb   rc   rd   ru   rI   r   r#   r   arg_keytype_keys
    ``       r   composer      s   K1:c? KT Kc K K K K K K K E" 2Y0111. R! 1Y/000- R " "dN++ !	~ # '(t~(((( 
 1000Y555T"""-T]--- %1 1 D LL.// 	 $)""(  Wh
 ~ #&8dnd)K)KKT""" #%7~~~T5Eu(M(MMT"""o.. 	26.O.T^....iDLL!15999DLL-sxx	**---DLL!15999DLL99Ur   )__doc__r.   r0   typingrx   commonr   r   r   r   r   r	   r
   r   rz   ry   r   ra   COMPACTr   ri   r   r   <module>r      sA   
  				    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s qz#    d d	 d d d dR '5&<I II#I I 		I I I I I Ir   