L i" dZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z m Z dedejefdZdedefd Ze j$d fd ed e d edefdZy)z^Epyoc-style docstring parsing. .. seealso:: http://epydoc.sourceforge.net/manual-fields.html N) Docstring DocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle ParseErrorRenderingStylestringreturncD|j}t|dkDr|Sy)Nr)striplen)r s ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/docstring_parser/epydoc.py _clean_strrs \\^F 6{Q textc 4 ttj}|s|Stj|}t j d|t j}|r'|d|j}||jd}n|}d}|jdd}|dxsd|_ t|dkDrN|dxsd}|jd|_ |jd |_|j!xsd|_t j$d }t j$d }t j$d } t j$d } g} t j&d|t j(t jzD]}|j+d} | st j || } t j || }t j | | }t j | | }| xs |xs|xs|}|st-d| d| |j/d}| r4d}|j+d}|j+dj!g}n|rGd}|j+d}|j+dgn|j+dj!g}n|rd}|j+d}g}nhd}|j+d}t1|j+dj!}|gnt jd|}|dvrt-d| d|j!}d|vr0|jdd\}}|dztj|z}| j3||||fi}| D]a\}}}}|dvr |xsd\}|j5|i}d|vrdnd}|||<|dk(s:|dv}|j5d||k7sTt-d|di}| D]\}}}}|dk(r|j7|dd s|\}||}|j7d}|r|jd!rd"}|dd#}nd }t j8d$|t j:}|r |j+dj=d%nd} t?||g|j7d|||| &}!d"||<n|dk(r[|j7dd sI|d}tA|g|j7d|j7d|j7dd '}!d"|d<nU|dk(r|xsd(\}tC|g|z||)}!n5|dk(rtE|g|z|*}!n|xsd^}}"|j7|d sJ|jFj3|!|S)+zZParse the epydoc-style docstring into its components. :returns: parsed docstring )stylez^@)flagsN rrz 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".paramraiser metaz\s+)rkeywordtyper rtypeyieldytype)rr )r r type_name description>r!r" is_generatorz$Error parsing meta information for "F?Tz.*defaults to (.+).)argsr$arg_namer# is_optionaldefault)r)r$r#r%)N)r)r$r#)r)r$)$rr EPYDOCinspectcleandocresearchMstartsplitshort_descriptionr startswithblank_after_short_descriptionendswithblank_after_long_descriptionrlong_descriptioncompilefinditerSgroupr endrappend setdefaultgetmatchDOTALLrstriprrrrr)#rretrC desc_chunk meta_chunkpartslong_desc_chunk param_pattern raise_patternreturn_pattern meta_patternstreamchunk param_match raise_match return_match meta_matchbasekeyr)tokendesc first_linerestparamsr*infoinfo_keyr%is_doner#r+r, meta_item_s# rparseras .// 0C    D !D IIdD -E /EKKM* %++-/*     T1 %E!!H,C 5zA~(.b,;,F,Ft,L)+:+C+CF+K(.446>$JJ8MJJCDMZZ >?N::9L ;=FZrttbdd{6/ A ii u5 ii u5 yy7 YY|U3 H{HlHjDUG2NO O599;=) D{{1~CKKN((*+D D{{1~CQ/2ekk!n6J6J6L5MD D{{1~CDD{{1~Cu{{1~3356E2BHHVU,CD!;E7"E! 4<#zz$2 J$w'7'7'==D tS$-.m6/r/1F!'c4 * * )k   2."(C-;]X 8 "44L~|< L :8*BG "$G!'2#c4 7?7;;tAw#>KX(#D-IY//4" %crN # HH2D JE49ekk!n++C0tG&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* **   "e2#h Jrz docstringrendering_styleindentcfdtjtdtdtffd }g}|jr|j |j|j r|j d|jr|j |j|jr|j d|jD]}t|tr|jrT|jr|jdn |j}d|jd}|||d z }|j |d |jd||jd z}|j |t|t r|j"rd nd \}} |jr+d| d||jd z}|j ||jsd|d||jd z}|j |?t|t$rG|jrd|jdnd}|||jd z }|j |ddj'|j(d}|||jd z }|j |dj'|S)aRender 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 rXis_typer c`|sytjk(stjk(r@|s>|j^}}dj dz|zg|Dcgc]}|z c}zS|j^}}dj d|zg|Dcgc]}|z c}zScc}wcc}w)Nrr )r EXPANDEDCLEAN splitlinesjoin)rXrffirstrZlinerdrcs r process_desczcompose..process_descs n55 5 ~33 3G!__.NUT99&'T*JT6D=*JJ *yy#+D)ID&4-)IIJJ +K*Js  B&  B+ rr&z@type :Tz@param F)r!r")r r @z@raise z@raise:rhr)TOptionalstrboolr5r@r7r:r9r isinstancerr#r+r*r$rr%rrlr)) rbrcrdrorIrr#rarg_keytype_keys `` rcomposerysk K1::c? KT Kc KE"" Y001.. R!! Y//0-- R" dN +~~''~~&a(   a0 Y55 T"T]]O1-   %1D LL  . /$$#( Wh ~~8*Adnnd)KK T"7)1~ T5E5Eu(MM T" o .26..WT^^,A.iD L!1!159 9D LL sxx *+1-D L!1!159 9D LL E"F 99U r)__doc__r.r0typingrrcommonrrrrrr r r rtrsrraCOMPACTryrrrs     sqzz#dd dR'5&<&<II#I I Ir