§
    ãŽ’j#G  ã            	       óÊ  — d Z ddlZddlZddlZddl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 dZdej        dej        fd„Zd	edej        e         fd
„Z ej        dej        ¬¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de ¦  «        Z" G d„ de ¦  «        Z# G d„ de ¦  «        Z$ G d„ de$¦  «        Z% G d „ d!e!¦  «        Z& G d"„ d#e¦  «        Z'g  e"d$d%¦  «        ‘ e"d&d%¦  «        ‘ e"d'd%¦  «        ‘ e"d(d%¦  «        ‘ e"d)d*¦  «        ‘ e"d+d*¦  «        ‘ e"d,d*¦  «        ‘ e"d-d*¦  «        ‘ e"d.d/¦  «        ‘ e"d0d/¦  «        ‘ e#d1d2¦  «        ‘ e#d3d2¦  «        ‘ e#d4d5¦  «        ‘ e#d6d5¦  «        ‘ e"d7d8¦  «        ‘ e"d9d8¦  «        ‘ e$d:d;¦  «        ‘ e$d<d;¦  «        ‘ e%d=d>¦  «        ‘ e%d?d>¦  «        ‘ e'd@dA¦  «        ‘ e'dBdA¦  «        ‘ edCdD¦  «        ‘ edEdD¦  «        ‘ edFdG¦  «        ‘ edHdG¦  «        ‘ edIdJ¦  «        ‘ edKdJ¦  «        ‘ edLdM¦  «        ‘ edNdM¦  «        ‘ e&dOdP¦  «        ‘Z( G dQ„ dR¦  «        Z)dSej        e         de	fdT„Z*ej+        dUfdVe	dWedXedefdY„Z,dS )[z_Numpydoc-style docstring parsing.

:see: https://numpydoc.readthedocs.io/en/latest/format.html
é    N)Údedenté   )	Ú	DocstringÚDocstringDeprecatedÚDocstringExampleÚDocstringMetaÚDocstringParamÚDocstringRaisesÚDocstringReturnsÚDocstringStyleÚRenderingStyleÚiterableÚreturnc                 ó~   — t          j        | ¦  «        \  }}t          |d ¦  «         t          j        |||¬¦  «        S )N)Ú	fillvalue)Ú	itertoolsÚteeÚnextÚzip_longest)r   ÚendÚleftÚrights       úGC:\Projects\DSCons\.venv\Lib\site-packages\docstring_parser\numpydoc.pyÚ	_pairwiser      s=   € Ý”- Ñ)Ô)�K€Dˆ%Ýˆ�ÑÔÐÝÔ   u¸Ð<Ñ<Ô<Ð<ó    Ústringc                 óX   — |                       ¦   «         } t          | ¦  «        dk    r| S d S )Nr   )ÚstripÚlen)r   s    r   Ú
_clean_strr       s(   € Ø�\Š\‰^Œ^€FÝ
ˆ6�{„{�Q‚€ØˆØˆ4r   z	^[^\s].*$©Úflagsz(^(?P<name>.*?)(?:\s*:\s*(?P<type>.*?))?$z)(?P<type>.*?)(?:, optional|\(optional\))$zI(?P<type>.*?)(?:, default|\(default\))(?: | |=| = |= |: |)*(?P<value>.*)$z`(?<!\S)[Dd]efault(?:s to |(?:\s*(?:is|[=:])\s*|\s+))(?P<value>(?:['\"]).*?(?:['\"])|[\w\-\.]*\w)z(^(?:(?P<name>.*?)\s*:\s*)?(?P<type>.*?)$c                   óh   — e Zd ZdZdededdfd„Zedefd„¦   «         Zdedej	        e
         fd	„ZdS )
ÚSectiona‡  Numpydoc section parser.

    :param title: section title. For most sections, this is a heading like
                  "Parameters" which appears on its own line, underlined by
                  en-dashes ('-') on the following line.
    :param key: meta key string. In the parsed ``DocstringMeta`` instance this
                will be the first element of the ``args`` attribute list.
    ÚtitleÚkeyr   Nc                 ó"   — || _         || _        d S ©N)r%   r&   )Úselfr%   r&   s      r   Ú__init__zSection.__init__I   s   € ØˆŒ
ØˆŒˆˆr   c                 óL   — dt          | j        ¦  «        z  }d| j        › d|› d�S )z§Regular expression pattern matching this section's header.

        This pattern will match this instance's ``title`` attribute in
        an anonymous group.
        ú-z^(z)\s*?\nz\s*$)r   r%   )r)   Údashess     r   Útitle_patternzSection.title_patternM   s1   € ð •s˜4œ:‘”Ñ&ˆØ4�T”ZÐ4Ð4¨Ð4Ð4Ð4Ð4r   Útextc              #   óV   K  — t          | j        gt          |¦  «        ¬¦  «        V — dS )zÁParse ``DocstringMeta`` objects from the body of this section.

        :param text: section body text. Should be cleaned with
                     ``inspect.cleandoc`` before parsing.
        )ÚdescriptionN)r   r&   r    )r)   r/   s     r   ÚparsezSection.parseW   s3   è è € õ ˜TœX˜JµJ¸tÑ4DÔ4DÐEÑEÔEÐEÐEÐEÐEÐEr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr*   Úpropertyr.   ÚTÚIterabler   r2   © r   r   r$   r$   ?   sŸ   € € € € € ðð ð˜cð ¨ð °ð ð ð ð ð ð5˜sð 5ð 5ð 5ñ „Xð5ðF˜#ð F !¤*¨]Ô";ð Fð Fð Fð Fð Fð Fr   r$   c                   óL   — e Zd ZdZdededefd„Zdedej        e         fd„Z	dS )	Ú
_KVSectionzÚBase parser for numpydoc sections with key-value syntax.

    E.g. sections that look like this:
        key
            value
        key2 : type
            values can also span...
            ... multiple lines
    r&   Úvaluer   c                 ó   — d S r(   r;   ©r)   r&   r>   s      r   Ú_parse_itemz_KVSection._parse_itemk   s   € Øˆr   r/   c              #   óJ  K  — t          t                               |¦  «        ¦  «        D ]x\  }}|                     ¦   «         }|�|                     ¦   «         nd }|||…         }|                      |                     ¦   «         t          j        |¦  «        ¬¦  «        V — Œyd S )N)r&   r>   )	r   ÚKV_REGEXÚfinditerr   ÚstartrA   ÚgroupÚinspectÚcleandoc)r)   r/   ÚmatchÚ
next_matchrE   r   r>   s          r   r2   z_KVSection.parsen   s³   è è € Ý!*­8×+<Ò+<¸TÑ+BÔ+BÑ!CÔ!Cð 	ð 	ÑˆE�:Ø—I’I‘K”KˆEØ(2Ð(>�*×"Ò"Ñ$Ô$Ð$ÀDˆCØ˜˜s˜”OˆEØ×"Ò"Ø—K’K‘M”M­Ô)9¸%Ñ)@Ô)@ð #ñ ô ð ð ð ð ð		ð 	r   N)
r3   r4   r5   r6   r7   r   rA   r9   r:   r2   r;   r   r   r=   r=   `   sp   € € € € € ðð ð˜sð ¨3ð °=ð ð ð ð ð˜#ð  !¤*¨]Ô";ð ð ð ð ð ð r   r=   c                   ó.   — e Zd ZdZedefd„¦   «         ZdS )Ú_SphinxSectionz®Base parser for numpydoc sections with sphinx-style syntax.

    E.g. sections that look like this:
        .. title:: something
            possibly over multiple lines
    r   c                 ó   — d| j         › d�S )Nz	^\.\.\s*(z)\s*::©r%   ©r)   s    r   r.   z_SphinxSection.title_pattern€   s   € à.˜DœJÐ.Ð.Ð.Ð.r   N)r3   r4   r5   r6   r8   r7   r.   r;   r   r   rL   rL   x   sE   € € € € € ðð ð ð/˜sð /ð /ð /ñ „Xð/ð /ð /r   rL   c                   ó&   — e Zd ZdZdededefd„ZdS )ÚParamSectionzíParser for numpydoc parameter sections.

    E.g. any section that looks like this:
        arg_name
            arg_description
        arg_2 : type, optional
            descriptions can also span...
            ... multiple lines
    r&   r>   r   c                 ó|  — t                                |¦  «        }d x}x}x}}|�ª|                     d¦  «        }|                     d¦  «        }|�~t                               |¦  «        }|�|                     d¦  «        }d}nd}t                               |¦  «        }	|	�,d}|	                     d¦  «        }|	                     d¦  «        }t          |¦  «        dk    r3|€1t                               |¦  «        }	|	�|	                     d¦  «        }t          | j	        |gt          |¦  «        ||||¬¦  «        S )NÚnameÚtypeTFr>   r   )Úargsr1   Úarg_nameÚ	type_nameÚis_optionalÚdefault)ÚPARAM_KEY_REGEXrI   rF   ÚPARAM_OPTIONAL_REGEXÚPARAM_DEFAULT_REGEXr   ÚPARAM_DEFAULT_REGEX_IN_DESCÚsearchr	   r&   r    )
r)   r&   r>   rI   rV   rW   rX   rY   Úoptional_matchÚdefault_matchs
             r   rA   zParamSection._parse_item�   sL  € Ý×%Ò% cÑ*Ô*ˆØ7;Ð;ˆÐ;�9Ð;˜{¨WØÐØ—{’{ 6Ñ*Ô*ˆHØŸš FÑ+Ô+ˆIØÐ$Ý!5×!;Ò!;¸IÑ!FÔ!F�Ø!Ð-Ø .× 4Ò 4°VÑ <Ô <�IØ"&�K�Kà"'�Kå 3× 9Ò 9¸)Ñ DÔ D�Ø Ð,Ø"&�KØ -× 3Ò 3°FÑ ;Ô ;�IØ+×1Ò1°'Ñ:Ô:�Gõ ˆu‰:Œ:˜Š>ˆ>˜g˜oÝ7×>Ò>¸uÑEÔEˆMØÐ(Ø'×-Ò-¨gÑ6Ô6�åØ”(˜HÐ%Ý" 5Ñ)Ô)ØØØ#Øð
ñ 
ô 
ð 	
r   N)r3   r4   r5   r6   r7   r	   rA   r;   r   r   rQ   rQ   …   sG   € € € € € ðð ð"
˜sð "
¨3ð "
°>ð "
ð "
ð "
ð "
ð "
ð "
r   rQ   c                   ó&   — e Zd ZdZdededefd„ZdS )ÚRaisesSectionz¡Parser for numpydoc raises sections.

    E.g. any section that looks like this:
        ValueError
            A description of what might raise ValueError
    r&   r>   r   c                 óx   — t          | j        |gt          |¦  «        t          |¦  «        dk    r|nd ¬¦  «        S )Nr   )rU   r1   rW   )r
   r&   r    r   r@   s      r   rA   zRaisesSection._parse_item½   sB   € ÝØ”(˜C�Ý" 5Ñ)Ô)Ý  ™XœX¨š\˜\�c�c¨tð
ñ 
ô 
ð 	
r   N)r3   r4   r5   r6   r7   r
   rA   r;   r   r   rb   rb   µ   sG   € € € € € ðð ð
˜sð 
¨3ð 
°?ð 
ð 
ð 
ð 
ð 
ð 
r   rb   c                   ó*   — e Zd ZdZdZdededefd„ZdS )ÚReturnsSectionzñParser for numpydoc returns sections.

    E.g. any section that looks like this:
        return_name : type
            A description of this returned value
        another_type
            Return names are optional, types are required
    Fr&   r>   r   c                 óð   — t                                |¦  «        }|�+|                     d¦  «        }|                     d¦  «        }nd }d }t          | j        gt          |¦  «        || j        |¬¦  «        S )NrS   rT   )rU   r1   rW   Úis_generatorÚreturn_name)ÚRETURN_KEY_REGEXrI   rF   r   r&   r    rg   )r)   r&   r>   rI   rh   rW   s         r   rA   zReturnsSection._parse_itemÑ   s~   € Ý ×&Ò& sÑ+Ô+ˆØÐØŸ+š+ fÑ-Ô-ˆKØŸš FÑ+Ô+ˆIˆIàˆKØˆIåØ”(�Ý" 5Ñ)Ô)ØØÔ*Ø#ð
ñ 
ô 
ð 	
r   N)r3   r4   r5   r6   rg   r7   r   rA   r;   r   r   re   re   Å   sO   € € € € € ðð ð €Lð
˜sð 
¨3ð 
Ð3Cð 
ð 
ð 
ð 
ð 
ð 
r   re   c                   ó   — e Zd ZdZdZdS )ÚYieldsSectionz0Parser for numpydoc generator "yields" sections.TN)r3   r4   r5   r6   rg   r;   r   r   rk   rk   ã   s   € € € € € Ø:Ð:à€L€L€Lr   rk   c                   ó8   — e Zd ZdZdedej        e         fd„ZdS )ÚDeprecationSectionz3Parser for numpydoc "deprecation warning" sections.r/   r   c              #   óÜ   K  — |                      dd¬¦  «        d d gz   ^}}}|�!t          t          j        |¦  «        ¦  «        }t	          | j        g|t          |¦  «        ¬¦  «        V — d S )Nú
r   )ÚsepÚmaxsplit)rU   r1   Úversion)Úsplitr    rG   rH   r   r&   )r)   r/   rr   ÚdescÚ_s        r   r2   zDeprecationSection.parseì   s‡   è è € Ø ŸJšJ¨4¸!˜JÑ<Ô<ÀÀd¸|ÑKÐˆ�˜àÐÝ�gÔ.¨tÑ4Ô4Ñ5Ô5ˆDå!Ø”(�¨µzÀ'Ñ7JÔ7Jð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
r   N)	r3   r4   r5   r6   r7   r9   r:   r   r2   r;   r   r   rm   rm   é   sD   € € € € € Ø=Ð=ð
˜#ð 
 !¤*Ð-@Ô"Að 
ð 
ð 
ð 
ð 
ð 
r   rm   c                   ó8   — e Zd ZdZdedej        e         fd„ZdS )ÚExamplesSectiona·  Parser for numpydoc examples sections.

    E.g. any section that looks like this:
        >>> import numpy.matlib
        >>> np.matlib.empty((2, 2))    # filled with random data
        matrix([[  6.76425276e-320,   9.79033856e-307], # random
                [  7.39337286e-309,   3.22135945e-309]])
        >>> np.matlib.empty((2, 2), dtype=int)
        matrix([[ 6600475,        0], # random
                [ 6586976, 22740995]])
    r/   r   c              #   ó,  K  — t          |¦  «                             ¦   «                              ¦   «         }|rÜg }g }|rF|d                              d¦  «        sn*|                     |                     d¦  «        ¦  «         |°F|rF|d                              d¦  «        rn*|                     |                     d¦  «        ¦  «         |°Ft          | j        g|rd                     |¦  «        ndd                     |¦  «        ¬¦  «        V — |°ÚdS dS )zÄParse ``DocstringExample`` objects from the body of this section.

        :param text: section body text. Should be cleaned with
                     ``inspect.cleandoc`` before parsing.
        r   z>>>ro   N)Úsnippetr1   )	r   r   Ú
splitlinesÚ
startswithÚappendÚpopr   r&   Újoin)r)   r/   ÚlinesÚsnippet_linesÚdescription_liness        r   r2   zExamplesSection.parse  sK  è è € õ �t‘”×"Ò"Ñ$Ô$×/Ò/Ñ1Ô1ˆØð 	ØˆMØ "ÐØð 3Ø˜Q”x×*Ò*¨5Ñ1Ô1ð ØØ×$Ò$ U§Y¢Y¨q¡\¤\Ñ2Ô2Ð2ð ð 3ð ð 7Ø˜”8×&Ò& uÑ-Ô-ð ØØ!×(Ò(¨¯ª°1©¬Ñ6Ô6Ð6ð ð 7õ #Ø”�
Ø4AÐK˜Ÿ	š	 -Ñ0Ô0Ð0ÀtØ ŸIšIÐ&7Ñ8Ô8ðñ ô ð ð ð ð ð 	ð 	ð 	ð 	ð 	r   N)	r3   r4   r5   r6   r7   r9   r:   r   r2   r;   r   r   rw   rw   ÷   sG   € € € € € ð
ð 
ð˜#ð  !¤*¨]Ô";ð ð ð ð ð ð r   rw   Ú
ParametersÚparamÚParamsÚ	ArgumentsÚArgsúOther ParametersÚother_paramzOther ParamszOther Argumentsz
Other ArgsÚReceivesÚreceivesÚReceiveÚRaisesÚraisesÚRaiseÚWarnsÚwarnsÚWarnÚ
AttributesÚ	attributeÚ	AttributeÚReturnsÚreturnsÚReturnÚYieldsÚyieldsÚYieldÚExamplesÚexamplesÚExampleÚWarningsÚwarningsÚWarningzSee AlsoÚsee_alsoÚRelatedÚNotesÚnotesÚNoteÚ
ReferencesÚ
referencesÚ	ReferenceÚ
deprecatedÚdeprecationc                   óˆ   — e Zd ZdZddej        ej        eef                  fd„Z	d„ Z
defd„Zdej        e         d	efd
„ZdS )ÚNumpydocParserz%Parser for numpydoc-style docstrings.NÚsectionsc                 ób   — |pt           }d„ |D ¦   «         | _        |                      ¦   «          dS )z[Setup sections.

        :param sections: Recognized sections or None to defaults.
        c                 ó   — i | ]
}|j         |“ŒS r;   rN   ©Ú.0Úss     r   ú
<dictcomp>z+NumpydocParser.__init__.<locals>.<dictcomp>I  s   € Ð6Ð6Ð6¨˜œ !Ð6Ð6Ð6r   N)ÚDEFAULT_SECTIONSr­   Ú_setup)r)   r­   s     r   r*   zNumpydocParser.__init__C  s5   € ð
 Ð/Õ/ˆØ6Ð6¨XÐ6Ñ6Ô6ˆŒØ�Š‰Œˆˆˆr   c                 ó¸   — t          j        d                     d„ | j                             ¦   «         D ¦   «         ¦  «        t           j        ¬¦  «        | _        d S )Nú|c              3   ó$   K  — | ]}|j         V — Œd S r(   )r.   r°   s     r   ú	<genexpr>z(NumpydocParser._setup.<locals>.<genexpr>N  s$   è è € ÐFÐF¨!�a”oÐFÐFÐFÐFÐFÐFr   r!   )ÚreÚcompiler~   r­   ÚvaluesÚMÚ	titles_rerO   s    r   rµ   zNumpydocParser._setupL  sO   € ÝœØ�IŠIÐFÐF¨t¬}×/CÒ/CÑ/EÔ/EÐFÑFÔFÑFÔFÝ”$ð
ñ 
ô 
ˆŒˆˆr   Úsectionc                 óL   — || j         |j        <   |                      ¦   «          dS )zLAdd or replace a section.

        :param section: The new section.
        N)r­   r%   rµ   )r)   r¿   s     r   Úadd_sectionzNumpydocParser.add_sectionR  s#   € ð (/ˆŒ�g”mÑ$Ø�Š‰Œˆˆˆr   r/   r   c                 óÊ  — t          t          j        ¬¦  «        }|s|S t          j        |¦  «        }| j                             |¦  «        }|r9|d|                     ¦   «         …         }||                     ¦   «         d…         }n|}d}|                     dd¦  «        }|d         pd|_	        t          |¦  «        dk    rY|d         pd}|                     d¦  «        |_        |                     d¦  «        |_        |                     ¦   «         pd|_        t#          | j                             |¦  «        ¦  «        D ]ž\  }}t'          d„ |                     ¦   «         D ¦   «         ¦  «        }	| j        |	         }
|                     ¦   «         }|�|                     ¦   «         nd}|j                             |
                     |||…         ¦  «        ¦  «         ŒŸ|S )	zaParse the numpy-style docstring into its components.

        :returns: parsed docstring
        )ÚstyleNÚ ro   r   r   z

c              3   ó   K  — | ]}|®|V — Œ	d S r(   r;   )r±   Úgs     r   r¹   z'NumpydocParser.parse.<locals>.<genexpr>|  s"   è è € ÐDÐD˜q°a°m˜°m°m°m°mÐDÐDr   )r   r   ÚNUMPYDOCrG   rH   r¾   r^   rE   rs   Úshort_descriptionr   r{   Úblank_after_short_descriptionÚendswithÚblank_after_long_descriptionr   Úlong_descriptionr   rD   r   Úgroupsr­   r   ÚmetaÚextendr2   )r)   r/   ÚretrI   Ú
desc_chunkÚ
meta_chunkÚpartsÚlong_desc_chunkÚ	nextmatchr%   ÚfactoryrE   r   s                r   r2   zNumpydocParser.parse[  sÔ  € õ
 �nÔ5Ð6Ñ6Ô6ˆØð 	ØˆJõ Ô Ñ%Ô%ˆð ”×%Ò% dÑ+Ô+ˆØð 	Ø˜o §¢¡¤˜oÔ.ˆJØ˜eŸkšk™mœm˜o˜oÔ.ˆJˆJàˆJØˆJð × Ò   qÑ)Ô)ˆØ % a¤Ð 0¨DˆÔÝˆu‰:Œ:˜Š>ˆ>Ø# Aœh˜n¨"ˆOØ0?×0JÒ0JØñ1ô 1ˆCÔ-ð 0?×/GÒ/GÈÑ/OÔ/OˆCÔ,Ø#2×#8Ò#8Ñ#:Ô#:Ð#B¸dˆCÔ å )¨$¬.×*AÒ*AÀ*Ñ*MÔ*MÑ NÔ Nð 	Bð 	BÑˆE�9ÝÐDÐD E§L¢L¡N¤NÐDÑDÔDÑDÔDˆEØ”m EÔ*ˆGð —I’I‘K”KˆEØ'0Ð'<�)—/’/Ñ#Ô#Ð#À$ˆCØŒH�OŠO˜GŸMšM¨*°U¸3°YÔ*?Ñ@Ô@ÑAÔAÐAÐAàˆ
r   r(   )r3   r4   r5   r6   r9   ÚOptionalÚDictr7   r$   r*   rµ   rÁ   r   r2   r;   r   r   r¬   r¬   @  sž   € € € € € Ø/Ð/ðð  ¤¨A¬F°3¸°<Ô,@Ô!Að ð ð ð ð
ð 
ð 
ð 7ð ð ð ð ð*˜!œ* Sœ/ð *¨ið *ð *ð *ð *ð *ð *r   r¬   r/   c                 óD   — t          ¦   «                              | ¦  «        S )zYParse the numpy-style docstring into its components.

    :returns: parsed docstring
    )r¬   r2   )r/   s    r   r2   r2   ˆ  s   € õ
 ÑÔ×!Ò! $Ñ'Ô'Ð'r   z    Ú	docstringÚrendering_styleÚindentc           	      ó†  ‡‡
‡— 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
        r‰
 	                    d¦  «         | j        r~d}| j        j        r|d| j        j        › �z  }| j        j        r| j        j                             ¦   «         }ng }d	‰› �}‰
 	                    |                     |g|z   ¦  «        ¦  «         | j        r‰
 	                    | j        ¦  «         | j        r‰
 	                    d¦  «          |d
d„ | j        pg D ¦   «         ¦  «          |dd„ | j        pg D ¦   «         ¦  «          |dd„ | j        pg D ¦   «         ¦  «          |dd„ | j        pg D ¦   «         ¦  «         | j        r]| j        sV| j        }‰
 	                    |rdnd¦  «         ‰
 	                    dt+          ‰
d         ¦  «        z  ¦  «          ‰|¦  «          |dd„ | j        pg D ¦   «         ¦  «          |dd„ | j        pg D ¦   «         ¦  «          |dd„ | j        pg D ¦   «         ¦  «          |dd„ | j        pg D ¦   «         ¦  «         t+          | j        ¦  «        dk    r‹‰
 	                    d¦  «         ‰
 	                    d¦  «         ‰
 	                    d¦  «         | j        D ]D}|j        r‰
 	                    |j        ¦  «         |j        r‰
 	                    |j        ¦  «         ŒE| j        D ]Ý}	t5          |	t6          t          t          t          t8          f¦  «        rŒ1‰
 	                    d¦  «         ‰
 	                    |	j        d                              dd¦  «                             ¦   «         ¦  «         ‰
 	                    dt+          |	j        d         ¦  «        z  ¦  «         |	j        r‰
 	                    |	j        ¦  «         ŒÞd	                     ‰
¦  «        S ) 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                 ó&  •— t          | t          ¦  «        r| j        }nt          | t          ¦  «        r| j        }nd }| j        r|r|d| j        › �z  }n| j        r| j        }n|sd}t          | t          ¦  «        r.| j        dvr|d| j        › �z  }n| j        s| j        dk    r|dz  }| j        rJd‰› � 	                    |g| j         
                    ¦   «         z   ¦  «        }‰                     |¦  «         d S ‰                     |¦  «         d S )Nz : rÄ   )NÚNonez
, default=rà   z
, optionalro   )Ú
isinstancer	   rV   r   rh   rW   rY   rX   r1   r~   rz   r|   )rÞ   ÚheadÚbodyrÜ   rÓ   s      €€r   Úprocess_onezcompose.<locals>.process_onež  sI  ø€ õ �c�>Ñ*Ô*ð 	Ø”<ˆDˆDÝ˜Õ-Ñ.Ô.ð 	Ø”?ˆDˆDàˆDàŒ=ð 	˜Tð 	ØÐ)˜#œ-Ð)Ð)Ñ)ˆDˆDØŒ]ð 	Ø”=ˆDˆDØð 	ØˆDõ
 �c�>Ñ*Ô*ð 	%ØŒ{ .Ð0Ð0ØÐ2 S¤[Ð2Ð2Ñ2��Ø”ð % C¤K°6Ò$9Ð$9Ø˜Ñ$�àŒ?ð 	Ø ˜�=�=×%Ò% t f¨s¬×/IÒ/IÑ/KÔ/KÑ&KÑLÔLˆDØ�LŠL˜ÑÔÐÐÐà�LŠL˜ÑÔÐÐÐr   rS   rU   c                 óÚ   •— |re‰                      d¦  «         ‰                      | ¦  «         ‰                      dt          ‰d         ¦  «        z  ¦  «         |D ]} ‰|¦  «         Œd S d S )NrÄ   r,   éÿÿÿÿ)r|   r   )rS   rU   ÚargrÓ   rä   s      €€r   Úprocess_sectzcompose.<locals>.process_sect¾  s†   ø€ Øð 	!Ø�LŠL˜ÑÔÐØ�LŠL˜ÑÔÐØ�LŠL˜�s 5¨¤9™~œ~Ñ-Ñ.Ô.Ð.Øð !ð !�Ø�˜CÑ Ô Ð Ð ð	!ð 	!ð!ð !r   rÄ   z.. deprecated::ú ro   r‚   c                 ó4   — g | ]}|j         d          dk    ¯|‘ŒS )r   rƒ   ©rU   ©r±   Úitems     r   ú
<listcomp>zcompose.<locals>.<listcomp>Þ  ó(   € ÐLÐLÐL�$°D´I¸a´LÀGÒ4KÐ4KˆÐ4KÐ4KÐ4Kr   r’   c                 ó4   — g | ]}|j         d          dk    ¯|‘ŒS )r   r“   rë   rì   s     r   rî   zcompose.<locals>.<listcomp>ã  s3   € ð 	
ð 	
ð 	
àØŒy˜Œ|˜{Ò*Ð*ð à*Ð*Ð*r   r•   c                 ó    — g | ]}|j         °	|‘ŒS r;   ©rg   rì   s     r   rî   zcompose.<locals>.<listcomp>ì  s1   € ð 	
ð 	
ð 	
àØÔ$ð	
Øð	
ð 	
ð 	
r   r˜   c                 ó    — g | ]}|j         ¯	|‘ŒS r;   rò   rì   s     r   rî   zcompose.<locals>.<listcomp>õ  s    € ÐLÐLÐL�$¸$Ô:KÐLˆÐLÐLÐLr   r,   ræ   r‰   c                 ó4   — g | ]}|j         d          dk    ¯|‘ŒS )r   rŠ   rë   rì   s     r   rî   zcompose.<locals>.<listcomp>   s3   € ð 	
ð 	
ð 	
àØŒy˜Œ|˜zÒ)Ð)ð à)Ð)Ð)r   r‡   c                 ó4   — g | ]}|j         d          dk    ¯|‘ŒS )r   rˆ   rë   rì   s     r   rî   zcompose.<locals>.<listcomp>	  s3   € ð 	
ð 	
ð 	
àØŒy˜Œ|˜}Ò,Ð,ð à,Ð,Ð,r   rŒ   c                 ó4   — g | ]}|j         d          dk    ¯|‘ŒS )r   r�   rë   rì   s     r   rî   zcompose.<locals>.<listcomp>  s(   € ÐMÐMÐM�$°D´I¸a´LÀHÒ4LÐ4LˆÐ4LÐ4LÐ4Lr   r�   c                 ó4   — g | ]}|j         d          dk    ¯|‘ŒS )r   r�   rë   rì   s     r   rî   zcompose.<locals>.<listcomp>  rï   r   r   r›   z--------ru   ) r9   ÚUnionr	   r   r
   r7   ÚListÚAnyrÈ   r|   rÉ   rª   rr   r1   rz   r~   rÌ   rË   ÚparamsÚmany_returnsr–   r   r�   rœ   ry   rÎ   rá   r   r   rU   Úreplacer%   )rÚ   rÛ   rÜ   rè   ÚfirstÚrestrp   rÐ   ÚexamplerÎ   rÓ   rä   s     `       @@r   Úcomposer  �  s+  øøø€ ðÝŒW•^Õ%5µÐFÔGðð ð ð ð ð ð ð@!�3ð !¥a¤f­Q¬U¤mð !ð !ð !ð !ð !ð !ð !ð €EØÔ"ð 2Ø�Š�YÔ0Ñ1Ô1Ð1ØÔ.ð Ø�Š�RÑÔÐàÔð 	/Ø!ˆØÔ Ô(ð 	9ØÐ8˜Ô.Ô6Ð8Ð8Ñ8ˆEØÔ Ô,ð 	ØÔ(Ô4×?Ò?ÑAÔAˆDˆDàˆDØ�6ˆmˆmˆØ�Š�S—X’X˜u˜g¨™nÑ-Ô-Ñ.Ô.Ð.àÔ!ð 1Ø�Š�YÔ/Ñ0Ô0Ð0ØÔ-ð Ø�Š�RÑÔÐà€LØØLÐL˜)Ô*Ð0¨bÐLÑLÔLñô ð ð
 €LØð	
ð 	
à!Ô(Ð.¨Bð	
ñ 	
ô 	
ñô ð ð €LØð	
ð 	
à!Ô.Ð4°"ð	
ñ 	
ô 	
ñô ð ð €LØØLÐL˜)Ô0Ð6°BÐLÑLÔLñô ð ð
 Ôð  Ô!7ð ØÔˆØ�Š Ð3�X�X¨)Ñ4Ô4Ð4Ø�Š�S�3˜u Rœy™>œ>Ñ)Ñ*Ô*Ð*Øˆ�CÑÔÐà€LØð	
ð 	
à!Ô(Ð.¨Bð	
ñ 	
ô 	
ñô ð ð €LØð	
ð 	
à!Ô(Ð.¨Bð	
ñ 	
ô 	
ñô ð ð €LØØMÐM˜)Ô*Ð0¨bÐMÑMÔMñô ð ð
 €LØØLÐL˜)Ô*Ð0¨bÐLÑLÔLñô ð õ
 ˆ9ÔÑÔ Ò"Ð"Ø�Š�RÑÔÐØ�Š�ZÑ Ô Ð Ø�Š�ZÑ Ô Ð Ø Ô)ð 	2ð 	2ˆGØŒð .Ø—’˜Wœ_Ñ-Ô-Ð-ØÔ"ð 2Ø—’˜WÔ0Ñ1Ô1Ð1øà”ð +ð +ˆÝØå#ÝÝ ÝÝ ðñ	
ô 	
ð 
	ð à�Š�RÑÔÐØ�Š�T”Y˜q”\×)Ò)¨#¨rÑ2Ô2×8Ò8Ñ:Ô:Ñ;Ô;Ð;Ø�Š�S�3˜tœy¨œ|Ñ,Ô,Ñ,Ñ-Ô-Ð-àÔð 	+Ø�LŠL˜Ô)Ñ*Ô*Ð*øà�9Š9�UÑÔÐr   r(   )-r6   rG   r   rº   Útypingr9   Útextwrapr   Úcommonr   r   r   r   r	   r
   r   r   r   r:   r   r7   r×   r    r»   r½   rC   rZ   r[   r\   r]   ri   r$   r=   rL   rQ   rb   re   rk   rm   rw   r´   r¬   r2   ÚCOMPACTr  r;   r   r   ú<module>r     s�  ððð ð
 €€€Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð=ð =˜œ
ð =°´ð =ð =ð =ð =ð�sð ˜qœz¨#œð ð ð ð ð ˆ2Œ:�l¨"¬$Ð/Ñ/Ô/€Ø�"”*ÐHÑIÔI€Ø!�r”zÐ"NÑOÔOÐ ð !�b”jØPñô Ð ð )˜bœjØgñô Ð ð �2”:ÐIÑJÔJÐ ðFð Fð Fð Fð Fñ Fô Fð FðBð ð ð ð �ñ ô ð ð0
/ð 
/ð 
/ð 
/ð 
/�Wñ 
/ô 
/ð 
/ð-
ð -
ð -
ð -
ð -
�:ñ -
ô -
ð -
ð`
ð 
ð 
ð 
ð 
�Jñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
�Zñ 
ô 
ð 
ð<ð ð ð ð �Nñ ô ð ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð#ð #ð #ð #ð #�gñ #ô #ð #ðL Ø€L�˜wÑ'Ô'ð à€L�˜7Ñ#Ô#ð ð €L�˜gÑ&Ô&ð ð €L�˜Ñ!Ô!ð	 ð
 €LÐ# ]Ñ3Ô3ð ð €L� Ñ/Ô/ð ð €LÐ" MÑ2Ô2ð ð €L�˜}Ñ-Ô-ð ð €L�˜ZÑ(Ô(ð ð €L�˜JÑ'Ô'ð ð €M�(˜HÑ%Ô%ð ð €M�'˜8Ñ$Ô$ð ð €M�'˜7Ñ#Ô#ð ð €M�&˜'Ñ"Ô"ð ð €L�˜{Ñ+Ô+ð ð  €L�˜kÑ*Ô*ð! ð" €N�9˜iÑ(Ô(ð# ð$ €N�8˜YÑ'Ô'ð% ð& €M�(˜HÑ%Ô%ð' ð( €M�'˜8Ñ$Ô$ð) ð* €O�J 
Ñ+Ô+ð+ ð, €O�I˜zÑ*Ô*ð- ð. €GˆJ˜
Ñ#Ô#ð/ ð0 €GˆI�zÑ"Ô"ð1 ð2 €GˆJ˜
Ñ#Ô#ð3 ð4 €GˆI�zÑ"Ô"ð5 ð6 €GˆG�WÑÔð7 ð8 €GˆF�GÑÔð9 ð: €GˆL˜,Ñ'Ô'ð; ð< €GˆK˜Ñ&Ô&ð= ð> Ð�| ]Ñ3Ô3ð? Ð ðFEð Eð Eð Eð Eñ Eô Eð EðP(�”
˜3”ð ( Ið (ð (ð (ð (ð '5Ô&<Øð	hð hàðhð $ðhð ð	hð
 	ðhð hð hð hð hð hr   