Ë
    ý�pjÁ  ã                  ó|   — d dl mZ d dlZd dlZd dlZd dlmZ 	 	 	 d		 	 	 	 	 	 	 	 	 	 	 d
d„Zdd„Zdd„Z	ddd„Z
dd„Zy)é    )ÚannotationsN)ÚAnyc                óª  — t        | t        «      r| j                  «       } t        j                  |«      st        |«      j                  }n|j                  }|rt        |«      |z   }| dk(  s| �€@t        j                  |«      �s*|�|› d|› �}| �t        |d|«      S |S d}t        j                  |«      r|j                  }n¹t        |t        j                  «      r|j                  }d}n�t        |t        j                  «      r|j                  j                  }d}n]t        |«      j                  t        j                  t
        j                  fv rdt        t!        |«      «      › d�}d}nt#        |«      }d}|rt        |«      |z   }|r|j%                  d«      }t'        | ||||¬«      S | d	v s| €| €|S t        |d|«      S t)        d
| ›�«      ‚)aý  Return string that describes a value

    Parameters
    ----------
    article : str or None
        A definite or indefinite article. If the article is
        indefinite (i.e. "a" or "an") the appropriate one
        will be inferred. Thus, the arguments of ``describe``
        can themselves represent what the resulting string
        will actually look like. If None, then no article
        will be prepended to the result. For non-articled
        description, values that are instances are treated
        definitely, while classes are handled indefinitely.
    value : any
        The value which will be named.
    name : str or None (default: None)
        Only applies when ``article`` is "the" - this
        ``name`` is a definite reference to the value.
        By default one will be inferred from the value's
        type and repr methods.
    verbose : bool (default: False)
        Whether the name should be concise or verbose. When
        possible, verbose names include the module, and/or
        class name where an object was defined.
    capital : bool (default: False)
        Whether the first letter of the article should
        be capitalized or not. By default it is not.

    Examples
    --------
    Indefinite description:

    >>> describe("a", object())
    'an object'
    >>> describe("a", object)
    'an object'
    >>> describe("a", type(object))
    'a type'

    Definite description:

    >>> describe("the", object())
    "the object at '...'"
    >>> describe("the", object)
    'the object object'
    >>> describe("the", type(object))
    'the type type'

    Definitely named description:

    >>> describe("the", object(), "I made")
    'the object I made'
    >>> describe("the", object, "I will use")
    'the object I will use'
    ÚtheÚ TFzat 'Ú'z'')ÚnameÚverboseÚcapital)ÚaÚanz?The 'article' argument should be 'the', 'a', 'an', or None not )Ú
isinstanceÚstrÚlowerÚinspectÚisclassÚtypeÚ__name__Ú_prefixÚadd_articleÚtypesÚFunctionTypeÚ
MethodTypeÚ__func__Ú__repr__ÚobjectÚhexÚidÚreprÚjoinÚdescribeÚ
ValueError)ÚarticleÚvaluer	   r
   r   ÚtypenameÚresultÚ	tick_wraps           úm/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/traitlets/utils/descriptions.pyr!   r!   	   s´  € ô| �'œ3ÔØ—-‘-“/ˆä�?‰?˜5Ô!Ü˜“;×'Ñ'‰à—>‘>ˆÙÜ˜5“> HÑ,ˆà�%Ò˜G™O´G·O±OÀEÕ4JØÐØ �z  4 &Ð)ˆFØÐ"Ü" 6¨4°Ó9Ð9à�àˆIÜ�‰˜uÔ%Ø—~‘~‘Ü˜E¤5×#5Ñ#5Ô6Ø—~‘~�Ø ‘	Ü˜E¤5×#3Ñ#3Ô4Ø—~‘~×.Ñ.�Ø ‘	Ü�e“×%Ñ%Ü—‘Ü—‘ð*ñ ð œc¤" U£)›nÐ-¨QÐ/�Ø‘ä˜E“{�Ø�ÙÜ˜u“~¨Ñ,�ÙØ—y‘y “�Ü˜G U°¸wÐPWÔXÐXØ	�KÑ	 7 ?Øˆ?ØˆOÜ˜8 U¨GÓ4Ð4äØMÈgÈ[ÐYó
ð 	
ó    c                óæ   — t        | t        j                  «      rt        d | j                  d¬«      dz   }|S t        j                  | «      }|� |j                  dk7  r|j                  dz   }|S d}|S )NT)r
   Ú.ÚbuiltinsÚ )r   r   r   r!   Ú__self__r   Ú	getmoduler   )r$   r	   Úmodules      r(   r   r   z   st   € Ü�%œ×)Ñ)Ô*Ü˜˜eŸn™n°dÔ;¸cÑAˆð €Kô ×"Ñ" 5Ó)ˆØÐ &§/¡/°ZÒ"?Ø—?‘? SÑ(ˆDð €Kð ˆDØ€Kr)   c                ó~   — t        j                  | «      rt        | j                  «      S t	        t        | «      «      S )zsReturns a string of the value's type with an indefinite article.

    For example 'an Image' or 'a PlotValue'.
    )r   r   r   r   Úclass_ofr   )r$   s    r(   r2   r2   †   s.   € ô
 ‡��uÔÜ˜5Ÿ>™>Ó*Ð*äœ˜U›Ó$Ð$r)   c                óÖ   — |rd| z   }nEt        j                  d«      j                  d| «      }|dd j                  «       dv rd| z   }nd| z   }|r|d	   j	                  «       |dd z   S |S )
aè  Returns the string with a prepended article.

    The input does not need to begin with a character.

    Parameters
    ----------
    name : str
        Name to which to prepend an article
    definite : bool (default: False)
        Whether the article is definite or not.
        Indefinite articles being 'a' and 'an',
        while 'the' is definite.
    capital : bool (default: False)
        Whether the added article should have
        its first letter capitalized or not.
    zthe z[\W_]+r-   Né   Úaeiouzan za r   )ÚreÚcompileÚsubr   Úupper)r	   Údefiniter   r&   Úfirst_letterss        r(   r   r   ‘   sy   € ñ" Ø˜$‘‰äŸ
™
 9Ó-×1Ñ1°"°dÓ;ˆØ˜˜!Ð×"Ñ"Ó$¨Ñ/Ø˜T‘\‰Fà˜D‘[ˆFÙØ�a‰y�‰Ó  6¨!¨" :Ñ-Ð-àˆr)   c                ó&   — t        | «      }| ›d|›�S )z]Return a string representation of a value and its type for readable

    error messages.
    r   )r   )ÚobjÚthe_types     r(   Ú	repr_typer?   °   s   € ô
 �C‹y€HØˆW�A�h�\Ð"Ð"r)   )NFF)r#   ú
str | Noner$   r   r	   r@   r
   Úboolr   rA   Úreturnr   )r$   r   rB   r   )r$   r   rB   r   )FF)r	   r   r:   rA   r   rA   rB   r   )r=   r   rB   r   )Ú
__future__r   r   r6   r   Útypingr   r!   r   r2   r   r?   © r)   r(   Ú<module>rF      sx   ðÝ "ã Û 	Û Ý ð ØØðn
Øðn
àðn
ð ðn
ð ð	n
ð
 ðn
ð 	ón
ób	ó%ôô>#r)   