
    Y	g"              	           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y)z^Epyoc-style docstring parsing.

.. seealso:: http://epydoc.sourceforge.net/manual-fields.html
    N   )	DocstringDocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle
ParseErrorRenderingStylestringreturnc                 D    | j                         } t        |       dkD  r| S y )Nr   )striplen)r   s    X/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/docstring_parser/epydoc.py
_clean_strr      s     \\^F
6{Q    textc           
      4   t        t        j                        }| s|S t        j                  |       } t        j                  d| t
        j                        }|r'| d|j                          }| |j                         d }n| }d}|j                  dd      }|d   xs d|_
        t        |      dkD  rN|d   xs d}|j                  d      |_        |j                  d	      |_        |j!                         xs d|_        t        j$                  d
      }t        j$                  d      }t        j$                  d      }	t        j$                  d      }
g }t        j&                  d|t
        j(                  t
        j                  z        D ]  }|j+                  d      }|st        j                  ||      }t        j                  ||      }t        j                  |	|      }t        j                  |
|      }|xs
 |xs |xs |}|st-        d| d      ||j/                         d }|r4d}|j+                  d      }|j+                  d      j!                         g}n|rGd}|j+                  d      }|j+                  d      g n|j+                  d      j!                         g}n|rd}|j+                  d      }g }nhd}|j+                  d      }t1        |j+                  d      j!                               }|g nt        j                  d|      }|dv rt-        d| d      |j!                         }d|v r0|j                  dd      \  }}|dz   t        j                  |      z   }|j3                  ||||f        i }|D ]a  \  }}}}|dvr|xs d\  }|j5                  |i       }d|v rdnd}|||<   |dk(  s:|dv }|j5                  d|      |k7  sTt-        d| d       i }|D ]  \  }}}}|dk(  r|j7                  |d   d       s|\  }||   }|j7                  d      }|r|j                  d!      rd"}|dd# }nd }t        j8                  d$|t
        j:                        }|r |j+                  d      j=                  d%      nd} t?        ||g|j7                  d      |||| &      }!d"||<   n|dk(  r[|j7                  dd       sI|d   }tA        |g|j7                  d      |j7                  d      |j7                  dd       '      }!d"|d<   nU|dk(  r|xs d(\  }tC        |g|z   ||)      }!n5|dk(  rtE        |g|z   |*      }!n|xs d^}}"|j7                  |d       sJ |jF                  j3                  |!        |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   
 .//
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{ 6/ Aiiu5iiu5yy7YY|U3
H{HlHjDUG2NOO599;=)
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$-.m6/r /1F#) sD$**)k  2."(C-;]X8"44L~|<L :8*BG   "$G#) 2#sD$7?7;;tAw#>KX(#D-IY//4"%crN	#HH2D		JE49ekk!n++C0tG&8_ HH]3!#'I !%GHXgkk(E&B(#D(U HH]3((;/!XXne<	I !%GHW_?7LY'UT\ #I
 V^%UT\ I
 +IS1;;sE***	"e2#h Jr   z    	docstringrendering_styleindentc                 f   dt         j                  t           dt        dt        ffd}g }| j                  r|j                  | j                         | j                  r|j                  d       | j                  r|j                  | j                         | j                  r|j                  d       | j                  D ]  }t        |t              r|j                  rT|j                  r|j                   dn|j                  }d|j                   d}| ||d	      z  }|j                  |       d
|j                   d ||j                  d      z   }|j                  |       t        |t               r|j"                  rdnd\  }}	|j                  r+d|	 d ||j                  d	      z   }|j                  |       |j                  sd| d ||j                  d      z   }|j                  |       ?t        |t$              rG|j                  rd|j                   dnd}| ||j                  d      z  }|j                  |       ddj'                  |j(                         d}| ||j                  d      z  }|j                  |        dj'                  |      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                 `   | syt         j                  k(  st         j                  k(  r@|s>| j                         ^}}dj	                  dz   |z   g|D cg c]  }|z   	 c}z         S | j                         ^}}dj	                  d|z   g|D cg c]  }|z   	 c}z         S c c}w c c}w )Nr   r    )r   EXPANDEDCLEAN
splitlinesjoin)rX   rf   firstrZ   linerd   rc   s        r   process_desczcompose.<locals>.process_desc   s    n555~333G!__.NUT99&'T*JT6D=*JJ  *yy#+D)ID&4-)IIJJ	 +K *Js   B&
B+
r   r&   z@type :Tz@param F)r!   r"   )r   r    @z@raise z@raise:rh   r   )TOptionalstrboolr5   r@   r7   r:   r9   r   
isinstancer   r#   r+   r*   r$   r   r%   r   rl   r)   )
rb   rc   rd   ro   rI   r   r#   r   arg_keytype_keys
    ``       r   composery      sk   K1::c? KT Kc K E""Y001..R!!Y//0--R "dN+~~ '' ~~&a( 
  a0Y55T"T]]O1-  %1 D LL./ $$ #(  Wh
 ~~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__r.   r0   typingrr   commonr   r   r   r   r   r	   r
   r   rt   rs   r   ra   COMPACTry    r   r   <module>r      s     	 	 	 	s qzz# d d	 dR '5&<&<II#I I 		Ir   