
    /j$              	           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  S\S\R                  \   4S jrS\R                  \   S\4S	 jr\R$                  S
4S\S\S\S\4S jjrg)z^Epyoc-style docstring parsing.

.. seealso:: http://epydoc.sourceforge.net/manual-fields.html
    N   )	DocstringDocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle
ParseErrorRenderingStylestringreturnc                 F    U R                  5       n [        U 5      S:  a  U $ g )Nr   )striplen)r   s    H/app/agent/.venv/lib/python3.13/site-packages/docstring_parser/epydoc.py
_clean_strr      s     \\^F
6{Q    textc           
      
   [        [        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        [
        R$                  " S
5      n[
        R$                  " S5      n[
        R$                  " S5      n	[
        R$                  " S5      n
[
        R$                  " S5      n/ n[
        R&                  " SU[
        R(                  [
        R                  -  S9 GH  nUR+                  S5      nU(       d  M  [
        R                  " X}5      n[
        R                  " X5      n[
        R                  " X5      n[
        R                  " X5      n[
        R                  " X5      nU=(       d    U=(       d    U=(       d    U=(       d    UnU(       d  [-        SU S35      eXR/                  5       S nU(       a5  SnUR+                  S5      nUR+                  S5      R!                  5       /nGOU(       a4  SnUR+                  S5      nUR+                  S5      R!                  5       /nOU(       aH  SnUR+                  S5      nUR+                  S5      c  / OUR+                  S5      R!                  5       /nOU(       a  SnUR+                  S5      n/ nOlSnUR+                  S5      n[1        UR+                  S5      R!                  5       5      nUc  / O[
        R                  " SU5      nUS;   a  [-        SU S35      eUR!                  5       nSU;   a1  UR                  SS5      u  nnUS-   [        R                  " U5      -   nUR3                  UUUU45        GM     0 nU Hp  u  nnnnUS;  a  M  U=(       d    Su  nUR5                  U0 5      nSU;   a  SOSnUUU'   US:X  d  MF  US;   nUR5                  S U5      U:w  d  Mc  [-        S!U S35      e   0 nU GH  u  nnnnUS";   a  UR7                  US   S#5      (       d  Uu  nUU   nUR7                  S5      n U (       a  U R                  S$5      (       a  S%n!U SS& n OS#n![
        R8                  " S'U[
        R:                  S9nU(       a   UR+                  S5      R=                  S(5      OSn"[?        UU/UR7                  S5      UU U!U"S)9n#S%UU'   OUS:X  a]  UR7                  SS#5      (       dF  US   n[A        U/UR7                  S5      UR7                  S5      UR7                  S S#5      S*9n#S%US'   OaUS:X  a  U=(       d    S+u  n [C        U/U-   UU S,9n#O>US:X  a  [E        U/U-   US-9n#O)U=(       d    Stnn$UR7                  US#5      (       d   eGM  URF                  R3                  U#5        GM     U$ ).zRParse 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((ivar|cvar|var)(\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   	attributeraiser   metaz\s+)
r   ivarcvarvarkeywordtyper   rtypeyieldytype)r   r   r   )r   r#   	type_namedescription>   r%   r&   is_generatorz$Error parsing meta information for ")r   r   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   retrG   
desc_chunk
meta_chunkpartslong_desc_chunkparam_patternattribute_patternraise_patternreturn_patternmeta_patternstreamchunkparam_matchattribute_matchraise_matchreturn_match
meta_matchbasekeyr-   tokendesc
first_linerestparamsr.   infoinfo_keyr)   is_doner'   r/   r0   	meta_item_s%                                        r   parserg      s   
 .//
0C
D!DIIdD-E/EKKM*
++-/*


T1%E!!H,C
5zA~(.b,;,F,Ft,L)+:+C+CF+K(.446>$JJ8M 

#NOJJCDMZZ >?N::9L
 ;=FZrttbdd{ Aii5))$5=ii5yy7YY|3
     	 DUG2NOO99;=)
D{{1~CKKN((*+DD{{1~CKKN((*+DD{{1~CQ/2ekk!n6J6J6L5MDD{{1~CDD{{1~Cu{{1~3356E2BHHVU,CD    !;E7"E  !4<#zz$2J$w'7'7'==DtS$-.IN /1F!'c477)k  2."(C-;]X8"44L~|<L :8*BG  "(  "$G!'c4))'++d1gu2M2MKX(#D-IY//44"%crN	#HH2D		JE49ekk!n++C0tG&8_ HH]3!#'I !%GHXgkk(E&B&B(#D(U HH]3((;/!XXne<	I !%GHW_?7LY'UT\ #I
 V^%UT\ I
 +IS1;;sE****	"e "(h Jr   z    	docstringrendering_styleindentc                   ^^ S[         R                  [           S[        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                  (       aX  UR                  (       a  UR                   S3OUR                  nSUR                   S3nXs" US	5      -  nUR                  U5        S
UR                   S3U" UR                  S5      -   nUR                  U5        M  [        U[         5      (       a  UR"                  (       a  SOSu  pUR                  (       a+  SU	 S3U" UR                  S	5      -   nUR                  U5        UR                  (       a.  SU S3U" UR                  S5      -   nUR                  U5        GM`  GMc  [        U[$        5      (       aL  UR                  (       a  SUR                   S3OSnXs" UR                  S5      -  nUR                  U5        GM  SSR'                  UR(                  5       S3nXs" UR                  S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^   is_typer   c                   > U (       d  gT[         R                  :X  d  T[         R                  :X  aG  U(       d@  U R                  5       tp#SR	                  ST-   U-   /U Vs/ s H  nTU-   PM
     sn-   5      $ U R                  5       tp#SR	                  SU-   /U Vs/ s H  nTU-   PM
     sn-   5      $ s  snf s  snf )Nr   r    )r   EXPANDEDCLEAN
splitlinesjoin)r^   rl   firstr`   linerj   ri   s        r   process_desccompose.<locals>.process_desc   s    n555~333G!__.NU99&'T*JTT6D=T*JJ  *yy#+D)IDD&4-D)IIJJ	 +K *Js   !B6
B;
r   r*   z@type :Tz@param F)r%   r&   )r   r$   @z@raise z@raise:rn   r   )TOptionalstrboolr9   rD   r;   r>   r=   r   
isinstancer   r'   r/   r.   r(   r   r)   r   rr   r-   )
rh   ri   rj   ru   rM   r   r'   r   arg_keytype_keys
    ``       r   composer      sz   K1::c? KT Kc K K E""Y001..R!!Y//0--RdN++~~ '' ~~&a( 
  a0Y55T"T]]O1-  %1 D LL.// $$ #(  W
 ~~8*Adnnd)KKT"7)1~T5E5Eu(MMT"   o..26..WT^^,A.iDL!1!1599DLLsxx		*+1-DL!1!1599DLLE F 99Ur   )__doc__r2   r4   typingry   commonr   r   r   r   r   r	   r
   r   r{   rz   r   rg   COMPACTr    r   r   <module>r      s   
  	 	 	 	s qzz# s

3 sI sp '5&<&<II#I I 		Ir   