
    ZOg"              	           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\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    \/Users/admin/workspace/ai/Jarvis/env/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
/ 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U=(       d    U=(       d    U=(       d    UnU(       d  [-        SR/                  U5      5      eXR1                  5       S n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OwSnUR+                  S5      n[3        UR+                  S5      R!                  5       5      nUc  / O[
        R                  " SU5      nUS;   a  [-        SR/                  U5      5      eUR!                  5       nSU;   a1  UR                  SS5      u  nnUS-   [        R                  " U5      -   nUR5                  UUUU45        GMC     0 nU H{  u  nnnnUS;  a  M  U=(       d    Su  nUR7                  U0 5      nSU;   a  SOSnUUU'   US:X  d  MF  US;   nUR7                  SU5      U:w  d  Mc  [-        SR/                  U5      5      e   0 nU GH  u  nnnnUS:X  a  UR9                  US   S5      (       d  Uu  nUU   nUR9                  S5      nU(       a  UR                  S 5      (       a  S!nUSS" nOSn[
        R:                  " S#U[
        R<                  S9nU(       a   UR+                  S5      R?                  S$5      OSn [A        UU/US   UUUU S%9n!S!UU'   OUS:X  aQ  UR9                  SS5      (       d:  US   n[C        U/US   UR9                  S5      UR9                  SS5      S&9n!S!US'   OaUS:X  a  U=(       d    S'u  n[E        U/U-   UUS(9n!O>US:X  a  [G        U/U-   US)9n!O)U=(       d    Stnn"UR9                  US5      (       d   eGM  URH                  R5                  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!(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 "{}".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
   formatendr   append
setdefaultgetmatchDOTALLrstripr   r   r   r   r   )#r   retrD   
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   parserb      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 JJCDMZZ >?N::9L
 ;=FZrttbdd{ Aii5ii5yy7YY|3
H{HlHj;BB5I  99;=)
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    !?FFuM  !4<#zz$2J$w'7'7'==DtS$-.qv /1F#)sD$**)k  2."(C-;]X8"44L~|<L >EEhO  $*  "$G#)sD$7?7;;tAw#>#>KX(#D-IY//44"%crN	#HH2D		JE49ekk!n++C0tG&8_ /!#'I !%GHXgkk(E&B&B(#D(U /((;/!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        SU S3U" UR                  S5      -   nUR                  U5        GMO  [        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
rY   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)rY   rg   firstr[   linere   rd   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:ri   r   )TOptionalstrboolr5   rA   r7   r:   r9   r   
isinstancer   r#   r+   r*   r$   r   r%   r   rm   r)   )
rc   rd   re   rp   rJ   r   r#   r   arg_keytype_keys
    ``       r   composer{      sj   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"wiq>L1A1A5$IIDLLo..26..WT^^,A.iDL!1!1599DLLsxx		*+1-DL!1!1599DLLC D 99Ur   )__doc__r.   r0   typingrt   commonr   r   r   r   r   r	   r
   r   rv   ru   r   rb   COMPACTr{    r   r   <module>r      s     	 	 	 	s qzz# f f	 fV '5&<&<HH#H H 		Hr   