L i4DdZddlZddlZddlZddlmZmZddlm Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZGdde ZGd d ed d Zej6d Zej6dZej6dZeddej>eddej>eddej>eddej>eddej>eddej>eddej>eddej>eddej@eddej@eddejBed d!ejBg Z"Gd"d#Z#d$e$d%efd&Z%ejLd'fd(ed)ed*e$d%e$fd+Z'y),zGoogle-style docstring parsing.N) OrderedDict namedtuple)IntEnum)EXAMPLES_KEYWORDSPARAM_KEYWORDSRAISES_KEYWORDSRETURNS_KEYWORDSYIELDS_KEYWORDS DocstringDocstringExample DocstringMetaDocstringParamDocstringRaisesDocstringReturnsDocstringStyle ParseErrorRenderingStylec eZdZdZdZ dZ dZy) SectionTypezTypes of sections.rrN)__name__ __module__ __qualname____doc__SINGULARMULTIPLESINGULAR_OR_MULTIPLE]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/docstring_parser/google.pyrrsH%H#.r rceZdZdZy)SectionzA docstring section.N)rrrrrr r!r#r#(sr r# SectionBaseztitle key typez\s*(.+?)\s*\(\s*(.*[^\s]+)\s*\)z.*\. Defaults to (.+)\.z(\s*[^:\s]+:)|([^:]*\]:.*) ArgumentsparamArgs ParametersParamsRaisesraises ExceptionsExcept Attributes attributeExampleexamplesExamplesReturnsreturnsYieldsyieldsc eZdZdZ ddej ej efdZdZ de de de fd Z e d ed e de fd Ze d ed e d e de fdZd efdZde defdZy) GoogleParserz#Parser for Google-style docstrings.Nsectionsc|st}|Dcic]}|j|c}|_||_|j ycc}w)zSetup sections. :param sections: Recognized sections or None to defaults. :param title_colon: require colon after section title. N)DEFAULT_SECTIONStitler9 title_colon_setup)selfr9r=ss r!__init__zGoogleParser.__init__Cs<'H-56!6 & 7sAc|jrd}nd}tjddjd|jDzdz|zdztj |_y) N:z^(|c3(K|] }d|d yw)()Nr).0ts r! z&GoogleParser._setup..Xs7A1#Qx7srHz [ ]*$flags)r=recompilejoinr9M titles_re)r?colons r!r>zGoogleParser._setupQsh   EE hh777 8     $$  r textr<returncj|j|}|jtjk(rtj |r|jtj k(r|j||Sd|vrtd|d|jdd\}}|r1d|vr-|jdd\}}|tj|z}|rT|ddk(r|ddn|}d|vr0|jdd\}}|dztj|z}|jd}|j|||S) zBuild docstring element. :param text: docstring element text :param title: title of section containing element :return: rCzExpected a colon in .r r N)r9typerrMULTIPLE_PATTERNmatchr_build_single_metarsplitinspectcleandocstrip_build_multi_meta)r?rTr<sectionbeforedesc first_linerests r! _build_metazGoogleParser._build_meta_s1--& LLK<< <$**40 \\[11 1**7D9 9 d?3D81=> >zz#q)  dfn%||D!4 J'"2"24"88F #Aw#~484Dt|#'::dA#6 D!D(7+;+;D+AA::d#D%%gvt<)r?rcs r! add_sectionzGoogleParser.add_sections (/ gmm$ r c<ttj}|s|Stj|}|j j |}|r'|d|j}||jd}n|}d}|jdd}|dxsd|_ t|dkDrN|dxsd}|jd|_ |jd|_|jxsd|_t#|j j%|}|s|Sg} t't|dz D]:} | j)|| j+|| dzjf<| j)|dj+t|ft-} t/| D]o\} \} } || j1d}||j2vr,|| | }t5j d |}||d|j}|jd| |<q| s|S| j7D]\}}t5j d |}|st9d |d |j1}|j2|j:t<j>t<j@fvrAtj|}|jBj)|jE||d |zdz}t#t5j$||t4jF}|st9d|d|d g}t't|dz D]:} |j)|| j+|| dzjf<|j)|dj+t|ft/|D]G\} \} } || | jd}|jBj)|jE||I|S)zbParse the Google-style docstring into its components. :returns: parsed docstring )styleNrDrXrrz rvz\n\Sz^\s*zCan't infer indent from ""^z(?=\S)rLzNo specification for "z": ")$r rGOOGLEr_r`rRsearchstartr^short_descriptionlen startswithblank_after_short_descriptionr|blank_after_long_descriptionralong_descriptionlistfinditerrangeappendendr enumerater{r9rNitemsrrZrrrmetarhrQ)r?rTretr\ desc_chunk meta_chunkpartslong_desc_chunkmatchessplitsjchunksrrr< meta_details unknown_metachunk indent_matchindentpart_re c_matchesc_splitss r!parsezGoogleParser.parses n334J%%%d+ o .Jekkmo.JJJ  q) %a 0D u:>#Ahn"O0?0J0J1C -0?/G/G/OC ,#2#8#8#:#BdC t~~..z:;Js7|a'( FA MM71:>>+WQU^-A-A-CD E F wr{(#j/:;(0 5OA|sAJ$$Q'EDMM)&eC0L99Wl;L'+,Bl.@.@.BC (..t4F5M 5J#LLN ?LE599We4L #=eWA!FGG!'')F}}U#(($$00-''. 0 0u =>,*CR[[e244@AI #9%UG1!MNNH3y>A-. P1!1!1!3Yq1u5E5K5K5M NO P OOYr]..0#e*= >#,X#6 ? ?3 ?: r )NT)rrrrTOptionalListr#rAr>strrrh staticmethodr]rbrr rrr r!r8r8@s-IM  166'?3   "="=C"=M"=HCGC3C=CC()K)K"%)K-0)K )K)KV7X#X)Xr r8rTrUc4tj|S)zZParse the Google-style docstring into its components. :returns: parsed docstring )r8r)rTs r!rr(s >   %%r z docstringrendering_stylerc dtjtttff fd dt dtj tjf fd }g |jr j|j|jr jd|jr j|j|jr jd|d|jxsgDcgc]}|jdd k(s|c}|d |jxsgDcgc]}|jdd k(s|c}|d |jxsgDcgc]}|j r|c}|d |jxsgDcgc]}|j s|c}|d|j"xsg|j$rU|jsI|j$} j|rd nd  jdt' dz ||j(D]}t+|tttfr j|jdj-ddj/dz|j0rJ|j0j3Dcgc]}|z }} jdj5| jd r ds j7 r dsdj5 Scc}wcc}wcc}wcc}wcc}w)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 onec>d}t|tr||jxsdz }n#t|tr||jxsdz }t|tr$|j rt jk(rdnd}nd}|jr|r|d|j|dz }n&|jr||j|dz }n|dz }|z}|jrWt jk(rDdj|g|jjz}j|y|jrN|jj^}}dj|dz|zg|z}j|yj|y) NrDrurtz (z):rCrXrY) isinstancerrwr return_namerxrCOMPACTrmrlEXPANDEDrP splitlinesr) rheadoptionalbodyfirstrgrrrs r! process_onezcompose..process_one=s c> * CLL&B &D - . COO)r )D c> *s#n&<&<<!  H ==T bz4 4D ]] s}}ohZq1 1D CKD} ??.2I2IIxx(--3355D LL  __ __779NUTxx(--tczE/A.BT.IJD LL  LL r namerkcn|r2j||D] }| jdyy)NrD)r)rrkargrrs r! process_sectzcompose..process_sectds:  LL  !C  ! LL  r rDzArgs:rr&z Attributes:r/zReturns:zYields:zRaises:-rv_rCrX)rUnionrrrrrAnyrrrrrparamsrk many_returnsrnr+r4rrrreplacer<rlrrPpop) rrrrprrllinesrrs `` @@r!composer0s% WW^%5F G%N3affQUUmE"" Y001.. R!! Y//0-- RY--3LqvvayG7K!L$$*GqaffQi;.FG **0bGqG y55;N!q~~ANI,,23!7!7 #Y:6 S3uRy>)*C   >#3_E   TYYq\))#r288:S@A   )-)9)9)D)D)FGAVaZGEG LL5) * R  b   b  99U OM H HO$Hs6<L6 L6 4L; L; ,M >M M 0M  M )(rr_rNtypingr collectionsrrenumrcommonrrr r r r r rrrrrrrrr#rOrzr}r[rrrr;r8rrrrrr r!rs% /$ /' /j(89$$FG" #=>2::;< K+"6"67 FG[112 L';#7#78 Hg{334 Hh 4 45 L(K$8$89 Hh 4 45 L+{';';< Iz;#7#78 J K$8$89 Iy+"B"BC Hh @ @A  eeP&& &'5&<&<nn#n n nr