L iJ dZddlZddlZddlmZmZddlmZm Z ejjdgdde de d dfd Z ejjd gd de d e de ded df dZejjdgdde d ej e dej e deded df dZd%dZd%dZd%dZd%dZd%dZd%dZd%dZd%dZejjdgdde de d dfdZejjdd gde de d dfd!Zejjdd"gde de d dfd#Zd%d$Zy)&z*Tests for epydoc-style docstring routines.N) ParseErrorRenderingStylecomposeparsezsource, expected))N) NShort descriptionr z Short description r z Short description r sourceexpectedreturnctt|}|j|k(sJ|jJ|jrJy)zTest parsing short description.N)rshort_descriptionlong_descriptionmeta)rr docstrings h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/docstring_parser/tests/test_epydoc.pytest_short_descriptionr sBf I  & &( 22 2  % % -- -~~ ~z?source, expected_short_desc, expected_long_desc, expected_blank))#Short description Long descriptionr Long descriptionT)I Short description Long description r rT)a Short description Long description Second line r Long description Second lineT)"Short description Long descriptionr rF)H Short description Long description r rF)$ Short description Long description r rF)` Short description Long description Second line r rFexpected_short_descexpected_long_descexpected_blankct|}|j|k(sJ|j|k(sJ|j|k(sJ|jrJy)zTest parsing long description.N)rrrblank_after_short_descriptionr)rr"r#r$rs rtest_long_descriptionr's[Lf I  & &*= == =  % %); ;; ;  2 2n DD D~~ ~rzdsource, expected_short_desc, expected_long_desc, expected_blank_short_desc, expected_blank_long_desc))B Short description @meta: asd r NFF)_ Short description Long description @meta: asd r rFF)u Short description First line Second line @meta: asd r First line Second lineFF)v Short description First line Second line @meta: asd r r+TF)w Short description First line Second line @meta: asd r r+TT)$ @meta: asd NNFFexpected_blank_short_descexpected_blank_long_descct|}|j|k(sJ|j|k(sJ|j|k(sJ|j|k(sJt |j dk(sJy)z2Test parsing newlines around description sections.N)rrrr&blank_after_long_descriptionlenr)rr"r#r/r0rs rtest_meta_newlinesr5isyff I  & &*= == =  % %); ;; ;  2 26O OO O  1 15M MM M y~~ ! ## #rctd}|jdk(sJt|jdk(sJ|jdjdgk(sJ|jdj dk(sJy)z*Test parsing multiline meta documentation.ze Short description @meta: asd 1 2 3 r r2rr asd 1 2 3Nrrr4rargs descriptionrs r$test_meta_with_multiline_descriptionr<s|  I  & &*= == = y~~ ! ## # >>!  ! !fX -- - >>!  ( (,> >> >rctd}|jdk(sJt|jdk(sJ|jdjdgk(sJ|jdj dk(sJ|jdjdgk(sJ|jdj d k(sJ|jd jd gk(sJ|jd j d k(sJy )zTest parsing multiple meta.z Short description @meta1: asd 1 2 3 @meta2: herp @meta3: derp r rmeta1r7r2meta2herpmeta3derpNr8r;s rtest_multiple_metarEs  I  & &*= == = y~~ ! ## # >>!  ! !gY .. . >>!  ( (,> >> > >>!  ! !gY .. . >>!  ( (F 22 2 >>!  ! !gY .. . >>!  ( (F 22 2rctd}|jdk(sJt|jdk(sJ|jdjgdk(sJ|jdj dk(sJy)z,Test parsing meta with additional arguments.zD Short description @meta ene due rabe: asd r r2r)reneduerabeasdNr8r;s rtest_meta_with_argsrKsz I  & &*= == = y~~ ! ## # >>!  ! !%C CC C >>!  ( (E 11 1rc>td}t|jdk(sJtd}t|jdk(sJ|jdjdk(sJ|jdjJ|jdj dk(sJ|jdj J|jdjrJ|jdjd k(sJ|jdjd k(sJ|jdj d k(sJ|jdjrJ|jdj J|jd jd k(sJ|jd jdk(sJ|jd j dk(sJ|jd jsJ|jd j J|jdjdk(sJ|jdjdk(sJ|jdj dk(sJ|jdjsJ|jdj dk(sJ|jdjdk(sJ|jdjdk(sJ|jdj dk(sJ|jdjsJ|jdj dk(sJy)zTest parsing params.r ra Short description @param name: description 1 @param priority: description 2 @type priority: int @param sender: description 3 @type sender: str? @param message: description 4, defaults to 'hello' @type message: str? @param multiline: long description 5, defaults to 'bye' @type multiline: str? nameNz description 1r2priorityintz description 2rBsenderstrz description 3r>messagez"description 4, defaults to 'hello'z'hello' multilinez%long description 5, defaults to 'bye'z'bye')rr4paramsarg_name type_namer:default is_optionalr;s r test_paramsr[sB)*I y A %% % I y A %% %   A  ' '6 11 1   A  ( ( 00 0   A  * *o == =   A  & & .. ."... .   A  ' ': 55 5   A  ( (E 11 1   A  * *o == ="... .   A  & & .. .   A  ' '8 33 3   A  ( (E 11 1   A  * *o == =   A  * ** *   A  & & .. .   A  ' '9 44 4   A  ( (E 11 1''+OOO   A  * ** *   A  & &) 33 3   A  ' '; 66 6   A  ( (E 11 1'' 3 4 4   A  * ** *   A  & &' 11 1rctd}|jJtd}|jJ|jjJ|jjdk(sJ|jjrJtd}|jJ|jjdk(sJ|jjdk(sJ|jjrJy)zTest parsing returns.# Short description Nz@ Short description @return: description r:zT Short description @return: description @rtype: int rPrreturnsrXr: is_generatorr;s r test_returnsra3s I    $$ $ I    (( (    & & .. .    ( (M 99 9  --- - I    (( (    & &% // /    ( (M 99 9  --- --rctd}|jJtd}|jJ|jjJ|jjdk(sJ|jjsJtd}|jJ|jjdk(sJ|jjdk(sJ|jjsJy)zTest parsing yields.r]Nz? Short description @yield: description r:zS Short description @yield: description @ytype: int rPr^r;s r test_yieldsrcTs I    $$ $ I    (( (    & & .. .    ( (M 99 9    ) )) ) I    (( (    & &% // /    ( (M 99 9    ) )) )rctd}t|jdk(sJtd}t|jdk(sJ|jdjJ|jdjdk(sJtd}t|jdk(sJ|jdjdk(sJ|jdjdk(sJy) zTest parsing raises.r]rz? Short description @raise: description r2Nr:zJ Short description @raise ValueError: description ValueError)rr4raisesrXr:r;s r test_raisesrgus I y A %% % I y A %% %   A  ( ( 00 0   A  * *m ;; ; I y A %% %   A  ( (L 88 8   A  * *m ;; ;rctjt5tddddtjt5tddddtjt5tddddtjt5tddddtdy#1swYxYw#1swY{xYw#1swYZxYw#1swY9xYw)zTest parsing broken meta.@Nz@param herp derpz@param: invalidz@param with too many args: descz@sthstrange: desc)pytestrfrrrrtest_broken_metarls z " c  z ""  !" z "!  ! z "1 /01 ""!!11s/ C C 4 C! C%C  CC"%C.))rr)r rr r r )rr)rr)rz/Short description Long description Second line)rr)rr)r r)r!z.Short description Long description Second line)r(zShort description @meta: asd)r)z-Short description Long description @meta: asd)r*z7Short description First line Second line @meta: asd)r,z8Short description First line Second line @meta: asd)r-z9Short description First line Second line @meta: asd)r.z @meta: asd)z} Short description @meta: asd 1 2 3 z3Short description @meta: asd 1 2 3)z Short description @meta1: asd 1 2 3 @meta2: herp @meta3: derp zNShort description @meta1: asd 1 2 3 @meta2: herp @meta3: derp)zP Short description @meta ene due rabe: asd z*Short description @meta ene due rabe: asd) Short description @param name: description 1 @param priority: description 2 @type priority: int @param sender: description 3 @type sender: str? @type message: str? @param message: description 4, defaults to 'hello' @type multiline: str? @param multiline: long description 5, defaults to 'bye' a)Short description @param name: description 1 @type priority: int @param priority: description 2 @type sender: str? @param sender: description 3 @type message: str? @param message: description 4, defaults to 'hello' @type multiline: str? @param multiline: long description 5, defaults to 'bye')zK Short description @raise: description z%Short description @raise: description)zV Short description @raise ValueError: description z0Short description @raise ValueError: descriptionc6tt||k(sJy)zTest compose in default mode.Nrrrs r test_composerpsP 5= !X -- -r)rma=Short description @param name: description 1 @type priority: int @param priority: description 2 @type sender: str? @param sender: description 3 @type message: str? @param message: description 4, defaults to 'hello' @type multiline: str? @param multiline: long description 5, defaults to 'bye'cVtt|tj|k(sJy)zTest compose in clean mode.rendering_styleN)rrrCLEANros rtest_compose_cleanrups+R f ~/C/CD   r)rmaMShort description @param name: description 1 @type priority: int @param priority: description 2 @type sender: str? @param sender: description 3 @type message: str? @param message: description 4, defaults to 'hello' @type multiline: str? @param multiline: long description 5, defaults to 'bye'cVtt|tj|k(sJy)zTest compose in expanded mode.rrN)rrrEXPANDEDros rtest_compose_expandedrxs+Z f ~/F/FG   rc>d}t|}t||k(sJy)z=Test abbreviated docstring with only return type information.z!Short description. @rtype: floatN)rr)stringrs rtest_short_rtyper{s# 2Ff I 9  '' 'r)rN)__doc__typingTrjdocstring_parser.commonrrdocstring_parser.epydocrrmark parametrizerRrboolr'Optionalr5r<rErKr[rarcrgrlrprurxr{rkrrrs10 >2 3#$ E;>~        >~ :FJV $  $C $ 3 $ $ $ # $  $WJV $ ?$30 232l.B*B<<$BEL....MEL.  "%LscdM%L$ &)T#U)T(r