ó
    Ð]jî4  ã                   ód  • S r SSKrSSKrSSKrSSKJrJr  SSKJ	r	  SSK
JrJrJrJrJrJrJrJrJrJrJrJrJrJr   " S S\	5      r " S	 S
\" SS5      5      r\R6                  " S5      r\R6                  " S5      r\R6                  " S5      r\" SS\R>                  5      \" SS\R>                  5      \" SS\R>                  5      \" SS\R>                  5      \" SS\R>                  5      \" SS\R>                  5      \" SS\R>                  5      \" SS\R>                  5      \" SS\R@                  5      \" SS\R@                  5      \" SS\RB                  5      \" S S!\RB                  5      /r" " S" S#5      r#S$\RH                  \%   S%\4S& jr&\RN                  S'4S(\S)\S*\%S%\%4S+ jjr(g),zGoogle-style docstring parsing.é    N)ÚOrderedDictÚ
namedtuple)ÚIntEnumé   )ÚEXAMPLES_KEYWORDSÚPARAM_KEYWORDSÚRAISES_KEYWORDSÚRETURNS_KEYWORDSÚYIELDS_KEYWORDSÚ	DocstringÚDocstringExampleÚDocstringMetaÚDocstringParamÚDocstringRaisesÚDocstringReturnsÚDocstringStyleÚ
ParseErrorÚRenderingStylec                   ó(   • \ rS rSrSrSr Sr SrSrg)ÚSectionTypeé   zTypes of sections.r   r   é   © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚSINGULARÚMULTIPLEÚSINGULAR_OR_MULTIPLEÚ__static_attributes__r   ó    ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docstring_parser/google.pyr   r      s   † Ùà€HØ%à€HØ#àÐÚ.r#   r   c                   ó   • \ rS rSrSrSrg)ÚSectioné(   zA docstring section.r   N)r   r   r   r   r   r"   r   r#   r$   r&   r&   (   s   † Ür#   r&   ÚSectionBaseztitle key typez\s*(.+?)\s*\(\s*(.*[^\s]+)\s*\)z.*\. Defaults to (.+)\.z(\s*[^:\s]+:)|([^:]*\]:.*)Ú	ArgumentsÚparamÚArgsÚ
ParametersÚParamsÚRaisesÚraisesÚ
ExceptionsÚExceptÚ
AttributesÚ	attributeÚExampleÚexamplesÚExamplesÚReturnsÚreturnsÚYieldsÚyieldsc            	       óú   • \ rS rSrSr SS\R                  \R                  \      4S jjr	S r
S\S\S	\4S
 jr\S\S\S	\4S j5       r\S\S\S\S	\4S j5       rS\4S jrS\R                  \   S	\4S jrSrg)ÚGoogleParseré@   z#Parser for Google-style docstrings.NÚsectionsc                 ó˜   • U(       d  [         nU Vs0 s H  o3R                  U_M     snU l        X l        U R	                  5         gs  snf )z‚Setup sections.

:param sections: Recognized sections or None to defaults.
:param title_colon: require colon after section title.
N)ÚDEFAULT_SECTIONSÚtitler>   Útitle_colonÚ_setup)Úselfr>   rB   Úss       r$   Ú__init__ÚGoogleParser.__init__C   s<   € ö Ü'ˆHÙ-5Ó6ªX¨Ÿ™ !š©XÑ6ˆŒØ&ÔØ�‰�ùò 7s   ’Ac                 óØ   • U R                   (       a  SnOSn[        R                  " SSR                  S U R                   5       5      -   S-   U-   S-   [        R
                  S9U l        g )	NÚ:Ú z^(Ú|c              3   ó.   #   • U  H  nS U S3v •  M     g7f)Ú(Ú)Nr   )Ú.0Úts     r$   Ú	<genexpr>Ú&GoogleParser._setup.<locals>.<genexpr>X   s   é € Ð7ª A˜˜1˜#˜Q•xªùs   ‚rN   z	[ 	]*$©Úflags)rB   ÚreÚcompileÚjoinr>   ÚMÚ	titles_re)rD   Úcolons     r$   rC   ÚGoogleParser._setupQ   sh   € Ø××Ø‰EàˆEÜŸšØØ�h‰hÑ7¨¯ªÓ7Ó7ñ8àñð ñð ñ	ô
 —$‘$ñ
ˆ�r#   ÚtextrA   Úreturnc                 ó–  • U R                   U   nUR                  [        R                  :X  a  [        R                  U5      (       a  UR                  [        R                  :X  a  U R                  X15      $ SU;  a  [        SU< S35      eUR                  SS5      u  pEU(       a3  SU;   a-  UR                  SS5      u  pgU[        R                  " U5      -   nU(       aW  US   S:X  a  USS OUnSU;   a0  UR                  SS5      u  pgUS-   [        R                  " U5      -   nUR                  S5      nU R                  X4U5      $ )	zyBuild docstring element.

:param text: docstring element text
:param title: title of section containing element
:return:
rI   zExpected a colon in Ú.r   Ú
r   Ú N)r>   Útyper   r!   ÚMULTIPLE_PATTERNÚmatchr   Ú_build_single_metar   ÚsplitÚinspectÚcleandocÚstripÚ_build_multi_meta)rD   r\   rA   ÚsectionÚbeforeÚdescÚ
first_lineÚrests           r$   Ú_build_metaÚGoogleParser._build_meta_   s*  € ð —-‘- Ñ&ˆð �L‰LœK×<Ñ<Ó<Ü$×*Ñ*¨4×0Ñ0Ø�\‰\œ[×1Ñ1Ó1Ø×*Ñ*¨7Ó9Ð9à�d‹?ÜÐ3°D±8¸1Ð=Ó>Ð>ð —z‘z # qÓ)‰ˆæ�d˜f“nà%Ÿ|™|¨D°!Ó4ÑˆJØ¤'×"2Ò"2°4Ó"8Ñ8ˆFæØ# A™w¨#›~�4˜˜‘8°4ˆDØ�t‹|Ø#'§:¡:¨d°AÓ#6Ñ �
Ø! DÑ(¬7×+;Ò+;¸DÓ+AÑA�Ø—:‘:˜dÓ#ˆDà×%Ñ% g°tÓ<Ð<r#   rk   rm   c                 ó˜  • U R                   [        [        -  ;   a(  [        U R                   /US U R                   [        ;   S9$ U R                   [        ;   a  [        U R                   /US S9$ U R                   [        ;   a  [        U R                   /S US9$ U R                   [        ;   a  [        S5      e[        U R                   /US9$ )N©ÚargsÚdescriptionÚ	type_nameÚis_generator©rt   ru   rv   )rt   Úsnippetru   zExpected paramenter name.©rt   ru   )Úkeyr
   r   r   r	   r   r   r   r   r   r   )rk   rm   s     r$   re   ÚGoogleParser._build_single_metaƒ   sº   € à�;‰;Ô*¬_Ñ<Ó<Ü#Ø—k‘k�]Ø ØØ$Ÿ[™[¬OÑ;ñ	ð ð �;‰;œ/Ó)Ü"Ø—k‘k�]°Àñð ð �;‰;Ô+Ó+Ü#Ø—k‘k�]¨D¸dñð ð �;‰;œ.Ó(ÜÐ8Ó9Ð9Ü 7§;¡; -¸TÑBÐBr#   rl   c           	      ó¬  • U R                   [        ;   a½  [        R                  U5      nU(       aS  UR	                  SS5      u  pEUR                  S5      (       a  SnUS S nO&UR                  S5      (       a  SnUS S nOSnOUS pTS n[        R                  U5      nU(       a  UR	                  S5      OS n[        U R                   U/UUUUUS	9$ U R                   [        [        -  ;   a)  [        U R                   U/UUU R                   [        ;   S
9$ U R                   [        ;   a  [        U R                   U/X!S9$ [        U R                   U/US9$ )Nr   r   ú
, optionalTiöÿÿÿÚ?éÿÿÿÿF)rt   ru   Úarg_namerv   Úis_optionalÚdefaultrs   rx   rz   )r{   r   ÚGOOGLE_TYPED_ARG_REGEXrd   ÚgroupÚendswithÚGOOGLE_ARG_DESC_REGEXr   r
   r   r   r	   r   r   )rk   rl   rm   rd   r�   rv   r‚   rƒ   s           r$   rj   ÚGoogleParser._build_multi_meta˜   sR  € ð �;‰;œ.Ó(Ü*×0Ñ0°Ó8ˆEÞØ&+§k¡k°!°QÓ&7Ñ#�Ø×%Ñ% l×3Ñ3Ø"&�KØ )¨$¨3 ‘IØ×'Ñ'¨×,Ñ,Ø"&�KØ )¨#¨2 ‘Ià"'‘Kà&,¨d˜)Ø"�ä)×/Ñ/°Ó5ˆEÞ(-�e—k‘k !”n°4ˆGä!Ø—k‘k 6Ð*Ø Ø!Ø#Ø'Øñð ð �;‰;Ô*¬_Ñ<Ó<Ü#Ø—k‘k 6Ð*Ø Ø Ø$Ÿ[™[¬OÑ;ñ	ð ð �;‰;œ/Ó)Ü"Ø—k‘k 6Ð*¸ñð ô  7§;¡;°Ð"7ÀTÑJÐJr#   c                 óT   • XR                   UR                  '   U R                  5         g)z<Add or replace a section.

:param section: The new section.
N)r>   rA   rC   )rD   rk   s     r$   Úadd_sectionÚGoogleParser.add_sectionÄ   s   € ð (/�‰�g—m‘mÑ$Ø�‰�r#   c           	      ó¤  • [        [        R                  S9nU(       d  U$ [        R                  " U5      nU R
                  R                  U5      nU(       a&  USUR                  5        nXR                  5       S nOUnSnUR                  SS5      nUS   =(       d    SUl	        [        U5      S:”  aX  US   =(       d    SnUR                  S5      Ul        UR                  S5      Ul        UR                  5       =(       d    SUl        [#        U R
                  R%                  U5      5      nU(       d  U$ / n	['        [        U5      S-
  5       H9  n
U	R)                  XŠ   R+                  5       XŠS-      R                  5       45        M;     U	R)                  US   R+                  5       [        U5      45        [-        5       n[/        U	5       Hp  u  n
u  pÍXŠ   R1                  S5      nXàR2                  ;  a  M,  X\U n[4        R                  " S	U5      nUb  USUR                  5        nUR                  S5      X¾'   Mr     U(       d  U$ UR7                  5        GHê  u  nn[4        R                  " S
U5      nU(       d  [9        SU S35      eUR1                  5       nU R2                  U   R:                  [<        R>                  [<        R@                  4;   aC  [        R                  " U5      nURB                  R)                  U RE                  UU5      5        MÂ  SU-   S-   n[#        [4        R$                  " UU[4        RF                  S95      nU(       d  [9        SU SU S35      e/ n['        [        U5      S-
  5       H;  n
UR)                  UU
   R+                  5       UU
S-      R                  5       45        M=     UR)                  US   R+                  5       [        U5      45        [/        U5       HF  u  n
u  pÍUXÍ R                  S5      nURB                  R)                  U RE                  UU5      5        MH     GMí     U$ )úRParse the Google-style docstring into its components.

:returns: parsed docstring
)ÚstyleNrJ   r`   r   r   z

r€   z\n\Sz^\s*zCan't infer indent from "Ú"Ú^z(?=\S)rS   zNo specification for "z": ")$r   r   ÚGOOGLErg   rh   rY   ÚsearchÚstartrf   Úshort_descriptionÚlenÚ
startswithÚblank_after_short_descriptionr†   Úblank_after_long_descriptionri   Úlong_descriptionÚlistÚfinditerÚrangeÚappendÚendr   Ú	enumerater…   r>   rU   Úitemsr   rb   r   r   r!   Úmetarp   rX   )rD   r\   Úretrd   Ú
desc_chunkÚ
meta_chunkÚpartsÚlong_desc_chunkÚmatchesÚsplitsÚjÚchunksr“   rž   rA   Úmeta_detailsÚunknown_metaÚchunkÚindent_matchÚindentÚpartÚ_reÚ	c_matchesÚc_splitss                           r$   ÚparseÚGoogleParser.parseÍ   s½  € ô
 œn×3Ñ3Ñ4ˆÞØˆJô ×Ò Ó%ˆð —‘×%Ñ% dÓ+ˆÞØ˜o §¡£Ð.ˆJØŸk™k›m˜oÐ.‰JàˆJØˆJð × Ñ   qÓ)ˆØ % a¡× 0¨DˆÔÜˆu‹:˜‹>Ø# A™hŸn¨"ˆOØ0?×0JÑ0JØó1ˆCÔ-ð 0?×/GÑ/GÈÓ/OˆCÔ,Ø#2×#8Ñ#8Ó#:×#B¸dˆCÔ ô �t—~‘~×.Ñ.¨zÓ:Ó;ˆÞØˆJØˆÜ”s˜7“| aÑ'Ö(ˆAØ�M‰M˜7™:Ÿ>™>Ó+¨W¸±U©^×-AÑ-AÓ-CÐDÖEñ )à�‰�w˜r‘{—‘Ó(¬#¨j«/Ð:Ô;ä“ˆÜ(¨Ö0‰OˆA‰|�Ø‘J×$Ñ$ QÓ'ˆEØŸM™MÓ)Ùð &¨CÐ0ˆLÜŸ9š9 W¨lÓ;ˆLØÑ'Ø+Ð,B¨l×.@Ñ.@Ó.BÐC�à(×.Ñ.¨tÓ4ˆF‹Mñ  1ö ØˆJð #ŸL™LŸN‰LˆE�5äŸ9š9 W¨eÓ4ˆLÞÜ Ð#=¸e¸WÀAÐ!FÓGÐGØ!×'Ñ'Ó)ˆFð �}‰}˜UÑ#×(Ñ(Ü×$Ñ$Ü×0Ñ0ð-ó ô ×'Ò'¨Ó.�Ø—‘—‘ × 0Ñ 0°°uÓ =Ô>Ùð ˜‘, Ñ*ˆCÜœRŸ[š[¨¨e¼2¿4¹4Ñ@ÓAˆIÞÜ Ð#9¸%¸ÀÀUÀGÈ1Ð!MÓNÐNØˆHÜœ3˜y›>¨AÑ-Ö.�Ø—‘ ¨1¡×!1Ñ!1Ó!3°Y¸qÀ1¹uÑ5E×5KÑ5KÓ5MÐ NÖOñ /à�O‰O˜Y r™]×.Ñ.Ó0´#°e³*Ð=Ô>Ü#,¨XÖ#6‘�‘<�EØ˜UÐ'×-Ñ-¨dÓ3�Ø—‘—‘ × 0Ñ 0°°uÓ =Ö>ô $7ñ3 +ð: ˆ
r#   )r>   rB   rY   )NT)r   r   r   r   r   ÚTÚOptionalÚListr&   rF   rC   Ústrr   rp   Ústaticmethodre   rj   rŠ   r   r´   r"   r   r#   r$   r<   r<   @   sÝ   † Ù-ð IMñØŸ
™
 1§6¡6¨'¡?Ñ3õò
ð"= ð "=¨Cð "=°Mô "=ðH ðC Gð C°3ð C¸=ó Có ðCð( ð)KØð)KØ"%ð)KØ-0ð)Kà	ó)Kó ð)KðV 7ô ðX˜!Ÿ*™* S™/ð X¨i÷ Xr#   r<   r\   r]   c                 ó4   • [        5       R                  U 5      $ )r�   )r<   r´   )r\   s    r$   r´   r´   (  s   € ô
 ‹>×Ñ Ó%Ð%r#   z    Ú	docstringÚrendering_styler¯   c                 ó˜  ^^^	^
• S[         R                  [        [        [        4   4UU	U4S jjm
S[
        S[         R                  [         R                     4U	U
4S jjn/ m	U R                  (       a  T	R                  U R                  5        U R                  (       a  T	R                  S5        U R                  (       a  T	R                  U R                  5        U R                  (       a  T	R                  S5        U" SU R                  =(       d    /  Vs/ s H  oDR                  S   S	:X  d  M  UPM     sn5        U" S
U R                  =(       d    /  Vs/ s H  oDR                  S   S:X  d  M  UPM     sn5        U" SU R                  =(       d    /  Vs/ s H  oDR                   (       a  M  UPM     sn5        U" SU R                  =(       d    /  Vs/ s H  oDR                   (       d  M  UPM     sn5        U" SU R"                  =(       d    / 5        U R$                  (       a_  U R                  (       dN  U R$                  nT	R                  U(       a  SOS5        T	R                  S['        T	S   5      -  5        T
" U5        U R(                   HÓ  n[+        U[        [        [        45      (       a  M%  T	R                  UR                  S   R-                  SS5      R/                  5       S-   5        UR0                  (       aM  UR0                  R3                  5        Vs/ s H  nTU-   PM
     nnT	R                  SR5                  U5      5        T	R                  S5        MÕ     T	(       a-  T	S   (       d#  T	R7                  5         T	(       a  T	S   (       d  M#  SR5                  T	5      $ s  snf s  snf s  snf s  snf s  snf )zü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
Úonec                 ó¨  >• Sn[        U [        5      (       a  XR                  =(       d    S-  nO,[        U [        5      (       a  XR                  =(       d    S-  n[        U [        5      (       a*  U R
                  (       a  T[        R                  :X  a  SOSnOSnU R                  (       a  U(       a  USU R                   U S3-  nO*U R                  (       a  XR                   U S3-  nOUS-  nTU-   nU R                  (       aX  T[        R                  :X  aD  ST T 3R                  U/U R                  R                  5       -   5      nTR                  U5        g U R                  (       aM  U R                  R                  5       tpEST T 3R                  US-   U-   /U-   5      nTR                  U5        g TR                  U5        g )	NrJ   r   r~   z (z):rI   r`   ra   )Ú
isinstancer   r�   r   Úreturn_namer‚   r   ÚCOMPACTrv   ru   ÚEXPANDEDrW   Ú
splitlinesr�   )	r¿   ÚheadÚoptionalÚbodyÚfirstro   r¯   r¥   r½   s	         €€€r$   Úprocess_oneÚcompose.<locals>.process_one=  s…  ø€ ð ˆä�cœ>×*Ñ*Ø—L‘L×& BÑ&‰DÜ˜Ô-×.Ñ.Ø—O‘O×) rÑ)ˆDä�cœ>×*Ñ*¨s¯¯ð #¤n×&<Ñ&<Ó<ñ à!ñ ð ˆHà�=�=žTØ�b˜Ÿ™˜¨ z°Ð4Ñ4‰DØ�]�]Ø—}‘}�o h Z¨qÐ1Ñ1‰Dà�C‰KˆDØ˜‰}ˆà�?�?˜´.×2IÑ2IÓIØ˜�x ˜xÐ(×-Ñ-Ø�˜Ÿ™×3Ñ3Ó5Ñ5óˆDð �L‰L˜ÕØ�_�_Ø Ÿ_™_×7Ñ7Ó9ˆNˆUØ˜�x ˜xÐ(×-Ñ-¨t°c©z¸EÑ/AÐ.BÀTÑ.IÓJˆDØ�L‰L˜Õà�L‰L˜Õr#   Únamert   c                 ó|   >• U(       a4  TR                  U 5        U H  nT" U5        M     TR                  S5        g g )NrJ   )r�   )rÌ   rt   Úargr¥   rÊ   s      €€r$   Úprocess_sectÚcompose.<locals>.process_sectd  s5   ø€ ÞØ�L‰L˜ÔÛ�Ù˜CÖ ñ à�L‰L˜Õð	 r#   rJ   zArgs:r   r*   zAttributes:r3   zReturns:zYields:zRaises:Ú-r€   Ú_rI   r`   )r¶   ÚUnionr   r   r   r¹   r¸   ÚAnyr”   r�   r—   r™   r˜   Úparamsrt   Úmany_returnsrw   r/   r8   r•   r¡   rÁ   ÚreplacerA   ru   rÅ   rW   Úpop)r¼   r½   r¯   rÏ   Úpr¢   r¡   ÚlÚlinesr¥   rÊ   s    ``      @@r$   ÚcomposerÜ   0  sð  û€ ð%Ü�W‰W”^Ô%5´ÐFÑG÷%ñ %ðNœ3ð ¤a§f¡f¬Q¯U©U¡m÷ ð ð €EØ×"×"Ø�‰�Y×0Ñ0Ô1Ø×.×.Ø�‰�RÔà×!×!Ø�‰�Y×/Ñ/Ô0Ø×-×-Ø�‰�RÔáØ˜Y×-Ñ-×3°Ð3ÓLÒ3˜·v±v¸a±yÀGÑ7K—!Ñ3ÑLôñ ØØ×$Ñ$×*¨Ð*ÓGÒ*ˆq¯f©f°Q©i¸;Ñ.F�Ñ*ÑGôñ
 ØØ×*Ñ*×0¨bÐ0ÓGÒ0ˆq¿½�Ñ0ÑGôñ
 Ø˜y×5Ñ5×;¸Ð;ÓNÒ;˜!¿~½~—AÑ;ÑNôñ �˜I×,Ñ,×2°Ô3à×× ×!7×!7Ø×ÑˆØ�‰¦#‘Y¨:Ô6Ø�‰�Sœ3˜u R™y›>Ñ)Ô*Ù�CÔà—”ˆÜØ”>Ô#3´_ÐE÷
ñ 
ñ Ø�‰�T—Y‘Y˜q‘\×)Ñ)¨#¨rÓ2×8Ñ8Ó:¸SÑ@ÔAØ××Ø)-×)9Ñ)9×)DÑ)DÔ)FÓGÒ)F A�V˜a”ZÑ)FˆEÐGØ�L‰L˜Ÿ™ 5Ó)Ô*Ø�‰�RÖñ ö ˜˜bŸ	Ø�	‰	Œö ˜˜bŸ	™	ð �9‰9�UÓÐùòO Mùò
 	Hùò
 	Hùò Oùò$ Hs6   ÄN3
Ä3N3
ÅN8
Å4N8
ÆN=
Æ3N=
ÇO
Ç2O
Ì(O))r   rg   rU   Útypingr¶   Úcollectionsr   r   Úenumr   Úcommonr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r&   rV   r„   r‡   rc   r    r   r!   r@   r<   r·   r¹   r´   rÃ   rÜ   r   r#   r$   Ú<module>rá      sÃ  ðÙ %ã Û 	Û ß /Ý ÷÷ ÷ ÷ ô$
/�'ô 
/ô‰j˜Ð(8Ó9ô ð ŸšÐ$FÓGÐ ØŸ
š
Ð#=Ó>Ð Ø—:’:Ð;Ó<Ð ñ ˆK˜ +×"6Ñ"6Ó7ÙˆF�G˜[×1Ñ1Ó2ÙˆL˜' ;×#7Ñ#7Ó8ÙˆH�g˜{×3Ñ3Ó4ÙˆH�h × 4Ñ 4Ó5ÙˆL˜( K×$8Ñ$8Ó9ÙˆH�h × 4Ñ 4Ó5ÙˆL˜+ {×';Ñ';Ó<ÙˆI�z ;×#7Ñ#7Ó8ÙˆJ˜
 K×$8Ñ$8Ó9ÙˆI�y +×"BÑ"BÓCÙˆH�h × @Ñ @ÓAðÐ ÷ eñ eðP&�—
‘
˜3‘ð & Iô &ð '5×&<Ñ&<ØñnØðnà#ðnð ðnð 	ö	nr#   