Ë
    >²Xjî4  ã                   ó^  — d Z ddlZddlZddlZddlmZmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZ  G d„ de	«      Z G d	„ d
 edd«      «      Z ej6                  d«      Z ej6                  d«      Z ej6                  d«      Z eddej>                  «       eddej>                  «       eddej>                  «       eddej>                  «       eddej>                  «       eddej>                  «       eddej>                  «       eddej>                  «       eddej@                  «       eddej@                  «       eddejB                  «       ed d!ejB                  «      gZ" G d"„ d#«      Z#d$ejH                  e%   d%efd&„Z&ejN                  d'fd(ed)ed*e%d%e%fd+„Z(y),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                   ó    — e Zd ZdZdZ	 dZ	 dZy)ÚSectionTypezTypes of sections.r   r   é   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚSINGULARÚMULTIPLEÚSINGULAR_OR_MULTIPLE© ó    ú]/var/www/html/content_generation/venv/lib/python3.12/site-packages/docstring_parser/google.pyr   r      s   „ Ùà€HØ%à€HØ#àÐØ.r    r   c                   ó   — e Zd ZdZy)ÚSectionzA docstring section.N)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            	       óä   — e Zd ZdZ	 ddej
                  ej                  e      fd„Zd„ Z	de
de
defd	„Zed
ede
defd„«       Zed
ede
de
defd„«       Zd
efd„Zdej
                  e
   defd„Zy)ÚGoogleParserz#Parser for Google-style docstrings.NÚsectionsc                 óŒ   — |st         }|D �ci c]  }|j                  |“Œ c}| _        || _        | j	                  «        yc c}w )zšSetup sections.

        :param sections: Recognized sections or None to defaults.
        :param title_colon: require colon after section title.
        N)ÚDEFAULT_SECTIONSÚtitler9   Útitle_colonÚ_setup)Úselfr9   r=   Úss       r!   Ú__init__zGoogleParser.__init__C   s@   € ñ Ü'ˆHÙ-5Ó6©X¨˜Ÿ™ !™¨XÑ6ˆŒØ&ˆÔØ�‰�ùò 7s   �Ac                 óÒ   — | j                   rd}nd}t        j                  ddj                  d„ | j                  D «       «      z   dz   |z   dz   t        j
                  ¬«      | _        y )	NÚ:Ú z^(Ú|c              3   ó(   K  — | ]
  }d |› d�–— Œ y­w)Ú(Ú)Nr   )Ú.0Úts     r!   Ú	<genexpr>z&GoogleParser._setup.<locals>.<genexpr>X   s   è ø€ Ð7© A˜˜1˜#˜Q”x©ùs   ‚rH   z	[ 	]*$©Úflags)r=   ÚreÚcompileÚjoinr9   ÚMÚ	titles_re)r?   Úcolons     r!   r>   zGoogleParser._setupQ   sh   € Ø×ÒØ‰EàˆEÜŸ™ØØ�h‰hÑ7¨¯ªÓ7Ó7ñ8àñð ñð ñ	ô
 —$‘$ô
ˆ�r    Útextr<   Úreturnc                 ój  — | j                   |   }|j                  t        j                  k(  rt        j                  |«      r|j                  t        j                  k(  r| j                  ||«      S d|vrt        d|›d�«      ‚|j                  dd«      \  }}|r1d|v r-|j                  dd«      \  }}|t        j                  |«      z   }|rT|d   dk(  r|dd n|}d|v r0|j                  dd«      \  }}|dz   t        j                  |«      z   }|j                  d«      }| j                  |||«      S )	z™Build docstring element.

        :param text: docstring element text
        :param title: title of section containing element
        :return:
        rC   zExpected a colon in Ú.r   Ú
r   Ú N)r9   Útyper   r   ÚMULTIPLE_PATTERNÚmatchr   Ú_build_single_metar   ÚsplitÚinspectÚcleandocÚstripÚ_build_multi_meta)r?   rT   r<   ÚsectionÚbeforeÚdescÚ
first_lineÚrests           r!   Ú_build_metazGoogleParser._build_meta_   s1  € ð —-‘- Ñ&ˆð �L‰LœK×<Ñ<Ò<Ü$×*Ñ*¨4Ô0Ø�\‰\œ[×1Ñ1Ò1Ø×*Ñ*¨7°DÓ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Ø! DÑ(¬7×+;Ñ+;¸DÓ+AÑA�Ø—:‘:˜dÓ#ˆDà×%Ñ% g¨v°tÓ<Ð<r    rc   re   c                 óž  — | j                   t        t        z  v r*t        | j                   g|d | j                   t        v ¬«      S | j                   t        v rt        | j                   g|d ¬«      S | j                   t        v rt        | j                   gd |¬«      S | j                   t        v rt        d«      ‚t        | j                   g|¬«      S )N©ÚargsÚdescriptionÚ	type_nameÚis_generator©rk   rl   rm   )rk   Úsnippetrl   zExpected paramenter name.©rk   rl   )Úkeyr
   r   r   r	   r   r   r   r   r   r   )rc   re   s     r!   r]   zGoogleParser._build_single_metaƒ   sº   € à�;‰;Ô*¬_Ñ<Ñ<Ü#Ø—k‘k�]Ø ØØ$Ÿ[™[¬OÐ;ô	ð ð �;‰;œ/Ñ)Ü"Ø—k‘k�]°Àôð ð �;‰;Ô+Ñ+Ü#Ø—k‘k�]¨D¸dôð ð �;‰;œ.Ñ(ÜÐ8Ó9Ð9Ü 7§;¡; -¸TÔBÐBr    rd   c                 ó”  — | j                   t        v r®t        j                  |«      }|rJ|j	                  dd«      \  }}|j                  d«      rd}|d d }n"|j                  d«      rd}|d d }n	d}n|d }}d }t        j                  |«      }|r|j	                  d«      nd }t        | j                   |g|||||¬	«      S | j                   t        t        z  v r+t        | j                   |g||| j                   t        v ¬
«      S | j                   t        v rt        | j                   |g||¬«      S t        | j                   |g|¬«      S )Nr   r   ú
, optionalTiöÿÿÿÚ?éÿÿÿÿF)rk   rl   Úarg_namerm   Úis_optionalÚdefaultrj   ro   rq   )rr   r   ÚGOOGLE_TYPED_ARG_REGEXr\   ÚgroupÚendswithÚGOOGLE_ARG_DESC_REGEXr   r
   r   r   r	   r   r   )rc   rd   re   r\   rw   rm   rx   ry   s           r!   rb   zGoogleParser._build_multi_meta˜   sR  € ð �;‰;œ.Ñ(Ü*×0Ñ0°Ó8ˆEÙØ&+§k¡k°!°QÓ&7Ñ#�˜)Ø×%Ñ% lÔ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                 óV   — || j                   |j                  <   | j                  «        y)zLAdd or replace a section.

        :param section: The new section.
        N)r9   r<   r>   )r?   rc   s     r!   Úadd_sectionzGoogleParser.add_sectionÄ   s   € ð (/ˆ�‰�g—m‘mÑ$Ø�‰�r    c                 ó<  — t        t        j                  ¬«      }|s|S t        j                  |«      }| j
                  j                  |«      }|r'|d|j                  «        }||j                  «       d }n|}d}|j                  dd«      }|d   xs d|_	        t        |«      dkD  rN|d   xs d}|j                  d«      |_        |j                  d«      |_        |j                  «       xs d|_        t#        | j
                  j%                  |«      «      }|s|S g }	t'        t        |«      dz
  «      D ]:  }
|	j)                  ||
   j+                  «       ||
dz      j                  «       f«       Œ< |	j)                  |d   j+                  «       t        |«      f«       t-        «       }t/        |	«      D ]o  \  }
\  }}||
   j1                  d«      }|| j2                  vrŒ,||| }t5        j                  d	|«      }|�|d|j                  «        }|j                  d«      ||<   Œq |s|S |j7                  «       D �]Ú  \  }}t5        j                  d
|«      }|st9        d|› d�«      ‚|j1                  «       }| j2                  |   j:                  t<        j>                  t<        j@                  fv rAt        j                  |«      }|jB                  j)                  | jE                  ||«      «       Œ¸d|z   dz   }t#        t5        j$                  ||t4        jF                  ¬«      «      }|st9        d|› d|› d�«      ‚g }t'        t        |«      dz
  «      D ]:  }
|j)                  ||
   j+                  «       ||
dz      j                  «       f«       Œ< |j)                  |d   j+                  «       t        |«      f«       t/        |«      D ]G  \  }
\  }}||| j                  d«      }|jB                  j)                  | jE                  ||«      «       ŒI �ŒÝ |S )zbParse the Google-style docstring into its components.

        :returns: parsed docstring
        )ÚstyleNrD   rX   r   r   z

rv   z\n\Sz^\s*zCan't infer indent from "Ú"Ú^z(?=\S)rL   zNo specification for "z": ")$r   r   ÚGOOGLEr_   r`   rR   ÚsearchÚstartr^   Úshort_descriptionÚlenÚ
startswithÚblank_after_short_descriptionr|   Úblank_after_long_descriptionra   Úlong_descriptionÚlistÚfinditerÚrangeÚappendÚendr   Ú	enumerater{   r9   rN   Úitemsr   rZ   r   r   r   Úmetarh   rQ   )r?   rT   Úretr\   Ú
desc_chunkÚ
meta_chunkÚpartsÚlong_desc_chunkÚmatchesÚsplitsÚjÚchunksr†   r‘   r<   Úmeta_detailsÚunknown_metaÚchunkÚindent_matchÚindentÚpartÚ_reÚ	c_matchesÚc_splitss                           r!   ÚparsezGoogleParser.parseÍ   sÑ  € ô
 œn×3Ñ3Ô4ˆÙØˆJô ×Ñ Ó%ˆð —‘×%Ñ% dÓ+ˆÙØ˜o §¡£Ð.ˆJØ˜eŸ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 1™:Ÿ>™>Ó+¨W°Q¸±U©^×-AÑ-AÓ-CÐDÕEð )à�‰�w˜r‘{—‘Ó(¬#¨j«/Ð:Ô;ä“ˆÜ(¨Ö0‰OˆA‰|��sØ˜A‘J×$Ñ$ QÓ'ˆEØ˜DŸM™MÑ)Øð & e¨CÐ0ˆLÜŸ9™9 W¨lÓ;ˆLØÐ'Ø+Ð,B¨l×.@Ñ.@Ó.BÐC�à(×.Ñ.¨tÓ4ˆF�5Š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˜3Ø˜U 3Ð'×-Ñ-¨dÓ3�Ø—‘—‘ × 0Ñ 0°°uÓ =Õ>ò $7ð3 +ð: ˆ
r    )NT)r   r   r   r   ÚTÚOptionalÚListr#   rA   r>   Ústrr   rh   Ústaticmethodr]   rb   r   r   r§   r   r    r!   r8   r8   @   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    r8   rT   rU   c                 ó4   — t        «       j                  | «      S )zZParse the Google-style docstring into its components.

    :returns: parsed docstring
    )r8   r§   )rT   s    r!   r§   r§   (  s   € ô
 ‹>×Ñ Ó%Ð%r    z    Ú	docstringÚrendering_styler¢   c                 óž  ‡‡‡	‡
— dt         j                  t        t        t        f   fˆˆ	ˆfd„Š
dt
        dt         j                  t         j                     fˆ	ˆ
fd„}g Š	| j                  r‰	j                  | j                  «       | j                  r‰	j                  d«       | j                  r‰	j                  | j                  «       | j                  r‰	j                  d«        |d| j                  xs g D �cg c]  }|j                  d   d	k(  sŒ|‘Œ c}«        |d
| j                  xs g D �cg c]  }|j                  d   dk(  sŒ|‘Œ c}«        |d| j                  xs g D �cg c]  }|j                   rŒ|‘Œ c}«        |d| j                  xs g D �cg c]  }|j                   sŒ|‘Œ c}«        |d| j"                  xs g «       | j$                  rU| j                  sI| j$                  }‰	j                  |rdnd«       ‰	j                  dt'        ‰	d   «      z  «        ‰
|«       | j(                  D ]Ä  }t+        |t        t        t        f«      rŒ‰	j                  |j                  d   j-                  dd«      j/                  «       dz   «       |j0                  rJ|j0                  j3                  «       D �cg c]  }‰|z   ‘Œ	 }}‰	j                  dj5                  |«      «       ‰	j                  d«       ŒÆ ‰	r‰	d   s‰	j7                  «        ‰	r‰	d   sŒdj5                  ‰	«      S c c}w c c}w c c}w c c}w c c}w )a  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                 ó>  •— d}t        | t        «      r|| j                  xs dz  }n#t        | t        «      r|| j                  xs dz  }t        | t        «      r$| j
                  r‰t        j                  k(  rdnd}nd}| j                  r|r|d| j                  › |› d�z  }n&| j                  r|| j                  › |› d�z  }n|dz  }‰|z   }| j                  rW‰t        j                  k(  rDd‰› ‰› �j                  |g| j                  j                  «       z   «      }‰j                  |«       y | j                  rN| j                  j                  «       ^}}d‰› ‰› �j                  |dz   |z   g|z   «      }‰j                  |«       y ‰j                  |«       y )	NrD   ru   rt   z (z):rC   rX   rY   )Ú
isinstancer   rw   r   Úreturn_namerx   r   ÚCOMPACTrm   rl   ÚEXPANDEDrP   Ú
splitlinesr�   )	r±   ÚheadÚoptionalÚbodyÚfirstrg   r¢   r˜   r¯   s	         €€€r!   Úprocess_onezcompose.<locals>.process_one=  s„  ø€ ð ˆä�cœ>Ô*Ø�C—L‘LÒ& BÑ&‰DÜ˜Ô-Ô.Ø�C—O‘OÒ) rÑ)ˆDä�cœ>Ô*¨s¯ªð #¤n×&<Ñ&<Ò<ñ à!ñ ð ˆHà�=Š=™TØ�b˜Ÿ™˜¨ z°Ð4Ñ4‰DØ�]Š]Ø�s—}‘}�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�TØ˜�x ˜xÐ(×-Ñ-¨t°c©z¸EÑ/AÐ.BÀTÑ.IÓJˆDØ�L‰L˜Õà�L‰L˜Õr    Únamerk   c                 ón   •— |r2‰j                  | «       |D ]
  } ‰|«       Œ ‰j                  d«       y y )NrD   )r�   )r½   rk   Úargr˜   r¼   s      €€r!   Úprocess_sectzcompose.<locals>.process_sectd  s5   ø€ ÙØ�L‰L˜ÔÛ�Ù˜CÕ ð à�L‰L˜Õð	 r    rD   zArgs:r   r&   zAttributes:r/   zReturns:zYields:zRaises:Ú-rv   Ú_rC   rX   )r¨   ÚUnionr   r   r   r«   rª   ÚAnyr‡   r�   rŠ   rŒ   r‹   Úparamsrk   Úmany_returnsrn   r+   r4   rˆ   r”   r³   Úreplacer<   rl   r·   rP   Ú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˜°q·v±v¸a±yÀGÓ7K’!Ð3ÑLôñ ØØ×$Ñ$Ò*¨Ð*ÓGÑ*ˆq¨a¯f©f°Q©i¸;Ó.FŠÐ*ÑGôñ
 ØØ×*Ñ*Ò0¨bÐ0ÓGÑ0ˆq¸¿»ŠÐ0ÑGôñ
 Ø˜y×5Ñ5Ò;¸Ð;ÓNÑ;˜!¸q¿~»~’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   Ã<L6
ÄL6
Ä4L;
ÅL;
Å,M 
Å>M 
ÆM
Æ0M
ËM
))r   r_   rN   Útypingr¨   Úcollectionsr   r   Úenumr   Úcommonr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r#   rO   rz   r}   r[   r   r   r   r;   r8   r©   r«   r§   rµ   rÌ   r   r    r!   Ú<module>rÑ      sÉ  ðÙ %ã Û 	Û ß /Ý ÷÷ ÷ ÷ ô$
/�'ô 
/ô‰j˜Ð(8Ó9ô ð $˜Ÿ™Ð$FÓGÐ Ø"˜Ÿ
™
Ð#=Ó>Ð Ø�2—:‘:Ð;Ó<Ð ñ ˆ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    