§
    ôŽ’jà  ã                   óŠ   — d dl Z ddlmZ d„ Z G d„ d¦  «        Z G d„ de¦  «        Z G d	„ d
¦  «        Zd„ Z e¦   «         Z	dS )é    Né   )Ú_apic                 ó   ‡ — ˆ fd„}|S )aà  
    Decorator for defining the kwdoc documentation of artist properties.

    This decorator can be applied to artist property setter methods.
    The given text is stored in a private attribute ``_kwarg_doc`` on
    the method.  It is used to overwrite auto-generated documentation
    in the *kwdoc list* for artists. The kwdoc list is used to document
    ``**kwargs`` when they are properties of an artist. See e.g. the
    ``**kwargs`` section in `.Axes.text`.

    The text should contain the supported types, as well as the default
    value if applicable, e.g.:

        @_docstring.kwarg_doc("bool, default: :rc:`text.usetex`")
        def set_usetex(self, usetex):

    See Also
    --------
    matplotlib.artist.kwdoc

    c                 ó   •— ‰| _         | S ©N)Ú
_kwarg_doc)ÚfuncÚtexts    €úCC:\Projects\DSCons\.venv\Lib\site-packages\matplotlib\_docstring.pyÚ	decoratorzkwarg_doc.<locals>.decorator   s   ø€ ØˆŒØˆó    © )r
   r   s   ` r   Ú	kwarg_docr      s$   ø€ ð,ð ð ð ð ð Ðr   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚSubstitutionaG  
    A decorator that performs %-substitution on an object's docstring.

    This decorator should be robust even if ``obj.__doc__`` is None (for
    example, if -OO was passed to the interpreter).

    Usage: construct a docstring.Substitution with a sequence or dictionary
    suitable for performing substitution; then decorate a suitable function
    with the constructed object, e.g.::

        sub_author_name = Substitution(author='Jason')

        @sub_author_name
        def some_function(x):
            "%(author)s wrote this function"

        # note that some_function.__doc__ is now "Jason wrote this function"

    One can also use positional arguments::

        sub_first_last_names = Substitution('Edgar Allen', 'Poe')

        @sub_first_last_names
        def some_function(x):
            "%s %s wrote the Raven"
    c                 ó>   — |r|rt          d¦  «        ‚|p|| _        d S )Nz+Only positional or keyword args are allowed)Ú	TypeErrorÚparams)ÚselfÚargsÚkwargss      r   Ú__init__zSubstitution.__init__=   s1   € Øð 	K�Fð 	KÝÐIÑJÔJÐJØ�n˜fˆŒˆˆr   c                 ó`   — |j         r&t          j        |j         ¦  «        | j        z  |_         |S r   )Ú__doc__ÚinspectÚcleandocr   )r   r	   s     r   Ú__call__zSubstitution.__call__B   s-   € ØŒ<ð 	HÝ"Ô+¨D¬LÑ9Ô9¸D¼KÑGˆDŒLØˆr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   "   s<   € € € € € ðð ð4%ð %ð %ð
ð ð ð ð r   r   c                   ó   — e Zd Zd„ ZdS )Ú_ArtistKwdocLoaderc                 óV  ‡— |                      d¦  «        st          |¦  «        ‚|d t          d¦  «         …         Šddlm}m} 	 ˆfd„t          j        |¦  «        D ¦   «         \  }n"# t          $ r}t          |¦  «        |‚d }~ww xY w|  	                    | ||¦  «        ¦  «        S )Nz:kwdocr   )ÚArtistÚkwdocc              3   ó2   •K  — | ]}|j         ‰k    ¯|V — Œd S r   )r   )Ú.0ÚclsÚnames     €r   ú	<genexpr>z1_ArtistKwdocLoader.__missing__.<locals>.<genexpr>O   s;   øè è € ð -ð -˜CØ”| tÒ+Ð+ð Ø+Ð+Ð+Ð+ð-ð -r   )
ÚendswithÚKeyErrorÚlenÚmatplotlib.artistr$   r%   r   Úrecursive_subclassesÚ
ValueErrorÚ
setdefault)r   Úkeyr$   r%   r(   Úer)   s         @r   Ú__missing__z_ArtistKwdocLoader.__missing__I   sÕ   ø€ Ø�|Š|˜HÑ%Ô%ð 	 Ý˜3‘-”-ÐØ�?•S˜‘]”]�N�?Ô#ˆØ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð	'ð-ð -ð -ð -¥4Ô#<¸VÑ#DÔ#Dð -ñ -ô -‰DˆCˆCøåð 	'ð 	'ð 	'Ý˜3‘-”- QÐ&øøøøð	'øøøà�Š˜s E E¨#¡J¤JÑ/Ô/Ð/s   Á"A* Á*
B	Á4BÂB	N)r   r   r    r4   r   r   r   r"   r"   H   s#   € € € € € ð
0ð 
0ð 
0ð 
0ð 
0r   r"   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_ArtistPropertiesSubstitutionaQ  
    A class to substitute formatted placeholders in docstrings.

    This is realized in a single instance ``_docstring.interpd``.

    Use `~._ArtistPropertiesSubstition.register` to define placeholders and
    their substitution, e.g. ``_docstring.interpd.register(name="some value")``.

    Use this as a decorator to apply the substitution::

        @_docstring.interpd
        def some_func():
            '''Replace %(name)s.'''

    Decorating a class triggers substitution both on the class docstring and
    on the class' ``__init__`` docstring (which is a commonly required
    pattern for Artist subclasses).

    Substitutions of the form ``%(classname:kwdoc)s`` (ending with the
    literal ":kwdoc" suffix) trigger lookup of an Artist subclass with the
    given *classname*, and are substituted with the `.kwdoc` of that class.
    c                 ó,   — t          ¦   «         | _        d S r   )r"   r   )r   s    r   r   z&_ArtistPropertiesSubstitution.__init__n   s   € Ý(Ñ*Ô*ˆŒˆˆr   c                 ó*   —  | j         j        di |¤Ž dS )zÀ
        Register substitutions.

        ``_docstring.interpd.register(name="some value")`` makes "name" available
        as a named parameter that will be replaced by "some value".
        Nr   )r   Úupdate)r   r   s     r   Úregisterz&_ArtistPropertiesSubstitution.registerq   s%   € ð 	ˆŒÔÐ$Ð$˜VÐ$Ð$Ð$Ð$Ð$r   c                 óÔ   — |j         r&t          j        |j         ¦  «        | j        z  |_         t	          |t
          ¦  «        r%|j        t          j        k    r | |j        ¦  «         |S r   )r   r   r   r   Ú
isinstanceÚtyper   Úobject)r   Úobjs     r   r   z&_ArtistPropertiesSubstitution.__call__z   s_   € ØŒ;ð 	FÝ!Ô*¨3¬;Ñ7Ô7¸$¼+ÑEˆCŒKÝ�c�4Ñ Ô ð 	 S¤\µV´_Ò%DÐ%DØˆD�”ÑÔÐØˆ
r   N)r   r   r    r   r   r:   r   r   r   r   r6   r6   V   sK   € € € € € ðð ð.+ð +ð +ð%ð %ð %ðð ð ð ð r   r6   c                 ó   ‡ — ˆ fd„}|S )z;Copy a docstring from another source function (if present).c                 ó.   •— ‰j         r‰j         | _         | S r   )r   )ÚtargetÚsources    €r   Údo_copyzcopy.<locals>.do_copy„   s   ø€ ØŒ>ð 	,Ø#œ^ˆFŒNØˆr   r   )rC   rD   s   ` r   ÚcopyrE   ‚   s#   ø€ ðð ð ð ð ð €Nr   )
r   Ú r   r   r   Údictr"   r6   rE   Úinterpdr   r   r   ú<module>rI      sÎ   ðØ €€€à Ð Ð Ð Ð Ð ðð ð ð8#ð #ð #ð #ð #ñ #ô #ð #ðL0ð 0ð 0ð 0ð 0˜ñ 0ô 0ð 0ð)ð )ð )ð )ð )ñ )ô )ð )ðXð ð ð (Ð
'Ñ
)Ô
)€€€r   