L ia dZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZdej(edede fdZd ede fd Zej0d fd e d ededefdZy)zReST-style docstring parsing.N)DEPRECATION_KEYWORDSPARAM_KEYWORDSRAISES_KEYWORDSRETURNS_KEYWORDSYIELDS_KEYWORDS DocstringDocstringDeprecated DocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle ParseErrorRenderingStyleargsdescreturnc|d}|tvrt|dk(r"|\}}}|jdrd}|dd}n*d}n't|dk(r |\}}d}d}ntd|d t j d |tj }|r |jd jd nd}t||||||S|ttzvrIt|dk(r|d }n t|d k(rd}ntd|d t||||tvS|tvr_t jd|tj }t!||r|jdnd|r|jdS|S|t"vrBt|dk(r|d }n t|d k(rd}ntd|d t%|||St'||S)Nr?TFz$Expected one or two arguments for a z keyword.z.*defaults to (.+)flagsr.)r descriptionarg_name type_name is_optionaldefaultz#Expected one or no arguments for a )rrr is_generatorz7^(?Pv?((?:\d+)(?:\.[0-9a-z\.]+))) (?P.+)versionr)rr#r)rrr)rr)rlenendswithrrematchDOTALLgrouprstripr rrrrsearchIr rr r )rrkeyrrr r'r!s [/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/docstring_parser/rest.py _build_metar/s q'C n t9>'+ $CH!!#&" %crN # Y!^ MCIK6se9E .BIIF05%++a.'',4#    00 t9>QI Y!^I5cU)D  /    "" F $$  #.3EKK */4 F+  ;?   o t9>QI Y!^I5cU)D 49   d 55textc ttj}|s|Stj|}t j d|t j}|r'|d|j}||jd}n|}d}|jdd}|dxsd|_ t|dkDrN|dxsd}|jd|_ |jd |_|j!xsd|_i}i}t j$d |t j&t jzD]}|j)d} | s | j+d jd d\} }| j} |j!} d| vr0| jdd\}}|dztj|z} t| dk(r| ddk(r | || d<t| dvr!| ddk(r| |t| dk(rdn| d<|j0j3t5| | |j0D]}t7|t8r/|j:xs|j=|j>|_Bt7|t@sS|j:xs|j=|jB|_tEd|j0DsC|rA|jGD].\}}|j0j3tAg|dd|0|S#t,$r} t/d | d | d} ~ wwxYw)zXParse the ReST-style docstring into its components. :returns: parsed docstring )stylez^:rN rrz z(^:.*?)(?=^:|\Z):z%Error parsing meta information near "z".rtype)rrrtypec3<K|]}t|tyw)N) isinstancer).0ms r. zparse..sA1z!-.AsF)rrrr" return_name)$r rRESTinspectcleandocr&r+Mstartsplitshort_descriptionr$ startswithblank_after_short_descriptionr%blank_after_long_descriptionstriplong_descriptionfinditerSr)lstrip ValueErrorrmetaappendr/r:r rgetrrr>anyitems)r1retr' desc_chunk meta_chunkpartslong_desc_chunktypesrtypeschunk args_chunkexrr first_linerestrOr>rs r.parser`fs .-- .C    D !D IIdD -E /EKKM* %++-/*     T1 %E!!H,C 5zA~(.b,;,F,Ft,L)+:+C+CF+K(.446>$ E FZrttbdd{5 A  %*\\#%6%<%d1g/!E$q'N Y& T!W%7:>F3t9>4tAw 7 HHOOKd3 4356L dN +!^^Guyy/GDN . /!^^Kvzz$:J:J/KDN L AA Af&,lln  "K HHOO ' $!& +    JK 7wbA  s$L44 M=M  Mz docstringrendering_styleindentc xdtjtdtffd }g}|jr|j |j|j r|j d|j r|j |j |jr|j d|jD]j}t|tr|jr-|jrd|jdnd|jd}nd}tjk(rad|jd}|||j z }|j ||d d s|j d |jd|d d d ||jd}|||j z }|j |t|t"r|jrd|jnd}|j$rd nd}tjk(rR|j r,d|d}|||j z }|j ||s|j d|d||d}|||j z }|j |t|t&rJ|jrd|jdnd}d|d||j z}|j |(ddj)|j*d||j z}|j |mdj)|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 rrcf|sytjk(r;|j^}}djd|zg|Dcgc]}|z c}zStjk(r>|j^}}djdz|zg|Dcgc]}|z c}zSd|zScc}wcc}w)Nr4r5 )rCLEAN splitlinesjoinEXPANDED)rfirstr_linercrbs r. process_desczcompose..process_descs n22 2!__.NUT99cEk]-Mftm-MMN N n55 5!__.NUT99&'T*JT6D=*JJ Tz.N +Ks B)  B. r4rfz? z:param r6Nrz:type z:paramyieldsreturnsz:rtype:z:raisesr5)TOptionalstrrErPrGrJrHrOr:r rr rrjrrrr"r rir) rarbrcrmrWrO type_textr1r-s `` r.composerts1::c?s E"" Y001.. R!! Y//0-- R) dN +~~'''r*T^^,A.  ."9"99 q1 T%5%566 T"Sb>LL6$--)CR.9I!JK {4==/; T%5%566 T" . /04!DNN+,BI"//(YC."9"99##se1:DL)9)9::DLL&LL79+!673% {!, T%5%566 T" o .15!DNN+1-RIYKq)L9I9I,JJD LL sxx *+1- T=M=M0NND LL S)T 99U r0)__doc__r@r&typingrpcommonrrrrrr r r r r rrrrListrrr/r`COMPACTrtr0r.r{s# $J6affSkJ6J6J6ZII I\'5&<&<QQ#Q Q Qr0