§
    ‹ŸjGV ã            
      óð  — d Z ddlmZ ddlZddlZddlZddlZddl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 ddlmZmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZ e e!e"e#fZ$e%fZ&ej'        rddl(m)Z) nddlm)Z) g d¢Z* eddd¦  «        Z+ eddd¦  «        Z,e+Z- G d„ de.¦  «        Z/d©d„Z0dªd„Z1d«d„Z2d¬d!„Z3 G d"„ d#¦  «        Z4d­d®d'„Z5d¯d*„Z6 G d+„ d,¦  «        Z7 G d-„ d.¦  «        Z8e8Z9 G d/„ d0¦  «        Z: e)d1¦  «        Z; e)d2¦  «        Z< e)d3¦  «        Z=ej'        r(dd4l(m>Z>m?Z?  e)d5e@¬6¦  «        ZA e)d7ejB        ¬6¦  «        ZCn e)d5¦  «        ZA e)d7¦  «        ZC G d8„ d9e:ejD        e;e<f         ¦  «        ZE G d:„ d;¦  «        ZFd°d=„ZG G d>„ d?e%¦  «        ZH G d@„ dAeH¦  «        ZIdBdCœd±dG„ZJd²dJ„ZKd³dL„ZLd´dO„ZM ej)        dIejN        dPejB        f         ¬Q¦  «        ZO G dR„ dSe:¦  «        ZP G dT„ dFeP¦  «        ZQ G dU„ dKeP¦  «        ZR G dV„ dNeP¦  «        ZS G dW„ dXeH¬Y¦  «        ZT G dZ„ d[eTeI¬Y¦  «        ZU G d\„ d]eEe;e<f         ¦  «        ZV G d^„ d_eVe;e<f         ¦  «        ZW G d`„ daeVe=e=f         ¦  «        ZX G db„ dc¦  «        ZY G dd„ deeYeWe;e<f         ¦  «        ZZ G df„ dgeYeXe=         ¦  «        Z[ G dh„ dieVej\        e=         ej\        e=         f         ¦  «        Z] G dj„ dkeEejB        ejB        f         ¦  «        Z^ G dl„ dmeEej\        ejB                 ej\        ejB                 f         ¦  «        ZBdµdr„Z_ G ds„ dteEe;e<f         ¦  «        Z` G du„ dve`e;e<f         ¦  «        Zae`eacZbZce`Zd G dw„ dxeEe;e<f         ¦  «        Ze G dy„ dzeee;e<f         ¦  «        Zf G d{„ d|eEegej^        egeheif         f         ¦  «        Zj G d}„ d~ejeEegejB        f         ¦  «        Zk G d„ d€eEelelf         ¦  «        Zm G d�„ d‚emeEelejB        f         ¦  «        Zn G dƒ„ d„eEe;e<f         ¦  «        Zo G d…„ d†eoe;e<f         eEe@ejB        f         ¦  «        Zp G d‡„ dˆeEe@e@f         ¦  «        Zq G d‰„ dŠeq¦  «        Zr G d‹„ dŒeEe;e<f         ¦  «        Zs G d�„ dŽese;e<f         ¦  «        Zt G d�„ d�eEe;e;f         ¦  «        Zu G d‘„ d’eue;         ¦  «        Zv G d“„ d”eue;         ¦  «        Zw G d•„ d–eXe=         ¦  «        Zx G d—„ d˜exejy        e=                  ¦  «        Zy G d™„ dšexejz        ejB                          ¦  «        Zz G d›„ dœexej{        ejB        dPf                  ¦  «        Z{ G d�„ džeXdŸ         ¦  «        Z| G d „ d¡eEe;e<f         ¦  «        Z} G d¢„ d£eEd¤ej^        d¤e@f         f         ¦  «        Z~ G d¥„ d¦eEejB        ejB        f         ¦  «        Z G d§„ d¨eEejN        dPejB        f         ejN        dPejB        f         f         ¦  «        ZNdS )¶aË  
A lightweight Traits like module.

This is designed to provide a lightweight, simple, pure Python version of
many of the capabilities of enthought.traits.  This includes:

* Validation
* Type specification with defaults
* Static and dynamic notification
* Basic predefined types
* An API that is similar to enthought.traits

We don't support:

* Delegation
* Automatic GUI generation
* A full set of trait types.  Most importantly, we don't provide container
  traits (list, dict, tuple) that can trigger notifications if their
  contents change.
* API compatibility with enthought.traits

There are also some important difference in our design:

* enthought.traits does not validate default values.  We do.

We choose to create this module because we need these capabilities, but
we need them to be pure Python so they work in all Python implementations,
including Jython and IronPython.

Inheritance diagram:

.. inheritance-diagram:: traitlets.traitlets
   :parts: 3
é    )ÚannotationsN)Úliteral_evalé   )ÚBunch)Úadd_articleÚclass_ofÚdescribeÚ	repr_type)Ú
getargspec©Úimport_item)ÚSentinel)Údeprecated_methodÚshould_warnÚwarn)ÚTypeVar);ÚAllÚAnyÚBaseDescriptorÚBoolÚBytesÚCBoolÚCBytesÚCComplexÚCFloatÚCIntÚCLongÚCRegExpÚCUnicodeÚCallableÚCaselessStrEnumÚClassBasedTraitTypeÚComplexÚ	ContainerÚDefaultHandlerÚDictÚDottedObjectNameÚEnumÚEventHandlerÚFloatÚForwardDeclaredInstanceÚForwardDeclaredMixinÚForwardDeclaredTypeÚ	FuzzyEnumÚHasDescriptorsÚ	HasTraitsÚInstanceÚIntÚIntegerÚListÚLongÚMetaHasDescriptorsÚMetaHasTraitsÚ
ObjectNameÚObserveHandlerÚSetÚ
TCPAddressÚThisÚ
TraitErrorÚ	TraitTypeÚTupleÚTypeÚUnicodeÚ	UndefinedÚUnionÚUseEnumÚValidateHandlerÚdefaultÚdirectional_linkÚdlinkÚlinkÚobserveÚobserve_compatÚparse_notifier_nameÚvalidaterB   Ú	traitletszA
Used in Traitlets to specify that no defaults are set in kwargs
r   zi
Used in Traitlets to listen to all types of notification or to notifications
from all trait attributes.
c                  ó   — e Zd ZdS )r=   N)Ú__name__Ú
__module__Ú__qualname__© ó    ú`/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/traitlets/traitlets.pyr=   r=   ¤   s   € € € € € Ø€DrT   r=   ÚsÚstrÚreturnÚboolc                óX   — t          dt          d¬¦  «         |                      ¦   «         S )Nz`traitlets.traitlets.isidentifier(s) is deprecated since traitlets 5.14.4 Use `s.isidentifier()`.é   ©Ú
stacklevel)r   ÚDeprecationWarningÚisidentifier©rV   s    rU   r_   r_   ­   s4   € ÝØjÝØðñ ô ð ð
 �>Š>ÑÔÐrT   út.Anyc                ó`   — 	 t          | ¦  «        S # t          t          t          f$ r | cY S w xY w)zwSafely evaluate an expression

    Returns original string if eval fails.

    Use only where types are ambiguous.
    )r   Ú	NameErrorÚSyntaxErrorÚ
ValueErrorr`   s    rU   Ú_safe_literal_evalrf   ¶   s>   € ðÝ˜A‰ŒÐøÝ•{¥JÐ/ð ð ð Øˆˆˆðøøøs   ‚ ‘-¬-Útc                ó€   — t          | t          ¦  «        p)t          | t          ¦  «        ot          | t          ¦  «        S )zHReturns whether the given value is an instance or subclass of TraitType.)Ú
isinstancer>   ÚtypeÚ
issubclass)rg   s    rU   Úis_traitrl   Ã   s0   € å�a�Ñ#Ô#ÐY­
°1µdÑ(;Ô(;Ð(XÅ
È1ÍiÑ@XÔ@XÐYrT   Únamesú+Sentinel | str | t.Iterable[Sentinel | str]út.Iterable[t.Any]c                ó:  — | t           u st          | t          ¦  «        r| gS t          | t          ¦  «        rt	          d¦  «        ‚| r	t           | v rt           gS | D ]?}t          |t          ¦  «        s(t	          dt          |¦  «        j        › d|›d�¦  «        ‚Œ@| S )a  Convert the name argument to a list of names.

    Examples
    --------
    >>> parse_notifier_name([])
    [traitlets.All]
    >>> parse_notifier_name("a")
    ['a']
    >>> parse_notifier_name(["a", "b"])
    ['a', 'b']
    >>> parse_notifier_name(All)
    [traitlets.All]
    z7`names` must be either `All`, a str, or a list of strs.znames must be strings, not ú(ú))r   ri   rW   r   Ú	TypeErrorrj   rP   )rm   Úns     rU   rL   rL   È   sµ   € ð •€|€|•z %­Ñ-Ô-€|ØˆwˆÝ	�E�8Ñ	$Ô	$ð ÝÐQÑRÔRÐRàð 	�˜u˜˜Ý�5ˆLØð 	Yð 	YˆAÝ˜a¥Ñ%Ô%ð YÝÐ W½dÀ1¹g¼gÔ>NÐ WÐ WÐQRÐ WÐ WÐ WÑXÔXÐXðYàˆrT   c                  ó.   — e Zd Zdd„Zdd„Zdd
„Zdd„ZdS )Ú_SimpleTestÚvaluera   rX   ÚNonec                ó   — || _         d S ©N©rw   ©Úselfrw   s     rU   Ú__init__z_SimpleTest.__init__ä   s   € ØˆŒ
ˆ
ˆ
rT   ÚtestrY   c                ó2   — t          || j        k    ¦  «        S rz   )rY   rw   )r}   r   s     rU   Ú__call__z_SimpleTest.__call__ç   s   € Ý�D˜DœJÒ&Ñ'Ô'Ð'rT   rW   c                ó   — d| j         z  S )Nz<SimpleTest(%r)r{   ©r}   s    rU   Ú__repr__z_SimpleTest.__repr__ê   s   € Ø  4¤:Ñ-Ð-rT   c                ó*   — |                       ¦   «         S rz   )r„   rƒ   s    rU   Ú__str__z_SimpleTest.__str__í   s   € Ø�}Š}‰ŒÐrT   N)rw   ra   rX   rx   )r   ra   rX   rY   ©rX   rW   )rP   rQ   rR   r~   r�   r„   r†   rS   rT   rU   rv   rv   ã   sd   € € € € € ðð ð ð ð(ð (ð (ð (ð.ð .ð .ð .ðð ð ð ð ð rT   rv   ÚobjectÚ	predicateúlist[tuple[str, t.Any]]c                óà   — g }t          | ¦  «        D ]G}	 t          | |¦  «        }|r ||¦  «        r|                     ||f¦  «         Œ8# t          $ r Y ŒDw xY w|                     ¦   «          |S )a  A safe version of inspect.getmembers that handles missing attributes.

    This is useful when there are descriptor based attributes that for
    some reason raise AttributeError even though they exist.  This happens
    in zope.interface with the __provides__ attribute.
    )ÚdirÚgetattrÚappendÚAttributeErrorÚsort)rˆ   r‰   ÚresultsÚkeyrw   s        rU   Ú
getmembersr“   ñ   sš   € ð €GÝ�6‰{Œ{ð -ð -ˆð	-Ý˜F CÑ(Ô(ˆEð ð - 	 	¨%Ñ 0Ô 0ð -Ø—’  U˜|Ñ,Ô,Ð,øøõ	 ð 	ð 	ð 	ØˆDð	øøøð
 ‡L‚L�N„N€NØ€Ns   •A
Á

AÁAÚtuplesrx   c                 ó*  — | D ]�}t          |¦  «        dk    st          dt          z  ¦  «        ‚|\  }}t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚||                     ¦   «         vrt          |›d|›�¦  «        ‚Œ�dS )z.Validate arguments for traitlet link functionsr[   zKEach linked traitlet must be specified as (HasTraits, 'trait_name'), not %rz%Each object must be HasTraits, not %rz has no trait N)Úlenrs   rg   ri   r0   rj   Útraits)r”   ÚtupÚobjÚ
trait_names       rU   Ú_validate_linkr›     sµ   € àð 	Dð 	DˆÝ�3‰xŒx˜1Š}ˆ}ÝØ]Õ`aÑañô ð ð ‰ˆˆZÝ˜#�yÑ)Ô)ð 	QÝÐCÅdÈ3ÁiÄiÑOÑPÔPÐPØ˜SŸZšZ™\œ\Ð)Ð)Ý˜sÐBÐB°JÐBÐBÑCÔCÐCð *ð	Dð 	DrT   c                  óp   — e Zd ZdZdZ	 ddd„Zdd„ZeZdd„Ze	j
        dd„¦   «         Zdd„Zdd„Zdd„ZdS )rI   aR  Link traits from different objects together so they remain in sync.

    Parameters
    ----------
    source : (object / attribute name) pair
    target : (object / attribute name) pair
    transform: iterable with two callables (optional)
        Data transformation between source and target and target and source.

    Examples
    --------
    >>> class X(HasTraits):
    ...     value = Int()

    >>> src = X(value=1)
    >>> tgt = X(value=42)
    >>> c = link((src, "value"), (tgt, "value"))

    Setting source updates target objects:
    >>> src.value = 5
    >>> tgt.value
    5
    FNÚsourcera   ÚtargetÚ	transformút.Iterable[FuncT] | NonerX   rx   c                óŽ   — t          ||¦  «         ||c| _        | _        |r|\  | _        | _        |                      ¦   «          d S rz   )r›   r�   rž   Ú
_transformÚ_transform_invrI   ©r}   r�   rž   rŸ   s       rU   r~   zlink.__init__.  sL   € õ 	�v˜vÑ&Ô&Ð&Ø#)¨6Ð ˆŒ�T”[Øð 	=Ø3<Ñ0ˆDŒO˜TÔ0Ø�	Š	‰ŒˆˆˆrT   ÚxÚTc                ó   — |S )zdefault transform: no-oprS   )r}   r¥   s     rU   r¢   zlink._transform7  s   € àˆrT   c                ó^  — 	 t          | j        d         | j        d         |                      t          | j        d         | j        d         ¦  «        ¦  «        ¦  «         | j        d                              | j        | j        d         ¬¦  «         | j        d                              | j        | j        d         ¬¦  «         d S # | j        d                              | j        | j        d         ¬¦  «         | j        d                              | j        | j        d         ¬¦  «         w xY w©Nr   r   ©rm   )Úsetattrrž   r¢   r�   r�   rJ   Ú_update_targetÚ_update_sourcerƒ   s    rU   rI   z	link.link=  s  € ð		NÝØ”˜A”Ø”˜A”Ø—’¥¨¬°A¬¸¼ÀA¼Ñ GÔ GÑHÔHñô ð ð ŒK˜ŒN×"Ò" 4Ô#6¸d¼kÈ!¼nÐ"ÑMÔMÐMØŒK˜ŒN×"Ò" 4Ô#6¸d¼kÈ!¼nÐ"ÑMÔMÐMÐMÐMøð ŒK˜ŒN×"Ò" 4Ô#6¸d¼kÈ!¼nÐ"ÑMÔMÐMØŒK˜ŒN×"Ò" 4Ô#6¸d¼kÈ!¼nÐ"ÑMÔMÐMÐMøøøs   ‚AC ÃA&D,c              #  óH   K  — d| _         	 d V — d| _         d S # d| _         w xY w©NTF©Úupdatingrƒ   s    rU   Ú_busy_updatingzlink._busy_updatingI  ó9   è è € àˆŒð	"ØˆEˆEˆEà!ˆDŒMˆMˆMø˜EˆDŒMÐ!Ð!Ð!Ð!ó   ‹ ˜	!Úchangec                óv  — | j         rd S |                      ¦   «         5  t          | j        d         | j        d         |                      |j        ¦  «        ¦  «         t          | j        d         | j        d         ¦  «        |j        k    rt          d| › d�¦  «        ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   úBroken link z5: the source value changed while updating the target.)	r±   r²   r«   rž   r¢   Únewr�   r�   r=   ©r}   rµ   s     rU   r¬   zlink._update_targetQ  sü   € ØŒ=ð 	ØˆFØ× Ò Ñ"Ô"ð 	ð 	Ý�D”K ”N D¤K°¤N°D·O²OÀFÄJÑ4OÔ4OÑPÔPÐPÝ�t”{ 1”~ t¤{°1¤~Ñ6Ô6¸&¼*ÒDÐDÝ Øa 4ÐaÐaÐañô ð ð Eð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   žBB.Â.B2Â5B2c                óv  — | j         rd S |                      ¦   «         5  t          | j        d         | j        d         |                      |j        ¦  «        ¦  «         t          | j        d         | j        d         ¦  «        |j        k    rt          d| › d�¦  «        ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r·   z5: the target value changed while updating the source.)	r±   r²   r«   r�   r£   r¸   r�   rž   r=   r¹   s     rU   r­   zlink._update_source[  sþ   € ØŒ=ð 	ØˆFØ× Ò Ñ"Ô"ð 	ð 	Ý�D”K ”N D¤K°¤N°D×4GÒ4GÈÌ
Ñ4SÔ4SÑTÔTÐTÝ�t”{ 1”~ t¤{°1¤~Ñ6Ô6¸&¼*ÒDÐDÝ Øa 4ÐaÐaÐañô ð ð Eð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rº   c                óÎ   — | j         d                              | j        | j         d         ¬¦  «         | j        d                              | j        | j        d         ¬¦  «         d S r©   )r�   Ú	unobserver¬   rž   r­   rƒ   s    rU   Úunlinkzlink.unlinke  sX   € ØŒ�AŒ× Ò  Ô!4¸D¼KÈ¼NÐ ÑKÔKÐKØŒ�AŒ× Ò  Ô!4¸D¼KÈ¼NÐ ÑKÔKÐKÐKÐKrT   rz   )r�   ra   rž   ra   rŸ   r    rX   rx   )r¥   r¦   rX   r¦   ©rX   rx   ©rX   ra   ©rµ   ra   rX   rx   )rP   rQ   rR   Ú__doc__r±   r~   r¢   r£   rI   Ú
contextlibÚcontextmanagerr²   r¬   r­   r¾   rS   rT   rU   rI   rI     sÞ   € € € € € ðð ð0 €Hð SWðð ð ð ð ðð ð ð ð  €Nð
Nð 
Nð 
Nð 
Nð Ôð"ð "ð "ñ Ôð"ðð ð ð ðð ð ð ðLð Lð Lð Lð Lð LrT   rI   c                  óZ   — e Zd ZdZdZddd
„Zdd„Zej        dd„¦   «         Z	dd„Z
dd„ZdS )rG   a’  Link the trait of a source object with traits of target objects.

    Parameters
    ----------
    source : (object, attribute name) pair
    target : (object, attribute name) pair
    transform: callable (optional)
        Data transformation between source and target.

    Examples
    --------
    >>> class X(HasTraits):
    ...     value = Int()

    >>> src = X(value=1)
    >>> tgt = X(value=42)
    >>> c = directional_link((src, "value"), (tgt, "value"))

    Setting source updates target objects:
    >>> src.value = 5
    >>> tgt.value
    5

    Setting target does not update source object:
    >>> tgt.value = 6
    >>> src.value
    5

    FNr�   ra   rž   rŸ   rX   rx   c                ó„   — |r|nd„ | _         t          ||¦  «         ||c| _        | _        |                      ¦   «          d S )Nc                ó   — | S rz   rS   ©r¥   s    rU   ú<lambda>z+directional_link.__init__.<locals>.<lambda>Œ  s   € À€ rT   )r¢   r›   r�   rž   rI   r¤   s       rU   r~   zdirectional_link.__init__‹  sE   € Ø'0ÐA˜)˜)°k°kˆŒÝ�v˜vÑ&Ô&Ð&Ø#)¨6Ð ˆŒ�T”[Ø�	Š	‰ŒˆˆˆrT   c                ó–  — 	 t          | j        d         | j        d         |                      t          | j        d         | j        d         ¦  «        ¦  «        ¦  «         | j        d                              | j        | j        d         ¬¦  «         d S # | j        d                              | j        | j        d         ¬¦  «         w xY wr©   )r«   rž   r¢   r�   r�   rJ   Ú_updaterƒ   s    rU   rI   zdirectional_link.link‘  s­   € ð	GÝØ”˜A”Ø”˜A”Ø—’¥¨¬°A¬¸¼ÀA¼Ñ GÔ GÑHÔHñô ð ð ŒK˜ŒN×"Ò" 4¤<°t´{À1´~Ð"ÑFÔFÐFÐFÐFøˆDŒK˜ŒN×"Ò" 4¤<°t´{À1´~Ð"ÑFÔFÐFÐFøøøs   ‚AB Â4Cc              #  óH   K  — d| _         	 d V — d| _         d S # d| _         w xY wr¯   r°   rƒ   s    rU   r²   zdirectional_link._busy_updating›  r³   r´   rµ   c                óð   — | j         rd S |                      ¦   «         5  t          | j        d         | j        d         |                      |j        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   )r±   r²   r«   rž   r¢   r¸   r¹   s     rU   rË   zdirectional_link._update£  sÇ   € ØŒ=ð 	ØˆFØ× Ò Ñ"Ô"ð 	Qð 	QÝ�D”K ”N D¤K°¤N°D·O²OÀFÄJÑ4OÔ4OÑPÔPÐPð	Qð 	Qð 	Qñ 	Qô 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qøøøð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qs   žA A+Á+A/Á2A/c                ój   — | j         d                              | j        | j         d         ¬¦  «         d S r©   )r�   r½   rË   rƒ   s    rU   r¾   zdirectional_link.unlink©  s/   € ØŒ�AŒ× Ò  ¤°T´[À´^Ð ÑDÔDÐDÐDÐDrT   rz   )r�   ra   rž   ra   rŸ   ra   rX   rx   r¿   rÀ   rÁ   )rP   rQ   rR   rÂ   r±   r~   rI   rÃ   rÄ   r²   rË   r¾   rS   rT   rU   rG   rG   j  s¬   € € € € € ðð ð< €Hðð ð ð ð ðGð Gð Gð Gð Ôð"ð "ð "ñ Ôð"ðQð Qð Qð QðEð Eð Eð Eð Eð ErT   rG   c                  óH   — e Zd ZU dZdZded<   dZded<   dd„Zdd„Zdd„Z	dS )r   a­  Base descriptor class

    Notes
    -----
    This implements Python's descriptor protocol.

    This class is the base class for all such descriptors.  The
    only magic we use is a custom metaclass for the main :class:`HasTraits`
    class that does the following:

    1. Sets the :attr:`name` attribute of every :class:`BaseDescriptor`
       instance in the class dict to the name of the attribute.
    2. Sets the :attr:`this_class` attribute of every :class:`BaseDescriptor`
       instance in the class dict to the *class* that declared the trait.
       This is used by the :class:`This` trait to allow subclasses to
       accept superclasses for :class:`This` values.
    Nú
str | NoneÚnameztype[HasTraits] | NoneÚ
this_classÚclsútype[HasTraits]rX   rx   c                ó"   — || _         || _        dS )aE  Part of the initialization which may depend on the underlying
        HasDescriptors class.

        It is typically overloaded for specific types.

        This method is called by :meth:`MetaHasDescriptors.__init__`
        passing the class (`cls`) and `name` under which the descriptor
        has been assigned.
        N)rÒ   rÑ   )r}   rÓ   rÑ   s      rU   Ú
class_initzBaseDescriptor.class_initË  s   € ð ˆŒØˆŒ	ˆ	ˆ	rT   c                óD   — |j                              | j        ¦  «         d S rz   )Ú_instance_initsrŽ   Úinstance_init©r}   rÓ   s     rU   Úsubclass_initzBaseDescriptor.subclass_initØ  s$   € ð 	Ô×"Ò" 4Ô#5Ñ6Ô6Ð6Ð6Ð6rT   r™   ra   c                ó   — dS )aL  Part of the initialization which may depend on the underlying
        HasDescriptors instance.

        It is typically overloaded for specific types.

        This method is called by :meth:`HasTraits.__new__` and in the
        :meth:`BaseDescriptor.instance_init` method of descriptors holding
        other descriptors.
        NrS   ©r}   r™   s     rU   rÙ   zBaseDescriptor.instance_initã  s   € € € rT   ©rÓ   rÔ   rÑ   rÐ   rX   rx   )rÓ   rÔ   rX   rx   ©r™   ra   rX   rx   )
rP   rQ   rR   rÂ   rÑ   Ú__annotations__rÒ   rÖ   rÛ   rÙ   rS   rT   rU   r   r   µ  s€   € € € € € € ðð ð$ €DÐÐÐÑØ)-€JÐ-Ð-Ð-Ñ-ðð ð ð ð	7ð 	7ð 	7ð 	7ð	ð 	ð 	ð 	ð 	ð 	rT   r   ÚGÚSr¦   )ÚLiteralÚSelfÚK)rF   ÚVc                  óF  — e Zd ZU dZi Zded<   dZded<   dZded<   dZd	ed
<   e	Z
ded<   e	ddddfdAd„ZdBd„ZdCdDd„ZdEd„ZdDd„ZdCdFd"„Zej        dGd%„¦   «         Zej        dHd'„¦   «         ZdId*„ZdJd-„ZdJd.„ZdKd/„ZdKd0„ZdLd4„ZdMd5„Z	 	 dNdOd:„ZdCdPd=„ZdQd>„ZdRd?„ZdMd@„ZdS )Sr>   z!A base class for all trait types.údict[str, t.Any]ÚmetadataFrY   Ú
allow_noneÚ	read_onlyú	any valuerW   Ú	info_textra   Údefault_valueNr}   úTraitType[G, S]úbool | NoneÚhelprÐ   ÚconfigÚkwargsrX   rx   c                óN  — |t           ur|| _        |r|| _        |�|| _        |�|nd| _        | j        r| j        | _        t          |¦  «        dk    �rd}t          j        ¦   «         }|€J ‚|j	        j
        dk    r |dz  }|j        }|€J ‚|j	        j
        dk    ° |j                             d¦  «        pd}	|	                     dd¦  «        d         }
d|
gt          |¦  «        ¢R }t!          |¦  «        rt#          d	|› d
�t$          |¬¦  «         t          | j        ¦  «        dk    r9| j                             ¦   «         | _        | j                             |¦  «         n&|| _        n| j                             ¦   «         | _        |�
|| j        d<   |�|| j        d<   dS dS )aK  Declare a traitlet.

        If *allow_none* is True, None is a valid value in addition to any
        values that are normally valid. The default is up to the subclass.
        For most trait types, the default value for ``allow_none`` is False.

        If *read_only* is True, attempts to directly modify a trait attribute raises a TraitError.

        If *help* is a string, it documents the attribute's purpose.

        Extra metadata can be associated with the traitlet using the .tag() convenience method
        or by using the traitlet instance's .metadata dictionary.
        NÚ r   r   r~   rP   ú.zmetadata-tagz	metadata z� was set from the constructor. With traitlets 4.1, metadata should be set using the .tag() method, e.g., Int().tag(key1='value1', key2='value2')r\   rò   rñ   )rB   rî   rê   rë   rñ   rÂ   r–   ÚinspectÚcurrentframeÚf_codeÚco_nameÚf_backÚ	f_globalsÚgetÚsplitÚsortedr   r   r^   ré   ÚcopyÚupdate)r}   rî   rê   rë   rñ   rò   ró   r]   ÚfÚmodÚpkgr’   s               rU   r~   zTraitType.__init__  sæ  € ð, ¥	Ð)Ð)Ø!.ˆDÔØð 	)Ø(ˆDŒOØÐ Ø&ˆDŒNØ Ð,�D�D°"ˆŒ	ØŒ9ð 	%àœ9ˆDŒLåˆv‰;Œ;˜Š?‰?ØˆJÝÔ$Ñ&Ô&ˆAà�=�=�=Ø”(Ô" jÒ0Ð0Ø˜a‘�
Ø”H�Ø�}�}�}ð ”(Ô" jÒ0Ð0ð ”+—/’/ *Ñ-Ô-Ð3°ˆCØ—)’)˜C Ñ#Ô# AÔ&ˆCØ! 3Ð8­°©¬Ð8Ð8ˆCÝ˜3ÑÔð ÝðD ð Dð Dð Dõ 'Ø)ðñ ô ð õ �4”=Ñ!Ô! AÒ%Ð%Ø $¤× 2Ò 2Ñ 4Ô 4�”Ø”×$Ò$ VÑ,Ô,Ð,Ð,à &�”�à œM×.Ò.Ñ0Ô0ˆDŒMØÐØ&,ˆDŒM˜(Ñ#ð ÐØ$(ˆDŒM˜&Ñ!Ð!Ð!ð ÐrT   rV   úG | Nonec                ó$   — | j         r|dk    rdS |S )a
  Get a value from a config string

        such as an environment variable or CLI arguments.

        Traits can override this method to define their own
        parsing of config strings.

        .. seealso:: item_from_string

        .. versionadded:: 5.0
        rx   N©rê   ©r}   rV   s     rU   Úfrom_stringzTraitType.from_stringR  s    € ð Œ?ð 	˜q Fš{˜{Ø�4ØˆrT   r™   c                ó‚   — | j         t          ur| j         S t          | d¦  «        r|                      ¦   «         S | j         S )zâThe default generator for this trait

        Notes
        -----
        This method is registered to HasTraits classes during ``class_init``
        in the same way that dynamic defaults defined by ``@default`` are.
        Úmake_dynamic_default)rî   rB   Úhasattrr  rÝ   s     rU   rF   zTraitType.defaultb  sK   € ð Ô¥YÐ.Ð.ØÔ%Ð%Ý�TÐ1Ñ2Ô2ð 	&Ø×,Ò,Ñ.Ô.Ð.ð Ô%Ð%rT   c                ó>   — t          dt          d¬¦  «         | j        S )zmDEPRECATED: Retrieve the static default value for this trait.
        Use self.default_value instead
        zRget_default_value is deprecated in traitlets 4.0: use the .default_value attributer[   r\   )r   r^   rî   rƒ   s    rU   Úget_default_valuezTraitType.get_default_valuer  s/   € õ 	Ø`ÝØð	
ñ 	
ô 	
ð 	
ð
 Ô!Ð!rT   c                óˆ   — t          dt          d¬¦  «         |                      || j        ¦  «        }||j        | j        <   |S )z<DEPRECATED: Set the static default value for the trait type.zSinit_default_value is deprecated in traitlets 4.0, and may be removed in the futurer[   r\   )r   r^   Ú	_validaterî   Ú_trait_valuesrÑ   ©r}   r™   rw   s      rU   Úinit_default_valuezTraitType.init_default_value}  sN   € åØaÝØð	
ñ 	
ô 	
ð 	
ð
 —’˜s DÔ$6Ñ7Ô7ˆØ',ˆÔ˜$œ)Ñ$ØˆrT   r0   rÓ   útype[t.Any] | Nonec           	     óö  — | j         €J ‚	 |j        | j                  }|S # t          $ r² |                     | j         ¦  «        }|t          u rt          dt          d¬¦  «         |j        }	 d|_        |                      ||¦  «        }||_        n# ||_        w xY w||j        | j         <   | 	                    t          | j         ||d¬¦  «        ¦  «         |cY S t          $ r}t          d¦  «        |‚d }~ww xY w)NzxExplicit using of Undefined as the default value is deprecated in traitlets 5.0, and may cause exceptions in the future.r[   r\   TrF   )rÑ   rw   Úownerrj   z=Unexpected error in TraitType: default value not set properly)rÑ   r  ÚKeyErrorÚtrait_defaultsrB   r   r^   Ú_cross_validation_lockr  Ú_notify_observersr   Ú	Exceptionr=   )r}   r™   rÓ   rw   rF   r  Úes          rU   rý   zTraitType.getˆ  sX  € ØŒyÐ$Ð$Ð$ð#	ØÔ% d¤iÔ0ˆEðD ˆLøõC ð 	ð 	ð 	à×(Ò(¨¬Ñ3Ô3ˆGØ�)Ð#Ð#Ýð0õ 'Ø ðñ ô ð ð &)Ô%?Ð"ðDØ-1�Ô*ØŸš s¨GÑ4Ô4�à-C�Ô*Ð*øÐ-C�Ô*ÐCÐCÐCÐCØ+0ˆCÔ˜dœiÑ(Ø×!Ò!ÝØœØØØ"ð	ñ ô ñô ð ð ˆLˆLˆLÝð 	eð 	eð 	eåÐ\Ñ]Ô]ÐcdÐdøøøøð	eøøøs4   ‹ ŸAC8Á+BÂC8Â	BÂ?C8Ã	C8Ã#C3Ã3C8útype[t.Any]rä   c                ó   — d S rz   rS   ©r}   r™   rÓ   s      rU   Ú__get__zTraitType.__get__¯  ó   € àˆrT   rá   c                ó   — d S rz   rS   r  s      rU   r   zTraitType.__get__³  r!  rT   úHasTraits | NoneúSelf | Gc                ó6   — |€| S |                       ||¦  «        S )aM  Get the value of the trait by self.name for the instance.

        Default values are instantiated when :meth:`HasTraits.__new__`
        is called.  Thus by the time this method gets called either the
        default value or a user defined value (they called :meth:`__set__`)
        is in the :class:`HasTraits` instance.
        )rý   r  s      rU   r   zTraitType.__get__·  s"   € ð ˆ;ØˆKà—8’8˜C Ñ%Ô%Ð%rT   rw   râ   c                óJ  — |                       ||¦  «        }| j        €J ‚	 |j        | j                 }n# t          $ r
 | j        }Y nw xY w||j        | j        <   	 t          ||k    ¦  «        }n# t          $ r d}Y nw xY w|dur|                     | j        ||¦  «         d S d S )NFT)r  rÑ   r  r  rî   rY   r  Ú_notify_trait)r}   r™   rw   Ú	new_valueÚ	old_valueÚsilents         rU   ÚsetzTraitType.setÄ  så   € Ø—N’N 3¨Ñ.Ô.ˆ	ØŒyÐ$Ð$Ð$ð	+ØÔ)¨$¬)Ô4ˆIˆIøÝð 	+ð 	+ð 	+ØÔ*ˆIˆIˆIð	+øøøð (1ˆÔ˜$œ)Ñ$ð	Ý˜) yÒ0Ñ1Ô1ˆFˆFøÝð 	ð 	ð 	àˆFˆFˆFð	øøøð ˜ÐÐð ×Ò˜dœi¨°IÑ>Ô>Ð>Ð>Ð>ð Ðs!   ¡4 ´AÁAÁA/ Á/A>Á=A>c                ón   — | j         rt          d| j        z  ¦  «        ‚|                      ||¦  «         dS )zÚSet the value of the trait by self.name for the instance.

        Values pass through a validation stage where errors are raised when
        impropper types, or types that cannot be coerced, are encountered.
        zThe "%s" trait is read-only.N)rë   r=   rÑ   r+  r  s      rU   Ú__set__zTraitType.__set__×  s?   € ð Œ>ð 	IÝÐ;¸d¼iÑGÑHÔHÐHØ�Š��eÑÔÐÐÐrT   c                ó¦   — |€	| j         r|S t          | d¦  «        r|                      ||¦  «        }|j        du r|                      ||¦  «        }|S )NrM   F)rê   r  rM   r  Ú_cross_validater  s      rU   r  zTraitType._validateá  s_   € Øˆ=˜Tœ_ˆ=ØˆLÝ�4˜Ñ$Ô$ð 	.Ø—M’M # uÑ-Ô-ˆEØÔ%¨Ð.Ð.Ø×(Ò(¨¨eÑ4Ô4ˆEØˆrT   c                ó,  — | j         |j        v r0t          | ||dœ¦  «        } |j        | j                  ||¦  «        }nUt          |d| j         z  ¦  «        r=d| j         z  }t	          ||¦  «        }t          ||j        |d¦  «          ||| ¦  «        }|S )N)Útraitrw   r  ú_%s_validateú use @validate decorator instead.)rÑ   Ú_trait_validatorsr   r  r�   r   Ú	__class__)r}   r™   rw   ÚproposalÚ	meth_nameÚcross_validates         rU   r/  zTraitType._cross_validateê  s²   € ØŒ9˜Ô-Ð-Ð-Ý t°eÀcÐJÐJÑKÔKˆHØ4�CÔ)¨$¬)Ô4°S¸(ÑCÔCˆEˆEÝ�S˜.¨4¬9Ñ4Ñ5Ô5ð 		0Ø&¨¬Ñ2ˆIÝ$ S¨)Ñ4Ô4ˆNÝØØ”ØØ2ñ	ô ð ð #�N 5¨$Ñ/Ô/ˆEØˆrT   ÚotherúTraitType[t.Any, t.Any]rC   c                ó|   — t          |t          ¦  «        rt          | g|j        ¢¦  «        S t          | |g¦  «        S rz   ©ri   rC   Útrait_types©r}   r9  s     rU   Ú__or__zTraitType.__or__ú  s?   € Ý�e�UÑ#Ô#ð 	(Ý˜$Ð3 Ô!2Ð3Ñ4Ô4Ð4å˜$ ˜Ñ'Ô'Ð'rT   c                ó   — | j         S rz   )rí   rƒ   s    rU   ÚinfozTraitType.info   s
   € ØŒ~ÐrT   ÚerrorúException | NonerA  ú
t.NoReturnc                ób  — |�æ|xj         | fz  c_         | j        �Ìd                     d„ |j         dd…         D ¦   «         ¦  «        }|�Wd                     | j        t	          d|¦  «        ||j         d         t	          d|j         d	         ¦  «        ¦  «        f|_         nGd
                     | j        ||j         d         t	          d|j         d	         ¦  «        ¦  «        f|_         |‚| j        €%t          ||p|                      ¦   «         | ¦  «        ‚|�Md                     | j        t          |¦  «        |p|                      ¦   «         t	          d|¦  «        ¦  «        }n>d                     | j        |p|                      ¦   «         t	          d|¦  «        ¦  «        }t          |¦  «        ‚)aË  Raise a TraitError

        Parameters
        ----------
        obj : HasTraits or None
            The instance which owns the trait. If not
            object is given, then an object agnostic
            error will be raised.
        value : any
            The value that caused the error.
        error : Exception (default: None)
            An error that was raised by a child trait.
            The arguments of this exception should be
            of the form ``(value, info, *traits)``.
            Where the ``value`` and ``info`` are the
            problem value, and string describing the
            expected value. The ``traits`` are a series
            of :class:`TraitType` instances that are
            "children" of this one (the first being
            the deepest).
        info : str (default: None)
            A description of the expected value. By
            default this is inferred from this trait's
            ``info`` method.
        Nú of c              3  ó6   K  — | ]}t          d |¦  «        V — ŒdS )ÚaN)r	   )Ú.0rg   s     rU   ú	<genexpr>z"TraitType.error.<locals>.<genexpr>(  s,   è è € Ð#MÐ#M¸¥H¨S°!Ñ$4Ô$4Ð#MÐ#MÐ#MÐ#MÐ#MÐ#MrT   r[   zDThe '{}' trait of {} instance contains {} which expected {}, not {}.Úanr   Úther   z5The '{}' trait contains {} which expected {}, not {}.z2The '{}' trait of {} instance expected {}, not {}.z#The '{}' trait expected {}, not {}.)ÚargsrÑ   ÚjoinÚformatr	   r=   rA  r   )r}   r™   rw   rB  rA  Úchainr  s          rU   rB  zTraitType.error  s§  € ð@ ÐàˆJŒJ˜4˜'Ñ!ˆJŒJØŒyÐ$àŸšÐ#MÐ#M¸e¼jÈÈÈ¼nÐ#MÑ#MÔ#MÑMÔM�Ø�?ð/ß/5ªvØ œIÝ$ T¨3Ñ/Ô/Ø!Ø!œJ qœMÝ$ U¨E¬J°q¬MÑ:Ô:ñ0ô 0ð	"�E”J�Jð S×YÒYØ œIØ!Ø!œJ qœMÝ$ U¨E¬J°q¬MÑ:Ô:ñ	ô ð"�E”Jð ˆKð Œ9Ðå˜U DÐ$7¨D¯IªI©K¬K¸Ñ>Ô>Ð>ð ˆ?ØD×KÒKØ”	Ý˜‘”ØÐ#˜Ÿ	š	™œÝ˜ Ñ&Ô&ñ	ô ˆAˆAð 6×<Ò<Ø”	ØÐ#˜Ÿ	š	™œÝ˜ Ñ&Ô&ñô ˆAõ
 ˜‰mŒmÐrT   r’   rF   c                ó‚   — |dk    rd}nd}t          d|z   t          d¬¦  «         | j                             ||¦  «        S )znDEPRECATED: Get a metadata value.

        Use .metadata[key] or .metadata.get(key, default) instead.
        rñ   z3use the instance .help string directly, like x.helpzduse the instance .metadata dictionary directly, like x.metadata[key] or x.metadata.get(key, default)úDeprecated in traitlets 4.1, r[   r\   )r   r^   ré   rý   )r}   r’   rF   Úmsgs       rU   Úget_metadatazTraitType.get_metadataT  sN   € ð
 �&Š=ˆ=ØGˆCˆCàxˆCÝÐ,¨sÑ2Õ4FÐSTÐUÑUÔUÐUØŒ}× Ò   gÑ.Ô.Ð.rT   c                ód   — |dk    rd}nd}t          d|z   t          d¬¦  «         || j        |<   dS )z[DEPRECATED: Set a metadata key/value.

        Use .metadata[key] = value instead.
        rñ   z;use the instance .help string directly, like x.help = valuezLuse the instance .metadata dictionary directly, like x.metadata[key] = valuerR  r[   r\   N)r   r^   ré   )r}   r’   rw   rS  s       rU   Úset_metadatazTraitType.set_metadata`  sH   € ð
 �&Š=ˆ=ØOˆCˆCà`ˆCÝÐ,¨sÑ2Õ4FÐSTÐUÑUÔUÐUØ"ˆŒ�cÑÐÐrT   c                óÞ   — t          |                     ¦   «         ¦  «                             h d£¦  «        }|rt          d|z  t          d¬¦  «         | j                             |¦  «         | S )a  Sets metadata and returns self.

        This allows convenient metadata tagging when initializing the trait, such as:

        Examples
        --------
        >>> Int(0).tag(config=True, sync=True)
        <traitlets.traitlets.Int object at ...>

        >   rñ   rë   rê   rî   zcThe following attributes are set in using `tag`, but seem to be constructor keywords arguments: %s r[   r\   )r+  ÚkeysÚintersectionr   ÚUserWarningré   r  )r}   ré   Úmaybe_constructor_keywordss      rU   ÚtagzTraitType.tagl  s‚   € õ &)¨¯ª©¬Ñ%9Ô%9×%FÒ%FØ@Ð@Ð@ñ&
ô &
Ð"ð &ð 	ÝØuØ,ñ-åØð	ñ ô ð ð 	Œ×Ò˜XÑ&Ô&Ð&ØˆrT   c                ó*   — t          | j        ¦  «        S rz   )Úreprrî   rƒ   s    rU   Údefault_value_reprzTraitType.default_value_repr…  s   € Ý�DÔ&Ñ'Ô'Ð'rT   )r}   rï   rî   ra   rê   rY   rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )rV   rW   rX   r  rz   )r™   ra   rX   r  )rX   r  )r™   r0   rÓ   r  rX   r  )r™   rx   rÓ   r  rX   rä   )r™   ra   rÓ   r  rX   rá   )r™   r#  rÓ   r  rX   r$  )r™   r0   rw   râ   rX   rx   )r™   ra   rw   ra   rX   r  )r9  r:  rX   rC   r‡   )NN)
r™   r#  rw   ra   rB  rC  rA  rÐ   rX   rD  )r’   rW   rF   ra   rX   ra   )r’   rW   rw   ra   rX   rx   )ré   ra   rX   rä   )rP   rQ   rR   rÂ   ré   rà   rê   rë   rí   rB   rî   r~   r	  rF   r  r  rý   rg   Úoverloadr   r+  r-  r  r/  r?  rA  rB  rT  rV  r\  r_  rS   rT   rU   r>   r>     s\  € € € € € € Ø+Ð+à!#€HÐ#Ð#Ð#Ñ#Ø€JÐÐÐÑØ€IÐÐÐÑØ €IÐ Ð Ð Ñ Ø$€MÐ$Ð$Ð$Ñ$ð  )Ø Ø!%ØØðB)ð B)ð B)ð B)ð B)ðHð ð ð ð &ð &ð &ð &ð &ð 	"ð 	"ð 	"ð 	"ð	ð 	ð 	ð 	ð%ð %ð %ð %ð %ðN „Zðð ð ñ „Zðð „Zðð ð ñ „Zðð&ð &ð &ð &ð?ð ?ð ?ð ?ð&ð ð ð ðð ð ð ðð ð ð ð (ð (ð (ð (ðð ð ð ð #'ØðOð Oð Oð Oð Oðb
/ð 
/ð 
/ð 
/ð 
/ð
#ð 
#ð 
#ð 
#ðð ð ð ð2(ð (ð (ð (ð (ð (rT   r>   c                  ó*   — e Zd ZdZdd„Zdd
„Zdd„ZdS )Ú_CallbackWrapperz«An object adapting a on_trait_change callback into an observe callback.

    The comparison operator __eq__ is implemented to enable removal of wrapped
    callbacks.
    Úcbra   rX   rx   c                óâ   — || _         t          | j         t          j        ¦  «        rdnd}t	          t          |¦  «        d         ¦  «        |z   | _        | j        dk    rt          d¦  «        ‚d S )Néÿÿÿÿr   é   z1a trait changed callback must have 0-4 arguments.)rc  ri   ÚtypesÚ
MethodTyper–   r   Únargsr=   )r}   rc  Úoffsets      rU   r~   z_CallbackWrapper.__init__•  sf   € ØˆŒå! $¤'­5Ô+;Ñ<Ô<ÐC��À!ˆÝ� B™œ¨Ô*Ñ+Ô+¨fÑ4ˆŒ
ØŒ:˜Š>ˆ>ÝÐPÑQÔQÐQð ˆ>rT   r9  rˆ   rY   c                ó–   — t          |t          ¦  «        rt          | j        |j        k    ¦  «        S t          | j        |k    ¦  «        S rz   )ri   rb  rY   rc  r>  s     rU   Ú__eq__z_CallbackWrapper.__eq__�  sA   € å�eÕ-Ñ.Ô.ð 	*Ý˜œ 5¤8Ò+Ñ,Ô,Ð,å˜œ 5Ò(Ñ)Ô)Ð)rT   rµ   r   c                óÈ  — | j         dk    r|                      ¦   «          d S | j         dk    r|                      |j        ¦  «         d S | j         dk    r"|                      |j        |j        ¦  «         d S | j         dk    r(|                      |j        |j        |j        ¦  «         d S | j         dk    r.|                      |j        |j        |j        |j        ¦  «         d S d S )Nr   r   r[   é   rf  )ri  rc  rÑ   r¸   Úoldr  r¹   s     rU   r�   z_CallbackWrapper.__call__¤  sÑ   € àŒ:˜Š?ˆ?Ø�GŠG‰IŒIˆIˆIˆIØŒZ˜1Š_ˆ_Ø�GŠG�F”KÑ Ô Ð Ð Ð ØŒZ˜1Š_ˆ_Ø�GŠG�F”K ¤Ñ,Ô,Ð,Ð,Ð,ØŒZ˜1Š_ˆ_Ø�GŠG�F”K ¤¨V¬ZÑ8Ô8Ð8Ð8Ð8ØŒZ˜1Š_ˆ_Ø�GŠG�F”K ¤¨V¬Z¸¼ÑFÔFÐFÐFÐFð ˆ_rT   N)rc  ra   rX   rx   )r9  rˆ   rX   rY   ©rµ   r   rX   rx   )rP   rQ   rR   rÂ   r~   rl  r�   rS   rT   rU   rb  rb  Ž  sd   € € € € € ðð ðRð Rð Rð Rð*ð *ð *ð *ðGð Gð Gð Gð Gð GrT   rb  rc  c                óN   — t          | t          ¦  «        r| S t          | ¦  «        S rz   )ri   rb  )rc  s    rU   Ú_callback_wrapperrr  ²  s(   € Ý�"Õ&Ñ'Ô'ð $Øˆ	å Ñ#Ô#Ð#rT   c                  ó8   ‡ — e Zd ZdZdˆ fd„Zdˆ fd„Zdd„Zˆ xZS )r6   z›A metaclass for HasDescriptors.

    This metaclass makes sure that any TraitType class attributes are
    instantiated and sets their name attribute.
    Úmclsútype[MetaHasDescriptors]rÑ   rW   Úbasesútuple[type, ...]Ú	classdictrè   Úkwdsra   rX   c                ó  •— |                      ¦   «         D ]R\  }}t          j        |¦  «        r9t          |t          ¦  «        r$t          dt          d¬¦  «          |¦   «         ||<   ŒS t          ¦   «         j        | |||fi |¤ŽS )z Create the HasDescriptors class.úTraits should be given as instances, not types (for example, `Int()`, not `Int`). Passing types is deprecated in traitlets 4.1.r[   r\   )	Úitemsr÷   Úisclassrk   r>   r   r^   ÚsuperÚ__new__)rt  rÑ   rv  rx  ry  ÚkÚvr5  s          €rU   r  zMetaHasDescriptors.__new__À  s¢   ø€ ð —O’OÑ%Ô%ð 	#ð 	#‰DˆAˆqõ Œ˜qÑ!Ô!ð #¥j°µIÑ&>Ô&>ð #ÝðEå&Ø ð	ñ ô ð ð  !˜q™sœs�	˜!‘øð �u‰wŒwŒ˜t T¨5°)ÐDÐD¸tÐDÐDÐDrT   rx   c                ój   •—  t          ¦   «         j        |||fi |¤Ž |                      |¦  «         dS )z-Finish initializing the HasDescriptors class.N)r~  r~   Úsetup_class)rÓ   rÑ   rv  rx  ry  r5  s        €rU   r~   zMetaHasDescriptors.__init__Ø  s@   ø€ ð 	�‰ŒÔ˜˜u iÐ8Ð8°4Ð8Ð8Ð8Ø�Š˜	Ñ"Ô"Ð"Ð"Ð"rT   rÓ   c                ó^  — g | _         g | _        |                     ¦   «         D ]0\  }}t          |t          ¦  «        r|                     | |¦  «         Œ1t          | ¦  «        D ]I\  }}t          |t          ¦  «        r/|                     | ¦  «         | j                              |¦  «         ŒJdS )zûSetup descriptor instance on the class

        This sets the :attr:`this_class` and :attr:`name` attributes of each
        BaseDescriptor in the class dict of the newly created ``cls`` before
        calling their :attr:`class_init` method.
        N)	Ú_descriptorsrØ   r|  ri   r   rÖ   r“   rÛ   rŽ   )rÓ   rx  r€  r�  Ú_s        rU   rƒ  zMetaHasDescriptors.setup_classß  s·   € ð ˆÔØ+-ˆÔØ—O’OÑ%Ô%ð 	%ð 	%‰DˆAˆqÝ˜!�^Ñ,Ô,ð %Ø—’˜S !Ñ$Ô$Ð$øå˜s‘O”Oð 	+ð 	+‰DˆAˆqÝ˜!�^Ñ,Ô,ð +Ø—’ Ñ$Ô$Ð$ØÔ ×'Ò'¨Ñ*Ô*Ð*øð	+ð 	+rT   )rt  ru  rÑ   rW   rv  rw  rx  rè   ry  ra   rX   r6   )
rÑ   rW   rv  rw  rx  rè   ry  ra   rX   rx   )rÓ   r6   rx  rè   rX   rx   )rP   rQ   rR   rÂ   r  r~   rƒ  Ú__classcell__©r5  s   @rU   r6   r6   ¹  s   ø€ € € € € ðð ðEð Eð Eð Eð Eð Eð0#ð #ð #ð #ð #ð #ð+ð +ð +ð +ð +ð +ð +ð +rT   r6   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )	r7   zA metaclass for HasTraits.rÓ   rx  rè   rX   rx   c                ó¸  •— i | _         i | _        i | _        i | _        t	          ¦   «                              |¦  «         |                      ¦   «         }t          | ¦  «        D �]ö}	 t          | |¦  «        }n# t          $ r Y Œ!w xY wt          |t          ¦  «        �r»|| j        |<   |}d|z  }|}	 |d |                     |j        ¦  «        dz   …         }n# t          $ r Y nw xY w|D ]X}||j        v r|j        |         | j        |<    �nL||j                             di ¦  «        v r|j         |         | j        |<    �nŒY|j        d u o|j        }	t'          |¦  «        t(          t*          fv r;|j        €4|j        €-t          |j        t0          ¦  «        s|	r|j        | j        |<   �nŸt'          |¦  «        t2          t4          fv r;|j        €4|j        €-t          |j        t6          ¦  «        s|	r|j        | j        |<   �nGt'          |¦  «        t8          t:          fv r,t          |j        t<          ¦  «        s|	r|j        | j        |<   nþt'          |¦  «        t>          t@          fv r,t          |j        tB          ¦  «        s|	r|j        | j        |<   nµt'          |¦  «        tD          k    r?t          |j        tB          t0          t6          t<          f¦  «        s|	r|j        | j        |<   n^t'          |¦  «        tF          k    r|j        €d | j        |<   n4t          |tH          ¦  «        r|j%        €|j&        €|j        r
d | j        |<   |j'        | j        |<   �Œød S )Nú_%s_defaultr   Ú_trait_default_generators)(rŒ  Ú_all_trait_default_generatorsÚ_traitsÚ _static_immutable_initial_valuesr~  rƒ  ÚmrorŒ   r�   r�   ri   r>   ÚindexrÒ   re   Ú__dict__rý   rî   rê   rj   r   r2   ÚminÚmaxÚintr   r*   Úfloatr   r   rY   r   rA   rW   r   rC   r1   Údefault_argsÚdefault_kwargsrF   )rÓ   rx  r�  rÑ   rw   r1  Údefault_method_nameÚ	mro_traitÚcÚnone_okr5  s             €rU   rƒ  zMetaHasTraits.setup_classõ  sÂ  ø€ à:<ˆÔ%à,.ˆÔ)ØˆŒØ/1ˆÔ,å‰Œ×Ò˜IÑ&Ô&Ð&à�gŠg‰iŒiˆå˜‘H”Hð G	Lñ G	LˆDðÝ  TÑ*Ô*��øÝ!ð ð ð Ø�ðøøøå˜%¥Ñ+Ô+ñ ?LØ$)�”˜DÑ!Ø�Ø&3°dÑ&:Ð#Ø�	ðØ #Ð$E c§i¢i°Ô0@Ñ&AÔ&AÀAÑ&EÐ$EÔ F�I�IøÝ!ð ð ð à�Dðøøøð #ð 5Lð 5L�AØ*¨a¬jÐ8Ð8ØBCÄ*ÐM`ÔBa˜Ô9¸$Ñ?Ø™Ø˜qœzŸ~š~Ð.IÈ2ÑNÔNÐNÐNØBCÔB]Ð^bÔBc˜Ô9¸$Ñ?Ø™ð Oð $Ô1°TÐ9ÐN¸eÔ>N�Gå˜U™œ­­c {Ð2Ð2Ø!œIÐ-Ø!œIÐ-Ý'¨Ô(;½SÑAÔAð .ØELð .ð FKÔEX˜Ô<¸TÑBÑBå˜U™œ­µ Ð6Ð6Ø!œIÐ-Ø!œIÐ-Ý'¨Ô(;½UÑCÔCð .ØGNð .ð FKÔEX˜Ô<¸TÑBÑBÝ˜e™œ­µ¨Ð5Ð5Ý" 5Ô#6½Ñ=Ô=ð 6ØAHð 6ð FKÔEX˜Ô<¸TÑBÐBÝ˜e™œ­µ7Ð(;Ð;Ð;Ý" 5Ô#6½Ñ<Ô<ð <Ø@Gð <ð FKÔEX˜Ô<¸TÑBÐBÝ˜e™œ­Ò+Ð+Ý" 5Ô#6½½cÅ5Í$Ð8OÑPÔPð ,ØT[ð ,ð FKÔEX˜Ô<¸TÑBÐBÝ˜e™œ­Ò-Ð-°%Ô2EÐ2MØEI˜Ô<¸TÑBÐBå" 5­(Ñ3Ô3ðJà!Ô.Ð6Ø!Ô0Ð8Ø!Ô,ð 9ð FJ˜Ô<¸TÑBð ?D¼m�CÔ5°dÑ;ùðOG	Lð G	Ls$   Á&A7Á7
BÂBÂ1%CÃ
C$Ã#C$)rÓ   r7   rx  rè   rX   rx   )rP   rQ   rR   rÂ   rƒ  r‡  rˆ  s   @rU   r7   r7   ò  sW   ø€ € € € € Ø$Ð$ðSLð SLð SLð SLð SLð SLð SLð SLð SLð SLrT   r7   rµ   ©rj   úSentinel | strrj   r9   c                ó°   — |st          d¦  «        ‚|D ]2}|t          ur't          |t          ¦  «        st          d|z  ¦  «        ‚Œ3t	          || ¬¦  «        S )a‚  A decorator which can be used to observe Traits on a class.

    The handler passed to the decorator will be called with one ``change``
    dict argument. The change dictionary at least holds a 'type' key and a
    'name' key, corresponding respectively to the type of notification and the
    name of the attribute that triggered the notification.

    Other keys may be passed depending on the value of 'type'. In the case
    where type is 'change', we also have the following keys:
    * ``owner`` : the HasTraits instance
    * ``old`` : the old value of the modified trait attribute
    * ``new`` : the new value of the modified trait attribute
    * ``name`` : the name of the modified trait attribute.

    Parameters
    ----------
    *names
        The str names of the Traits to observe on the object.
    type : str, kwarg-only
        The type of event to observe (e.g. 'change')
    z2Please specify at least one trait name to observe.z5trait names to observe must be strings or All, not %rr�  )rs   r   ri   rW   r9   )rj   rm   rÑ   s      rU   rJ   rJ   K  sm   € ð, ð NÝÐLÑMÔMÐMØð \ð \ˆØ•sˆ?ˆ?¥:¨dµCÑ#8Ô#8ˆ?ÝÐSÐVZÑZÑ[Ô[Ð[øÝ˜% dÐ+Ñ+Ô+Ð+rT   ÚfuncÚFuncTc                ó.   ‡ — t           t           fd	ˆ fd„}|S )
aZ  Backward-compatibility shim decorator for observers

    Use with:

    @observe('name')
    @observe_compat
    def _foo_changed(self, change):
        ...

    With this, `super()._foo_changed(self, name, old, new)` in subclasses will still work.
    Allows adoption of new observer API without breaking subclasses that override and super.
    r}   ra   Úchange_or_namerW   ro  r¸   rX   c                óâ   •— t          |t          ¦  «        rt          |¦  «        }n>| j        j        }t          d|› d|› d�t          d¬¦  «         t          d|||| ¬¦  «        } ‰| |¦  «        S )NzA parent of z._zA_changed has adopted the new (traitlets 4.1) @observe(change) APIr[   r\   rµ   )rj   ro  r¸   rÑ   r  )ri   Údictr   r5  rP   r   r^   )r}   r£  ro  r¸   rµ   Úclsnamer   s         €rU   Úcompatible_observerz+observe_compat.<locals>.compatible_observerw  sœ   ø€ õ �n¥dÑ+Ô+ð 	Ý˜>Ñ*Ô*ˆFˆFà”nÔ-ˆGÝØ{˜wÐ{Ð{¨.Ð{Ð{Ð{Ý"Øðñ ô ð õ
 ØØØØ#Øðñ ô ˆFð ˆt�D˜&Ñ!Ô!Ð!rT   )
r}   ra   r£  rW   ro  ra   r¸   ra   rX   ra   )rB   )r   r§  s   ` rU   rK   rK   i  s6   ø€ õ 8AÍyð"ð "ð "ð "ð "ð "ð "ð* ÐrT   rE   c                 ó¬   — | st          d¦  «        ‚| D ]2}|t          ur't          |t          ¦  «        st          d|z  ¦  «        ‚Œ3t	          | ¦  «        S )a´  A decorator to register cross validator of HasTraits object's state
    when a Trait is set.

    The handler passed to the decorator must have one ``proposal`` dict argument.
    The proposal dictionary must hold the following keys:

    * ``owner`` : the HasTraits instance
    * ``value`` : the proposed value for the modified trait attribute
    * ``trait`` : the TraitType instance associated with the attribute

    Parameters
    ----------
    *names
        The str names of the Traits to validate.

    Notes
    -----
    Since the owner has access to the ``HasTraits`` instance via the 'owner' key,
    the registered cross validator could potentially make changes to attributes
    of the ``HasTraits`` instance. However, we recommend not to do so. The reason
    is that the cross-validation of attributes may run in arbitrary order when
    exiting the ``hold_trait_notifications`` context, and such changes may not
    commute.
    z3Please specify at least one trait name to validate.z6trait names to validate must be strings or All, not %r)rs   r   ri   rW   rE   )rm   rÑ   s     rU   rM   rM   �  sh   € ð2 ð OÝÐMÑNÔNÐNØð ]ð ]ˆØ•sˆ?ˆ?¥:¨dµCÑ#8Ô#8ˆ?ÝÐTÐW[Ñ[Ñ\Ô\Ð\øÝ˜5Ñ!Ô!Ð!rT   rÑ   r%   c                ón   — t          | t          ¦  «        st          d| z  ¦  «        ‚t          | ¦  «        S )a,  A decorator which assigns a dynamic default for a Trait on a HasTraits object.

    Parameters
    ----------
    name
        The str name of the Trait on the object whose default should be generated.

    Notes
    -----
    Unlike observers and validators which are properties of the HasTraits
    instance, default value generators are class-level properties.

    Besides, default generators are only invoked if they are registered in
    subclasses of `this_type`.

    ::

        class A(HasTraits):
            bar = Int()

            @default('bar')
            def get_bar_default(self):
                return 11

        class B(A):
            bar = Float()  # This trait ignores the default generator defined in
                           # the base class A

        class C(B):

            @default('bar')
            def some_other_default(self):  # This default generator should not be
                return 3.0                 # ignored since it is defined in a
                                           # class derived from B.a.this_class.
    z*Trait name must be a string or All, not %r)ri   rW   rs   r%   )rÑ   s    rU   rF   rF   °  s:   € õH �d�CÑ Ô ð MÝÐDÀtÑKÑLÔLÐLÝ˜$ÑÔÐrT   .)Úboundc                  ól   — e Zd Zdd„Zej        dd„¦   «         Zej        dd	„¦   «         Zdd
„Zddd„ZdS )r)   r   r¡  rX   c                ó   — || _         | S rz   )r   )r}   r   s     rU   Ú
_init_callzEventHandler._init_callÝ  s   € ØˆŒ	ØˆrT   rM  ra   ró   c                ó   — d S rz   rS   )r}   r   rM  ró   s       rU   r�   zEventHandler.__call__á  r!  rT   c                ó   — d S rz   rS   ©r}   rM  ró   s      rU   r�   zEventHandler.__call__å  r!  rT   c                óV   — t          | d¦  «        r | j        |i |¤ŽS  | j        |i |¤ŽS )zCPass `*args` and `**kwargs` to the handler's function if it exists.r   )r  r   r­  r°  s      rU   r�   zEventHandler.__call__é  sB   € å�4˜Ñ Ô ð 	4Ø�4”9˜dÐ- fÐ-Ð-Ð-à"�4”? DÐ3¨FÐ3Ð3Ð3rT   NÚinstrÓ   útypes.MethodType | EventHandlerc                ó>   — |€| S t          j        | j        |¦  «        S rz   )rg  rh  r   )r}   r²  rÓ   s      rU   r   zEventHandler.__get__ð  s!   € Øˆ<ØˆKÝÔ ¤	¨4Ñ0Ô0Ð0rT   )r   r¡  rX   r)   )r   r¡  rM  ra   ró   ra   rX   r¡  )rM  ra   ró   ra   rX   ra   rz   )r²  ra   rÓ   ra   rX   r³  )rP   rQ   rR   r­  rg   r`  r�   r   rS   rT   rU   r)   r)   Ü  s™   € € € € € ðð ð ð ð „Zðð ð ñ „Zðð „Zðð ð ñ „Zðð4ð 4ð 4ð 4ð1ð 1ð 1ð 1ð 1ð 1ð 1rT   r)   c                  ó    — e Zd Zddd„Zdd„ZdS )r9   rõ   rm   útuple[Sentinel | str, ...]rj   rW   rX   rx   c                ó"   — || _         || _        d S rz   )Útrait_namesrj   )r}   rm   rj   s      rU   r~   zObserveHandler.__init__÷  s   € Ø ˆÔØˆŒ	ˆ	ˆ	rT   r²  r0   c                óJ   — |                      | | j        | j        ¬¦  «         d S )Nr�  )rJ   r¸  rj   ©r}   r²  s     rU   rÙ   zObserveHandler.instance_initû  s%   € Ø�Š�T˜4Ô+°$´)ˆÑ<Ô<Ð<Ð<Ð<rT   N)rõ   )rm   r¶  rj   rW   rX   rx   ©r²  r0   rX   rx   ©rP   rQ   rR   r~   rÙ   rS   rT   rU   r9   r9   ö  sA   € € € € € ðð ð ð ð ð=ð =ð =ð =ð =ð =rT   c                  ó   — e Zd Zd
d„Zdd„Zd	S )rE   rm   r¶  rX   rx   c                ó   — || _         d S rz   ©r¸  )r}   rm   s     rU   r~   zValidateHandler.__init__   s   € Ø ˆÔÐÐrT   r²  r0   c                ó<   — |                      | | j        ¦  «         d S rz   )Ú_register_validatorr¸  rº  s     rU   rÙ   zValidateHandler.instance_init  s!   € Ø× Ò   tÔ'7Ñ8Ô8Ð8Ð8Ð8rT   N)rm   r¶  rX   rx   r»  r¼  rS   rT   rU   rE   rE   ÿ  s<   € € € € € ð!ð !ð !ð !ð9ð 9ð 9ð 9ð 9ð 9rT   c                  ó(   ‡ — e Zd Zd
d„Zdˆ fd	„Zˆ xZS )r%   rÑ   rW   rX   rx   c                ó   — || _         d S rz   )rš   ©r}   rÑ   s     rU   r~   zDefaultHandler.__init__  s   € ØˆŒˆˆrT   rÓ   rÔ   rÐ   c                ój   •— t          ¦   «                              ||¦  «         | |j        | j        <   d S rz   )r~  rÖ   rŒ  rš   ©r}   rÓ   rÑ   r5  s      €rU   rÖ   zDefaultHandler.class_init  s2   ø€ Ý‰Œ×Ò˜3 Ñ%Ô%Ð%Ø9=ˆÔ% d¤oÑ6Ð6Ð6rT   )rÑ   rW   rX   rx   rÞ   )rP   rQ   rR   r~   rÖ   r‡  rˆ  s   @rU   r%   r%     sQ   ø€ € € € € ðð ð ð ð>ð >ð >ð >ð >ð >ð >ð >ð >ð >rT   c                  ó,   ‡ — e Zd ZdZd
ˆ fd„Zdd	„Zˆ xZS )r/   z5The base class for all classes that have descriptors.rM  ra   ró   rX   rä   c               ó¢   •— t          t          | ¦  «        j        }|t          j        u r || ¦  «        }n || g|¢R i |¤Ž} |j        |i |¤Ž |S rz   )r~  r/   r  rˆ   Úsetup_instance)rÓ   rM  ró   Únew_methr²  r5  s        €rU   r  zHasDescriptors.__new__  so   ø€ õ �¨Ñ-Ô-Ô5ˆØ•v”~Ð%Ð%Ø�8˜C‘=”=ˆDˆDà�8˜CÐ1 $Ð1Ð1Ð1¨&Ð1Ð1ˆDØˆÔ˜TÐ, VÐ,Ð,Ð,ØˆrT   rx   c               óL   — d| _         | j        }|j        D ]} || ¦  «         ŒdS )zD
        This is called **before** self.__init__ is called.
        FN)r  r5  rØ   )r}   rM  ró   rÓ   Úinits        rU   rÉ  zHasDescriptors.setup_instance  s@   € ð
 ',ˆÔ#ØŒnˆð Ô'ð 	ð 	ˆDØˆD�‰JŒJˆJˆJð	ð 	rT   )rM  ra   ró   ra   rX   rä   ©rM  ra   ró   ra   rX   rx   )rP   rQ   rR   rÂ   r  rÉ  r‡  rˆ  s   @rU   r/   r/     sW   ø€ € € € € Ø?Ð?ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð rT   r/   )Ú	metaclassc                  ó  ‡ — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   dTˆ fd„ZdTˆ fd„ZdUd„ZdVd„Zee	j
        dWd„¦   «         ¦   «         Ze	j
        dWd„¦   «         ZdXd„ZdYd„ZdZd „Zd[d&„Zd\d(„Z	 	 	 d]d^d.„Zedfd_d1„Zedfd_d2„Zefd`d4„Zdad7„Zdbd9„Zdcd;„Zeddd@„¦   «         ZededB„¦   «         Zedeˆ fdC„¦   «         ZdfdD„ZdfdE„ZdgdF„Z dhdG„Z!didI„Z"djdJ„Z#dkdK„Z$dldmdO„Z%ednˆ fdQ„¦   «         Z&edldodS„¦   «         Z'ˆ xZ(S )pr0   rè   r  r�  zdict[str | Sentinel, t.Any]Ú_trait_notifiersr4  rY   r  rŽ  r�  rM  ra   ró   rX   rx   c               ó®   •— | j                              ¦   «         | _        i | _        i | _        d| _         t          t          | ¦  «        j        |i |¤Ž d S )NF)	r�  r   r  rÐ  r4  r  r~  r0   rÉ  )r}   rM  ró   r5  s      €rU   rÉ  zHasTraits.setup_instance7  s\   ø€ ð "ÔB×GÒGÑIÔIˆÔØ "ˆÔØ!#ˆÔØ&+ˆÔ#Ø-��i˜ÑÔÔ-¨tÐ>°vÐ>Ð>Ð>Ð>Ð>rT   c                ó¸  •— |}i }|�rdd„}|| _         d| _        i }|                     ¦   «         D ]H\  }}|                      |¦  «        r)t	          | ||¦  «         t          |d || d¬¦  «        ||<   ŒC|||<   ŒIt          |¦  «        t          | j        ¦  «        z  }	|	D ]R}| j        |                              | t          | |¦  «        ¦  «        }|  
                    ||¦  «         |||         d<   ŒSd	| _        | ` |	D ]}|                       ||         ¦  «         Œ	  t          ¦   «         j        |i |¤Ž d S # t          $ r—}
d
„ |D ¦   «         }|                     ¦   «         D ]\  }}|                     |› d|›�¦  «         Œ d                     |¦  «        }t!          d                     || j        j        |
¬¦  «        t(          d¬¦  «         Y d }
~
d S d }
~
ww xY w)Nrµ   r   rX   rx   c                ó   — d S rz   rS   )rµ   s    rU   Úignorez"HasTraits.__init__.<locals>.ignoreK  s   € Ø�rT   T©rÑ   ro  r¸   r  rj   r¸   Fc                ó,   — g | ]}t          |¦  «        ‘ŒS rS   )r^  )rI  Úargs     rU   ú
<listcomp>z&HasTraits.__init__.<locals>.<listcomp>m  s   € Ð:Ð:Ð:¨�$˜s™)œ)Ð:Ð:Ð:rT   ú=z, z¯Passing unrecognized arguments to super({classname}).__init__({arg_s}).
{error}
This is deprecated in traitlets 4.2.This error will be raised in a future release of traitlets.)Úarg_sÚ	classnamerB  r[   r\   rp  )Únotify_changer  r|  Ú	has_traitr«   r   r+  rŽ  r/  r�   Ú	set_traitr~  r~   rs   rŽ   rN  r   rO  r5  rP   r^   )r}   rM  ró   Ú
super_argsÚsuper_kwargsrÔ  Úchangesr’   rw   Úchangedr  Ú
arg_s_listr€  r�  rÚ  r5  s                  €rU   r~   zHasTraits.__init__A  s~  ø€ ð ˆ
Øˆàñ  	1ðð ð ð ð "(ˆDÔØ*.ˆDÔ'ØˆGØ$Ÿlšl™nœnð .ð .‘
��UØ—>’> #Ñ&Ô&ð .Ý˜D # uÑ-Ô-Ð-Ý#(Ø Ø Ø!Ø"Ø%ð$ñ $ô $�G˜C‘L�Lð ).�L Ñ%Ð%å˜&‘k”k¥C¨¬Ñ$5Ô$5Ñ5ˆGØð ,ð ,�Øœ SÔ)×9Ò9¸$ÅÈÈcÑ@RÔ@RÑSÔS�Ø—’˜s EÑ*Ô*Ð*Ø&+�˜”˜UÑ#Ð#Ø*/ˆDÔ'àÐ"Øð 1ð 1�Ø×"Ò" 7¨3¤<Ñ0Ô0Ð0Ð0ð	Ø�E‰GŒGÔ˜jÐ9¨LÐ9Ð9Ð9Ð9Ð9øÝð 	ð 	ð 	Ø:Ð:¨zÐ:Ñ:Ô:ˆJØ$×*Ò*Ñ,Ô,ð 0ð 0‘��1Ø×!Ò! Q , ,¨ , ,Ñ/Ô/Ð/Ð/Ø—I’I˜jÑ)Ô)ˆEÝðN÷ OUÊfØØ"œnÔ5Øð OUñ Oô Oõ
 #Øðñ ô ð ð ð ð ð ð ð øøøøð	øøøs   ÄD8 Ä8
GÅBGÇGc                óŽ   — | j                              ¦   «         }i |d<   i |d<   | j                             ¦   «         |d<   d|d<   |S )NrÐ  r4  r  Fr  )r’  r   r  )r}   Úds     rU   Ú__getstate__zHasTraits.__getstate__~  sV   € ØŒM×ÒÑ Ô ˆð !#ˆÐ
ÑØ!#ˆÐ
ÑØ!Ô/×4Ò4Ñ6Ô6ˆˆ/ÑØ&+ˆÐ
"Ñ#àˆrT   Ústatec                ó   — |                      ¦   «         | _        | j        }t          |¦  «        D ]M}	 t	          ||¦  «        }t          |t          ¦  «        r|                     | ¦  «         Œ># t          $ r Y ŒJw xY wd S rz   )	r   r’  r5  rŒ   r�   ri   r)   rÙ   r�   )r}   rç  rÓ   r’   rw   s        rU   Ú__setstate__zHasTraits.__setstate__Š  s˜   € ØŸ
š
™œˆŒð ŒnˆÝ�s‘8”8ð 
	.ð 
	.ˆCð.Ý  SÑ)Ô)�õ ˜e¥\Ñ2Ô2ð .Ø×'Ò'¨Ñ-Ô-Ð-øøõ	 "ð ð ð Ø�ðøøøð
	.ð 
	.s   ³A.Á.
A;Á:A;c              #  ób   K  — | j         rdV — dS 	 d| _         dV — d| _         dS # d| _         w xY w)zÛ
        A contextmanager for running a block with our cross validation lock set
        to True.

        At the end of the block, the lock's value is restored to its value
        prior to entering the block.
        NTF)r  rƒ   s    rU   Úcross_validation_lockzHasTraits.cross_validation_lock›  sY   è è € ð Ô&ð 	4ØˆEˆEˆEØˆFð4Ø.2�Ô+Ø���à.3�Ô+Ð+Ð+ø¨e�Ô+Ð3Ð3Ð3Ð3s   ‘% ¥	.c              #  ón  ‡‡	K  — | j         rdV — dS i Šdd„Š	dˆˆ	fd
„}	 || _        d| _         dV — t          ‰                     ¦   «         ¦  «        D ]Q}t	          | j        |¦  «        }|                     | t	          | |¦  «        ¦  «        }|                      ||¦  «         ŒRn•# t          $ rˆ}d„ | _        ‰ 	                    ¦   «         D ]b\  }}|ddd…         D ]Q}|j
        dk    rD|j        t          ur|                      ||j        ¦  «         Œ7| j                             |¦  «         ŒRŒci Š|‚d}~ww xY w	 d| _         | `‰                     ¦   «         D ]}|D ]}|                      |¦  «         ŒŒdS # d| _         | `‰                     ¦   «         D ]}|D ]}|                      |¦  «         ŒŒw xY w)aH  Context manager for bundling trait change notifications and cross
        validation.

        Use this when doing multiple trait assignments (init, config), to avoid
        race conditions in trait notifiers requesting other trait values.
        All trait notifications will fire after all values have been assigned.
        NÚpast_changesúlist[Bunch] | Nonerµ   r   rX   úlist[Bunch]c                ó–   — | €|gS | d         d         dk    r|j         dk    r|j        | d         d<   n|                      |¦  «         | S )z5Merges the provided change with the last if possible.Nre  rj   rµ   r¸   )rj   r¸   rŽ   )rí  rµ   s     rU   Úcompressz4HasTraits.hold_trait_notifications.<locals>.compress¾  s`   € àÐ'Ø"˜8�Oà# BÔ'¨Ô/°8Ò;Ð;ÀÄÈxÒ@WÐ@WØ28´*˜ RÔ(¨Ñ/Ð/ð %×+Ò+¨FÑ3Ô3Ð3Ø'Ð'rT   rx   c                óZ   •— | j         } ‰‰                     |¦  «        | ¦  «        ‰|<   d S rz   )rÑ   rý   )rµ   rÑ   Úcacherñ  s     €€rU   Úholdz0HasTraits.hold_trait_notifications.<locals>.holdÊ  s-   ø€ Ø”{�Ø&˜h u§y¢y°¡¤¸Ñ?Ô?��d‘��rT   Tc                ó   — d S rz   rS   rÈ   s    rU   rÉ   z4HasTraits.hold_trait_notifications.<locals>.<lambda>Û  s   € ¨t€ rT   re  F)rí  rî  rµ   r   rX   rï  rp  )r  rÜ  ÚlistrX  r�   r5  r/  rÞ  r=   r|  rj   ro  rB   r  ÚpopÚvalues)
r}   rô  rÑ   r1  rw   r  rá  rµ   ró  rñ  s
           @@rU   Úhold_trait_notificationsz"HasTraits.hold_trait_notifications¯  sl  øøè è € ð Ô&ð 6	3ØˆEˆEˆEØˆFà,.ˆEð
(ð 
(ð 
(ð 
(ð@ð @ð @ð @ð @ð @ð @ð 3ð &*�Ô"Ø.2�Ô+Ø���å  §¢¡¤Ñ.Ô.ð 0ð 0�DÝ# D¤N°DÑ9Ô9�EØ!×1Ò1°$½ÀÀdÑ8KÔ8KÑLÔL�EØ—N’N 4¨Ñ/Ô/Ð/Ð/ð0øõ ð ð ð à%3 ^�Ô"Ø%*§[¢[¡]¤]ð =ð =‘M�D˜'Ø")¨$¨$¨B¨$¤-ð =ð =˜à!œ;¨(Ò2Ð2Ø%œzµÐ:Ð:Ø $§¢¨t°V´ZÑ @Ô @Ð @Ð @à $Ô 2× 6Ò 6°tÑ <Ô <Ð <øð=ð �Ø�øøøøðøøøð	0ð$ /4�Ô+àÐ&ð  %Ÿ|š|™~œ~ð 3ð 3�GØ")ð 3ð 3˜Ø×*Ò*¨6Ñ2Ô2Ð2Ð2ð3ð3ð 3øð /4�Ô+àÐ&ð  %Ÿ|š|™~œ~ð 3ð 3�GØ")ð 3ð 3˜Ø×*Ò*¨6Ñ2Ô2Ð2Ð2ð3ð3øøøs+    BB& Â%E8 Â&
D8Â0BD3Ä3D8Ä8E8 Å8<F4rÑ   rW   r)  r(  c           	     óT   — |                       t          |||| d¬¦  «        ¦  «         d S )Nrµ   rÕ  )rÜ  r   )r}   rÑ   r)  r(  s       rU   r'  zHasTraits._notify_traitð  sE   € Ø×ÒÝØØØØØðñ ô ñ	
ô 	
ð 	
ð 	
ð 	
rT   rµ   r   c                ó,   — |                       |¦  «        S )z"Notify observers of a change event)r  r¹   s     rU   rÜ  zHasTraits.notify_changeû  s   € à×%Ò% fÑ-Ô-Ð-rT   Úeventc                óÄ  — t          |t          ¦  «        st          |¦  «        }|d         |d         }}g }|| j        v r‰|                     | j                             |i ¦  «                             |g ¦  «        ¦  «         |                     | j                             |i ¦  «                             t
          g ¦  «        ¦  «         t
          | j        v r“|                     | j                             t
          i ¦  «                             |g ¦  «        ¦  «         |                     | j                             t
          i ¦  «                             t
          g ¦  «        ¦  «         d|z  }|d         dk    r‡t          | |¦  «        rwt          | j        |¦  «        }t          |t          ¦  «        sMt          || j        |d¦  «         t          | |¦  «        }||vr"|                     t          |¦  «        ¦  «         |D ][}t          |t          ¦  «        r|j        }n1t          |t          ¦  «        r|j        �t          | |j        ¦  «        } ||¦  «         Œ\dS )zNotify observers of any eventrÑ   rj   z_%s_changedrµ   z$use @observe and @unobserve instead.N)ri   r   rÐ  Úextendrý   r   r  r�   r5  r9   r   rŽ   rr  rb  r�   r)   rÑ   )	r}   rü  rÑ   rj   Ú	callablesÚ
magic_nameÚclass_valuerc  r›  s	            rU   r  zHasTraits._notify_observersÿ  sE  € å˜%¥Ñ'Ô'ð 	!å˜%‘L”LˆEØ˜6”] E¨&¤Mˆdˆàˆ	Ø�4Ô(Ð(Ð(Ø×Ò˜TÔ2×6Ò6°t¸RÑ@Ô@×DÒDÀTÈ2ÑNÔNÑOÔOÐOØ×Ò˜TÔ2×6Ò6°t¸RÑ@Ô@×DÒDÅSÈ"ÑMÔMÑNÔNÐNÝ�$Ô'Ð'Ð'Ø×Ò˜TÔ2×6Ò6µs¸BÑ?Ô?×CÒCÀDÈ"ÑMÔMÑNÔNÐNØ×Ò˜TÔ2×6Ò6µs¸BÑ?Ô?×CÒCÅCÈÑLÔLÑMÔMÐMð # TÑ)ˆ
Ø�Œ=˜HÒ$Ð$­°°zÑ)BÔ)BÐ$Ý! $¤.°*Ñ=Ô=ˆKÝ˜k­>Ñ:Ô:ð 
<Ý!ØØ”NØØ:ñ	ô ð õ ˜T :Ñ.Ô.�à˜YÐ&Ð&Ø×$Ò$Õ%6°rÑ%:Ô%:Ñ;Ô;Ð;ð ð 	ð 	ˆAõ ˜!Õ-Ñ.Ô.ð *Ø”J��Ý˜A�|Ñ,Ô,ð *°´Ð1CÝ˜D !¤&Ñ)Ô)�àˆAˆe‰HŒHˆHˆHð	ð 	rT   Úhandlerút.Callable[..., t.Any]rž  rj   ústr | Sentinelc                óÖ   — || j         vrg }||i| j         |<   n5|| j         |         vrg }|| j         |         |<   n| j         |         |         }||vr|                     |¦  «         d S d S rz   )rÐ  rŽ   )r}   r  rÑ   rj   Únlists        rU   Ú_add_notifierszHasTraits._add_notifiers*  s•   € ð �tÔ,Ð,Ð,Ø!#ˆEØ+/°¨-ˆDÔ! $Ñ'Ð'à˜4Ô0°Ô6Ð6Ð6Ø�Ø49�Ô% dÔ+¨DÑ1Ð1àÔ-¨dÔ3°DÔ9�Ø˜%ÐÐØ�LŠL˜Ñ!Ô!Ð!Ð!Ð!ð  ÐrT   út.Callable[..., t.Any] | Nonec                óš   — 	 |€| j         |         |= d S | j         |         |                              |¦  «         d S # t          $ r Y d S w xY wrz   )rÐ  Úremover  )r}   r  rÑ   rj   s       rU   Ú_remove_notifierszHasTraits._remove_notifiers9  sk   € ð	ØˆØÔ)¨$Ô/°Ð5Ð5Ð5àÔ% dÔ+¨DÔ1×8Ò8¸ÑAÔAÐAÐAÐAøÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚< ”&< ¼
A
Á	A
NFúEventHandler | NoneúSentinel | str | Noner
  c                óÞ   — t          dt          d¬¦  «         |€t          }|r&|                      t	          |¦  «        |¬¦  «         dS |                      t	          |¦  «        |¬¦  «         dS )aÃ  DEPRECATED: Setup a handler to be called when a trait changes.

        This is used to setup dynamic notifications of trait changes.

        Static handlers can be created by creating methods on a HasTraits
        subclass with the naming convention '_[traitname]_changed'.  Thus,
        to create static handler for the trait 'a', create the method
        _a_changed(self, name, old, new) (fewer arguments can be used, see
        below).

        If `remove` is True and `handler` is not specified, all change
        handlers for the specified name are uninstalled.

        Parameters
        ----------
        handler : callable, None
            A callable that is called when a trait changes.  Its
            signature can be handler(), handler(name), handler(name, new),
            handler(name, old, new), or handler(name, old, new, self).
        name : list, str, None
            If None, the handler will apply to all traits.  If a list
            of str, handler will apply to all names in the list.  If a
            str, the handler will apply just to that name.
        remove : bool
            If False (the default), then install the handler.  If True
            then unintall it.
        zCon_trait_change is deprecated in traitlets 4.1: use observe insteadr[   r\   Nrª   )r   r^   r   r½   rr  rJ   )r}   r  rÑ   r
  s       rU   Úon_trait_changezHasTraits.on_trait_changeD  s„   € õB 	ØQÝØð	
ñ 	
ô 	
ð 	
ð
 ˆ<ÝˆDØð 	AØ�NŠNÕ,¨WÑ5Ô5¸TˆNÑBÔBÐBÐBÐBà�LŠLÕ*¨7Ñ3Ô3¸4ˆLÑ@Ô@Ð@Ð@Ð@rT   rm   rn   c                óX   — t          |¦  «        D ]}|                      |||¦  «         ŒdS )a	  Setup a handler to be called when a trait changes.

        This is used to setup dynamic notifications of trait changes.

        Parameters
        ----------
        handler : callable
            A callable that is called when a trait changes. Its
            signature should be ``handler(change)``, where ``change`` is a
            dictionary. The change dictionary at least holds a 'type' key.
            * ``type``: the type of notification.
            Other keys may be passed depending on the value of 'type'. In the
            case where type is 'change', we also have the following keys:
            * ``owner`` : the HasTraits instance
            * ``old`` : the old value of the modified trait attribute
            * ``new`` : the new value of the modified trait attribute
            * ``name`` : the name of the modified trait attribute.
        names : list, str, All
            If names is All, the handler will apply to all traits.  If a list
            of str, handler will apply to all names in the list.  If a
            str, the handler will apply just to that name.
        type : str, All (default: 'change')
            The type of notification to filter by. If equal to All, then all
            notifications are passed to the observe handler.
        N)rL   r  ©r}   r  rm   rj   rÑ   s        rU   rJ   zHasTraits.observeq  s@   € õ> (¨Ñ.Ô.ð 	5ð 	5ˆDØ×Ò ¨¨tÑ4Ô4Ð4Ð4ð	5ð 	5rT   c                óX   — t          |¦  «        D ]}|                      |||¦  «         ŒdS )aÖ  Remove a trait change handler.

        This is used to unregister handlers to trait change notifications.

        Parameters
        ----------
        handler : callable
            The callable called when a trait attribute changes.
        names : list, str, All (default: All)
            The names of the traits for which the specified handler should be
            uninstalled. If names is All, the specified handler is uninstalled
            from the list of notifiers corresponding to all changes.
        type : str or All (default: 'change')
            The type of notification to filter by. If All, the specified handler
            is uninstalled from the list of notifiers corresponding to all types.
        N)rL   r  r  s        rU   r½   zHasTraits.unobserve“  s@   € õ, (¨Ñ.Ô.ð 	8ð 	8ˆDØ×"Ò" 7¨D°$Ñ7Ô7Ð7Ð7ð	8ð 	8rT   ústr | t.Anyc                ó^   — |t           u r	i | _        dS 	 | j        |= dS # t          $ r Y dS w xY w)zRemove trait change handlers of any type for the specified name.
        If name is not specified, removes all trait notifiers.N)r   rÐ  r  rÄ  s     rU   Úunobserve_allzHasTraits.unobserve_all¬  sS   € ð •3ˆ;ˆ;Ø$&ˆDÔ!Ð!Ð!ðØÔ)¨$Ð/Ð/Ð/øÝð ð ð Ø��ðøøøs   ” ž
,«,út.Callable[..., None]útuple[str | Sentinel, ...]c                óÚ   — |D ]X}d|z  }t          | |¦  «        rAt          | j        |¦  «        }t          |t          ¦  «        st          || j        |d¦  «         ŒY|D ]}|| j        |<   ŒdS )a“  Setup a handler to be called when a trait should be cross validated.

        This is used to setup dynamic notifications for cross-validation.

        If a validator is already registered for any of the provided names, a
        TraitError is raised and no new validator is registered.

        Parameters
        ----------
        handler : callable
            A callable that is called when the given trait is cross-validated.
            Its signature is handler(proposal), where proposal is a Bunch (dictionary with attribute access)
            with the following attributes/keys:
                * ``owner`` : the HasTraits instance
                * ``value`` : the proposed value for the modified trait attribute
                * ``trait`` : the TraitType instance associated with the attribute
        names : List of strings
            The names of the traits that should be cross-validated
        r2  r3  N)r  r�   r5  ri   rE   r   r4  )r}   r  rm   rÑ   r   r  s         rU   rÁ  zHasTraits._register_validator·  sž   € ð, ð 
	ð 
	ˆDØ'¨$Ñ.ˆJÝ�t˜ZÑ(Ô(ð Ý% d¤n°jÑAÔA�Ý! +­Ñ?Ô?ð Ý%Ø#ØœØ"Ø:ñ	ô ð øð ð 	3ð 	3ˆDØ+2ˆDÔ" 4Ñ(Ð(ð	3ð 	3rT   r—   c                ó  — | j         }d|j        i}t          |d¦  «        r
|j        |d<   |                     |¦  «         t          |j        |f|¦  «        | _         |                     ¦   «         D ]}|                     | ¦  «         ŒdS )z;Dynamically add trait attributes to the HasTraits instance.rQ   rR   N)	r5  rQ   r  rR   r  rj   rP   rø  rÙ   )r}   r—   rÓ   Úattrsr1  s        rU   Ú
add_traitszHasTraits.add_traitsÛ  s•   € àŒnˆØ˜sœ~Ð.ˆÝ�3˜Ñ'Ô'ð 	5à$'Ô$4ˆE�.Ñ!Ø�Š�VÑÔÐÝ˜cœl¨S¨F°EÑ:Ô:ˆŒØ—]’]‘_”_ð 	&ð 	&ˆEØ×Ò Ñ%Ô%Ð%Ð%ð	&ð 	&rT   rw   c                óº   — | j         }|                      |¦  «        st          d|j        › d|› �¦  «        ‚t	          ||¦  «                             | |¦  «         dS )z>Forcibly sets trait attribute, including read-only attributes.úClass ú does not have a trait named N)r5  rÝ  r=   rP   r�   r+  )r}   rÑ   rw   rÓ   s       rU   rÞ  zHasTraits.set_traitç  sf   € àŒnˆØ�~Š~˜dÑ#Ô#ð 	YÝÐW c¤lÐWÐWÐQUÐWÐWÑXÔXÐXÝ��TÑÔ×Ò˜t UÑ+Ô+Ð+Ð+Ð+rT   rÓ   rÔ   ré   ú	list[str]c                ó6   — t           | j        di |¤Ž¦  «        S )z•Get a list of all the names of this class' traits.

        This method is just like the :meth:`trait_names` method,
        but is unbound.
        rS   )rö  Úclass_traits)rÓ   ré   s     rU   Úclass_trait_nameszHasTraits.class_trait_namesî  s&   € õ Ð$�CÔ$Ð0Ð0 xÐ0Ð0Ñ1Ô1Ð1rT   ú"dict[str, TraitType[t.Any, t.Any]]c                ó`  — | j                              ¦   «         }t          |¦  «        dk    r|S i }|                     ¦   «         D ]h\  }}|                     ¦   «         D ]I\  }}t	          |¦  «        st          |¦  «        } ||j                             |d¦  «        ¦  «        s nŒJ|||<   Œi|S )aÔ  Get a ``dict`` of all the traits of this class.  The dictionary
        is keyed on the name and the values are the TraitType objects.

        This method is just like the :meth:`traits` method, but is unbound.

        The TraitTypes returned don't know anything about the values
        that the various HasTrait's instances are holding.

        The metadata kwargs allow functions to be passed in which
        filter traits based on metadata values.  The functions should
        take a single value as an argument and return a boolean.  If
        any function returns False, then the trait is not included in
        the output.  If a metadata key doesn't exist, None will be passed
        to the function.
        r   N©rŽ  r   r–   r|  Úcallablerv   ré   rý   )rÓ   ré   r—   ÚresultrÑ   r1  Ú	meta_nameÚ	meta_evals           rU   r!  zHasTraits.class_traits÷  sÇ   € ð" ”×!Ò!Ñ#Ô#ˆåˆx‰=Œ=˜AÒÐØˆMàˆØ!Ÿ<š<™>œ>ð 	%ð 	%‰KˆD�%Ø(0¯ªÑ(8Ô(8ð %ð %Ñ$�	˜9Ý 	Ñ*Ô*ð 7Ý +¨IÑ 6Ô 6�IØ �y ¤×!3Ò!3°I¸tÑ!DÔ!DÑEÔEð Ø�Eðð  %��t‘øàˆrT   c                ó|   •‡— t          | | ¦  «        Šˆfd„ | j        di |¤Ž                     ¦   «         D ¦   «         S )z›Get a dict of all the traitlets defined on this class, not a parent.

        Works like `class_traits`, except for excluding traits from parents.
        c                óB   •— i | ]\  }}t          ‰|d ¦  «        |u¯||“ŒS rz   ©r�   )rI  rt   rg   Úsups      €rU   ú
<dictcomp>z.HasTraits.class_own_traits.<locals>.<dictcomp>"  ó@   ø€ ð 
ð 
ð 
á��AÝ�s˜A˜tÑ$Ô$¨AÐ-Ð-ð ˆqà-Ð-Ð-rT   rS   )r~  r!  r|  )rÓ   ré   r-  r5  s     @€rU   Úclass_own_traitszHasTraits.class_own_traits  s]   øø€ õ �C˜‰oŒoˆð
ð 
ð 
ð 
à*˜#Ô*Ð6Ð6¨XÐ6Ð6×<Ò<Ñ>Ô>ð
ñ 
ô 
ð 	
rT   c                ó   — || j         v S )z?Returns True if the object has a trait with the specified name.)rŽ  rÄ  s     rU   rÝ  zHasTraits.has_trait(  s   € à�t”|Ð#Ð#rT   c                ó   — || j         v S )a)  Returns True if the specified trait has a value.

        This will return false even if ``getattr`` would return a
        dynamically generated default value. These default values
        will be recognized as existing only after they have been
        generated.

        Example

        .. code-block:: python

            class MyClass(HasTraits):
                i = Int()


            mc = MyClass()
            assert not mc.trait_has_value("i")
            mc.i  # generates a default value
            assert mc.trait_has_value("i")
        )r  rÄ  s     rU   Útrait_has_valuezHasTraits.trait_has_value,  s   € ð* �tÔ)Ð)Ð)rT   c                ó6   ‡ — ˆ fd„ ‰ j         di |¤ŽD ¦   «         S )aè  A ``dict`` of trait names and their values.

        The metadata kwargs allow functions to be passed in which
        filter traits based on metadata values.  The functions should
        take a single value as an argument and return a boolean.  If
        any function returns False, then the trait is not included in
        the output.  If a metadata key doesn't exist, None will be passed
        to the function.

        Returns
        -------
        A ``dict`` of trait names and their values.

        Notes
        -----
        Trait values are retrieved via ``getattr``, any exceptions raised
        by traits or the operations they may trigger will result in the
        absence of a trait value in the result ``dict``.
        c                ó2   •— i | ]}|t          ‰|¦  «        “ŒS rS   r,  )rI  rÑ   r}   s     €rU   r.  z*HasTraits.trait_values.<locals>.<dictcomp>W  s%   ø€ ÐSÐSÐS¨d�•g˜d DÑ)Ô)ÐSÐSÐSrT   rS   r¿  ©r}   ré   s   ` rU   Útrait_valueszHasTraits.trait_valuesC  s4   ø€ ð( TÐSÐSÐSÐ6F°dÔ6FÐ6RÐ6RÈÐ6RÐ6RÐSÑSÔSÐSrT   c                óž   — d|z  }|| j         v rt          | |¦  «        S || j        j         v rt          | j        |¦  «        S | j        |         S )zŒReturn default generator for a given trait

        Walk the MRO to resolve the correct default generator according to inheritance.
        r‹  )r’  r�   r5  r�  )r}   rÑ   Úmethod_names      rU   Ú_get_trait_default_generatorz&HasTraits._get_trait_default_generatorY  s[   € ð
 $ dÑ*ˆØ˜$œ-Ð'Ð'Ý˜4 Ñ-Ô-Ð-Ø˜$œ.Ô1Ð1Ð1Ý˜4œ>¨;Ñ7Ô7Ð7ØÔ1°$Ô7Ð7rT   údict[str, t.Any] | Sentinelc           	     ó²  — |D ]?}|                       |¦  «        s(t          d|› dt          | ¦  «        j        › d�¦  «        ‚Œ@t	          |¦  «        dk    r7t	          |¦  «        dk    r$ |                      |d         ¦  «        | ¦  «        S  | j        di |¤Ž}|                     |¦  «         i }|D ]#} |                      |¦  «        | ¦  «        ||<   Œ$|S )z·Return a trait's default value or a dictionary of them

        Notes
        -----
        Dynamically generated default values may
        depend on the current state of the object.ú'z' is not a trait of 'z' instancesr   r   rS   )rÝ  r=   rj   rP   r–   r:  r¸  rþ  )r}   rm   ré   rt   r¸  Údefaultss         rU   r  zHasTraits.trait_defaultse  s  € ð ð 	_ð 	_ˆAØ—>’> !Ñ$Ô$ð _Ý Ð!] QÐ!]Ð!]½TÀ$¹Z¼ZÔ=PÐ!]Ð!]Ð!]Ñ^Ô^Ð^ð_õ ˆu‰:Œ:˜Š?ˆ?�s 8™}œ}°Ò1Ð1Ø>�4×4Ò4°U¸1´XÑ>Ô>¸tÑDÔDÐDà&�dÔ&Ð2Ð2¨Ð2Ð2ˆØ×Ò˜5Ñ!Ô!Ð!àˆØð 	Eð 	EˆAØ>˜$×;Ò;¸AÑ>Ô>¸tÑDÔDˆH�Q‰KˆKØˆrT   c                ó6   — t           | j        di |¤Ž¦  «        S )z2Get a list of all the names of this class' traits.rS   )rö  r—   r6  s     rU   r¸  zHasTraits.trait_names{  s"   € å�K�D”KÐ+Ð+ (Ð+Ð+Ñ,Ô,Ð,rT   c                ó`  — | j                              ¦   «         }t          |¦  «        dk    r|S i }|                     ¦   «         D ]h\  }}|                     ¦   «         D ]I\  }}t	          |¦  «        st          |¦  «        } ||j                             |d¦  «        ¦  «        s nŒJ|||<   Œi|S )a‡  Get a ``dict`` of all the traits of this class.  The dictionary
        is keyed on the name and the values are the TraitType objects.

        The TraitTypes returned don't know anything about the values
        that the various HasTrait's instances are holding.

        The metadata kwargs allow functions to be passed in which
        filter traits based on metadata values.  The functions should
        take a single value as an argument and return a boolean.  If
        any function returns False, then the trait is not included in
        the output.  If a metadata key doesn't exist, None will be passed
        to the function.
        r   Nr%  )r}   ré   r—   r'  rÑ   r1  r(  r)  s           rU   r—   zHasTraits.traits  sÇ   € ð ”×"Ò"Ñ$Ô$ˆåˆx‰=Œ=˜AÒÐØˆMàˆØ!Ÿ<š<™>œ>ð 	%ð 	%‰KˆD�%Ø(0¯ªÑ(8Ô(8ð %ð %Ñ$�	˜9Ý 	Ñ*Ô*ð 7Ý +¨IÑ 6Ô 6�IØ �y ¤×!3Ò!3°I¸tÑ!DÔ!DÑEÔEð Ø�Eðð  %��t‘øàˆrT   Ú	traitnamer’   rF   c                óf  — 	 t          | j        |¦  «        }n2# t          $ r%}t          d| j        j        › d|› �¦  «        |‚d}~ww xY wd|z   dz   }t          | |¦  «        r6|t          | |¦  «        v r$t          | |¦  «                             ||¦  «        S |j                             ||¦  «        S )z%Get metadata values for trait by key.r  r  Nr†  Ú	_metadata)r�   r5  r�   r=   rP   r  rý   ré   )r}   rA  r’   rF   r1  r  Úmetadata_names          rU   Útrait_metadatazHasTraits.trait_metadataž  sÔ   € ð	Ý˜DœN¨IÑ6Ô6ˆEˆEøÝð 	ð 	ð 	ÝØZ˜œÔ0ÐZÐZÈyÐZÐZñô àðøøøøð	øøøð ˜i™¨+Ñ5ˆÝ�4˜Ñ'Ô'ð 	4¨Cµ7¸4ÀÑ3OÔ3OÐ,OÐ,OÝ˜4 Ñ/Ô/×3Ò3°C¸ÑAÔAÐAà”>×%Ò% c¨7Ñ3Ô3Ð3s   ‚ ˜
A¢ AÁAúdict[str, EventHandler]c                óŒ   •‡— t          | | ¦  «        Šˆfd„|                      |¦  «                             ¦   «         D ¦   «         S )z Get a dict of all event handlers defined on this class, not a parent.

        Works like ``event_handlers``, except for excluding traits from parents.
        c                óB   •— i | ]\  }}t          ‰|d ¦  «        |u¯||“ŒS rz   r,  )rI  rt   r  r-  s      €rU   r.  z4HasTraits.class_own_trait_events.<locals>.<dictcomp>³  r/  rT   )r~  Úeventsr|  )rÓ   rÑ   r-  r5  s     @€rU   Úclass_own_trait_eventsz HasTraits.class_own_trait_events¬  sV   øø€ õ �C˜‰oŒoˆð
ð 
ð 
ð 
àŸ*š* TÑ*Ô*×0Ò0Ñ2Ô2ð
ñ 
ô 
ð 	
rT   rÐ   c                óÚ   — i }t          | ¦  «        D ]X\  }}t          |t          ¦  «        r>|€|||<   Œ"||j        v r|||<   Œ1t	          |d¦  «        r | j        di |j        ¤Žr|||<   ŒY|S )aŽ  Get a ``dict`` of all the event handlers of this class.

        Parameters
        ----------
        name : str (default: None)
            The name of a trait of this class. If name is ``None`` then all
            the event handlers of this class will be returned instead.

        Returns
        -------
        The event handlers associated with a trait name, or all event handlers.
        NÚtagsrS   )r“   ri   r)   r¸  r  rL  )rÓ   rÑ   rI  r€  r�  s        rU   Útrait_eventszHasTraits.trait_events¹  s™   € ð ˆÝ˜s‘O”Oð 	&ð 	&‰DˆAˆqÝ˜!�\Ñ*Ô*ð &Ø�<Ø !�F˜1‘I�IØ˜Qœ]Ð*Ð*Ø !�F˜1‘I�IÝ˜Q Ñ'Ô'ð &Ø&�s”Ð0Ð0¨¬Ð0Ð0ð &Ø$%˜˜q™	øØˆrT   rÍ  )rX   rè   )rç  rè   rX   rx   rÀ   )rÑ   rW   r)  ra   r(  ra   rX   rx   rp  )rü  r   rX   rx   )r  r  rÑ   rž  rj   r  rX   rx   )r  r  rÑ   rž  rj   r  rX   rx   )NNF)r  r  rÑ   r  r
  rY   rX   rx   )r  r  rm   rn   rj   rž  rX   rx   )rÑ   r  rX   rx   )r  r  rm   r  rX   rx   )r—   ra   rX   rx   )rÑ   rW   rw   ra   rX   rx   )rÓ   rÔ   ré   ra   rX   r  )rÓ   rÔ   ré   ra   rX   r#  )rÑ   rW   rX   rY   )ré   ra   rX   rè   )rÑ   rW   rX   ra   )rm   rW   ré   ra   rX   r;  )ré   ra   rX   r  )ré   ra   rX   r#  rz   )rA  rW   r’   rW   rF   ra   rX   ra   )rÓ   rÔ   rÑ   rW   rX   rF  )rÓ   rÔ   rÑ   rÐ   rX   rF  ))rP   rQ   rR   rà   rÉ  r~   ræ  ré  ÚpropertyrÃ   rÄ   rë  rù  r'  rÜ  r  r  r  r  r   rJ   r½   r  rÁ  r  rÞ  Úclassmethodr"  r!  r0  rÝ  r3  r7  r:  r  r¸  r—   rE  rJ  rM  r‡  rˆ  s   @rU   r0   r0   .  s¿  ø€ € € € € € Ø#Ð#Ð#Ñ#Ø6Ð6Ð6Ñ6Ø1Ð1Ð1Ñ1Ø2Ð2Ð2Ñ2Ø Ð Ð Ñ ØÐÐÑØ3Ð3Ð3Ñ3ð?ð ?ð ?ð ?ð ?ð ?ð;ð ;ð ;ð ;ð ;ð ;ðz
ð 
ð 
ð 
ð.ð .ð .ð .ð" ØÔð4ð 4ð 4ñ Ôñ „Xð4ð$ Ôð>3ð >3ð >3ñ Ôð>3ð@	
ð 	
ð 	
ð 	
ð.ð .ð .ð .ð)ð )ð )ð )ðV"ð "ð "ð "ð	ð 	ð 	ð 	ð (,Ø&*Øð	+Að +Að +Að +Að +Að` >AØ'ð	 5ð  5ð  5ð  5ð  5ðJ >AØ'ð	8ð 8ð 8ð 8ð 8ð2 14ð 	ð 	ð 	ð 	ð 	ð"3ð "3ð "3ð "3ðH
&ð 
&ð 
&ð 
&ð,ð ,ð ,ð ,ð ð2ð 2ð 2ñ „[ð2ð ðð ð ñ „[ððB ð
ð 
ð 
ð 
ð 
ñ „[ð
ð$ð $ð $ð $ð*ð *ð *ð *ð.Tð Tð Tð Tð,
8ð 
8ð 
8ð 
8ðð ð ð ð,-ð -ð -ð -ðð ð ð ð>4ð 4ð 4ð 4ð 4ð ð

ð 

ð 

ð 

ð 

ñ „[ð

ð ðð ð ð ñ „[ðð ð ð ð rT   r0   c                  ó   — e Zd ZdZdd„ZdS )	r"   ze
    A trait with error reporting and string -> type resolution for Type,
    Instance and This.
    ÚstringrW   rX   ra   c                ó    — t          |¦  «        S )zM
        Resolve a string supplied for a type into an actual object.
        r   )r}   rQ  s     rU   Ú_resolve_stringz#ClassBasedTraitType._resolve_stringã  s   € õ ˜6Ñ"Ô"Ð"rT   N©rQ  rW   rX   ra   ©rP   rQ   rR   rÂ   rS  rS   rT   rU   r"   r"   Ý  s2   € € € € € ðð ð
#ð #ð #ð #ð #ð #rT   r"   c                  ó(  ‡ — e Zd ZdZej        r`ej        	 	 	 	 	 	 d,d-d„¦   «         Zej        	 	 	 	 	 	 d,d.d„¦   «         Zej        	 	 	 	 	 	 d,d/d„¦   «         Zej        	 	 	 	 	 	 d,d0d„¦   «         Zedd dddfd1ˆ fd"„Zd2d&„Z	d3d(„Z
d4d)„Zd5d*„Zd3d+„Zˆ xZS )6r@   z<A trait whose value must be a subclass of a specified class..r}   úType[type, type]rî   úSentinel | None | strÚklassú
None | strrê   úLiteral[False]rë   rð   rñ   rÐ   rò   út.Any | Noneró   ra   rX   rx   c                ó   — d S rz   rS   ©r}   rî   rY  rê   rë   rñ   rò   ró   s           rU   r~   zType.__init__ï  ó	   € ð ˆCrT   úType[type | None, type | None]úLiteral[True]c                ó   — d S rz   rS   r^  s           rU   r~   zType.__init__ü  r_  rT   ú
Type[S, S]râ   c                ó   — d S rz   rS   r^  s           rU   r~   zType.__init__	  r_  rT   úType[S | None, S | None]úS | Nonec                ó   — d S rz   rS   r^  s           rU   r~   zType.__init__  r_  rT   NFrY   c                ó   •— |t           u r|€t          n|}n|}|€|�	|t           u rt          }n|}t          j        |¦  «        s$t	          |t
          ¦  «        st          d¦  «        ‚|| _         t          ¦   «         j	        |f||||dœ|¤Ž dS )a^  Construct a Type trait

        A Type trait specifies that its values must be subclasses of
        a particular class.

        If only ``default_value`` is given, it is used for the ``klass`` as
        well. If neither are given, both default to ``object``.

        Parameters
        ----------
        default_value : class, str or None
            The default value must be a subclass of klass.  If an str,
            the str must be a fully specified class name, like 'foo.bar.Bah'.
            The string is resolved into real class, when the parent
            :class:`HasTraits` class is instantiated.
        klass : class, str [ default object ]
            Values of this trait must be a subclass of klass.  The klass
            may be specified in a string like: 'foo.bar.MyClass'.
            The string is resolved into real class, when the parent
            :class:`HasTraits` class is instantiated.
        allow_none : bool [ default False ]
            Indicates whether None is allowed as an assignable value.
        **kwargs
            extra kwargs passed to `ClassBasedTraitType`
        Nz"A Type trait must specify a class.)rê   rë   rñ   rò   )
rB   rˆ   r÷   r}  ri   rW   r=   rY  r~  r~   )
r}   rî   rY  rê   rë   rñ   rò   ró   Únew_default_valuer5  s
            €rU   r~   zType.__init__#  sÌ   ø€ ðF �IÐ%Ð%Ø+0¨=¥ ¸uÐÐà -Ðàˆ=ØÐ%¨=½IÐ+EÐ+EÝ��à%�å” Ñ&Ô&ð 	C­*°U½CÑ*@Ô*@ð 	CÝÐAÑBÔBÐBàˆŒ
à�‰ŒÔØð	
à!ØØØð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
rT   r™   rw   rá   c           
     ó>  — t          |t          ¦  «        rH	 |                      |¦  «        }n1# t          $ r$}t	          d| j        › d|› d|›d�¦  «        |‚d}~ww xY w	 t          || j        ¦  «        r|S n# t          $ r Y nw xY w|  	                    ||¦  «         dS )z4Validates that the value is a valid object instance.zThe 'ú' trait of z instance must be a type, but z could not be importedN)
ri   rW   rS  ÚImportErrorr=   rÑ   rk   rY  r  rB  ©r}   r™   rw   r  s       rU   rM   zType.validate_  sô   € å�e�SÑ!Ô!ð 	ðØ×,Ò,¨UÑ3Ô3��øÝð ð ð Ý ð7˜DœIð 7ð 7°#ð 7ð 7Øð7ð 7ð 7ñô ð ðøøøøðøøøð
	Ý˜% ¤Ñ,Ô,ð Ø�ðøåð 	ð 	ð 	ØˆDð	øøøð 	�
Š
�3˜ÑÔÐÐÐs&   —- ­
A·AÁAÁA7 Á7
BÂBrW   c                ó¤   — t          | j        t          ¦  «        r| j        }n| j        j        dz   | j        j        z   }d|z  }| j        r|dz   S |S )ú#Returns a description of the trait.rö   za subclass of '%s'ú or None)ri   rY  rW   rQ   rP   rê   )r}   rY  r'  s      rU   rA  z	Type.infoq  s]   € å�d”j¥#Ñ&Ô&ð 	FØ”JˆEˆEà”JÔ)¨CÑ/°$´*Ô2EÑEˆEØ%¨Ñ-ˆØŒ?ð 	'Ø˜JÑ&Ð&ØˆrT   c                ó.   — |                       ¦   «          d S rz   ©Ú_resolve_classesrÝ   s     rU   rÙ   zType.instance_init|  ó   € ð 	×ÒÑÔÐÐÐrT   c                óî   — t          | j        t          ¦  «        r|                      | j        ¦  «        | _        t          | j        t          ¦  «        r!|                      | j        ¦  «        | _        d S d S rz   )ri   rY  rW   rS  rî   rƒ   s    rU   rs  zType._resolve_classes�  sn   € Ý�d”j¥#Ñ&Ô&ð 	:Ø×-Ò-¨d¬jÑ9Ô9ˆDŒJÝ�dÔ(­#Ñ.Ô.ð 	JØ!%×!5Ò!5°dÔ6HÑ!IÔ!IˆDÔÐÐð	Jð 	JrT   c                óœ   — | j         }|€J ‚t          |t          ¦  «        rt          |¦  «        S t          |j        › d|j        › �¦  «        S )Nrö   )rî   ri   rW   r^  rQ   rP   r|   s     rU   r_  zType.default_value_repr‡  sV   € ØÔ"ˆØÐ Ð Ð Ý�e�SÑ!Ô!ð 	@Ý˜‘;”;Ðå˜5Ô+Ð>Ð>¨e¬nÐ>Ð>Ñ?Ô?Ð?rT   ©......)r}   rW  rî   rX  rY  rZ  rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   r`  rî   rX  rY  rZ  rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   rc  rî   râ   rY  râ   rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   re  rî   rf  rY  râ   rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )rî   ra   rY  ra   rê   rY   rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   ©r™   ra   rw   ra   rX   rá   r‡   rß   r¿   )rP   rQ   rR   rÂ   rg   ÚTYPE_CHECKINGr`  r~   rB   rM   rA  rÙ   rs  r_  r‡  rˆ  s   @rU   r@   r@   ê  sÁ  ø€ € € € € ØFÐFà„ð 4à	
Œð 47Ø #Ø),Ø%(Ø"Ø#&ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð 47Ø #Ø(+Ø%(Ø"Ø#&ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð  #ØØ),Ø%(Ø"Ø#&ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð '*ØØ(+Ø%(Ø"Ø#&ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð  )ØØ Ø!%ØØ#ð:
ð :
ð :
ð :
ð :
ð :
ð :
ðxð ð ð ð$	ð 	ð 	ð 	ð ð  ð  ð  ð
Jð Jð Jð Jð@ð @ð @ð @ð @ð @ð @ð @rT   r@   c                  óH  ‡ — e Zd ZU dZdZded<   ej        r`ej        	 	 	 	 	 	 d.d/d„¦   «         Z	ej        	 	 	 	 	 	 d.d0d„¦   «         Z	ej        	 	 	 	 	 	 d.d1d„¦   «         Z	ej        	 	 	 	 	 	 d.d2d„¦   «         Z		 	 	 	 	 	 d3d4ˆ fd!„Z	d5d%„Z
d6d'„Zd7d(„Zd8d)„Zd9d*„Zd6d+„Zd:d-„Zˆ xZS );r1   zÝA trait whose value must be an instance of a specified class.

    The value can also be an instance of a subclass of the specified class.

    Subclasses can declare default classes by overriding the klass attribute
    Nústr | type[T] | NonerY  .r}   úInstance[T]útype[T]rM  útuple[t.Any, ...] | NoneÚkwúdict[str, t.Any] | Nonerê   r[  rë   rð   rñ   rÐ   ró   ra   rX   rx   c                ó   — d S rz   rS   ©r}   rY  rM  r  rê   rë   rñ   ró   s           rU   r~   zInstance.__init__œ  r_  rT   úInstance[T | None]ra  c                ó   — d S rz   rS   r‚  s           rU   r~   zInstance.__init__©  r_  rT   úInstance[t.Any]c                ó   — d S rz   rS   r‚  s           rU   r~   zInstance.__init__¶  r_  rT   úInstance[t.Any | None]c                ó   — d S rz   rS   r‚  s           rU   r~   zInstance.__init__Ã  r_  rT   FrY   c                ó’  •— |€| j         }|�1t          j        |¦  «        st          |t          ¦  «        r|| _         nt          d|z  ¦  «        ‚|�$t          |t          ¦  «        st          d¦  «        ‚|�$t          |t          ¦  «        st          d¦  «        ‚|| _        || _	         t          ¦   «         j        d|||dœ|¤Ž dS )aÀ  Construct an Instance trait.

        This trait allows values that are instances of a particular
        class or its subclasses.  Our implementation is quite different
        from that of enthough.traits as we don't allow instances to be used
        for klass and we handle the ``args`` and ``kw`` arguments differently.

        Parameters
        ----------
        klass : class, str
            The class that forms the basis for the trait.  Class names
            can also be specified as strings, like 'foo.bar.Bar'.
        args : tuple
            Positional arguments for generating the default value.
        kw : dict
            Keyword arguments for generating the default value.
        allow_none : bool [ default False ]
            Indicates whether None is allowed as a value.
        **kwargs
            Extra kwargs passed to `ClassBasedTraitType`

        Notes
        -----
        If both ``args`` and ``kw`` are None, then the default value is None.
        If ``args`` is a tuple and ``kw`` is a dict, then the default is
        created as ``klass(*args, **kw)``.  If exactly one of ``args`` or ``kw`` is
        None, the None is replaced by ``()`` or ``{}``, respectively.
        Nz+The klass attribute must be a class not: %rz)The 'kw' argument must be a dict or None.z,The 'args' argument must be a tuple or None.)rê   rë   rñ   rS   )rY  r÷   r}  ri   rW   r=   r¥  Útupler—  r˜  r~  r~   )	r}   rY  rM  r  rê   rë   rñ   ró   r5  s	           €rU   r~   zInstance.__init__Ð  s×   ø€ ðL ˆ=Ø”JˆEàÐ¥G¤O°EÑ$:Ô$:Ð½jÈÕPSÑ>TÔ>TÐØˆDŒJˆJåÐJÈUÑRÑSÔSÐSàˆN¥J¨rµ4Ñ$8Ô$8ˆNÝÐHÑIÔIÐIØÐ¥j°µuÑ&=Ô&=ÐÝÐKÑLÔLÐLà ˆÔØ ˆÔà�‰ŒÔÐY J¸)È$ÐYÐYÐRXÐYÐYÐYÐYÐYrT   r™   rw   úT | Nonec                óˆ   — | j         €J ‚| j        r|€|S t          || j         ¦  «        r|S |                      ||¦  «         d S rz   )rY  rê   ri   rB  r  s      rU   rM   zInstance.validate	  sV   € ØŒzÐ%Ð%Ð%ØŒ?ð 	˜u˜}ØˆLÝ�e˜TœZÑ(Ô(ð 	#ØˆLà�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"rT   rW   c                ó¦   — t          | j        t          ¦  «        rt          | j        ¦  «        }nt	          d| j        ¦  «        }| j        r|dz  }|S )NrH  rp  )ri   rY  rW   r   r	   rê   )r}   r'  s     rU   rA  zInstance.info	  sQ   € Ý�d”j¥#Ñ&Ô&ð 	/Ý  ¤Ñ,Ô,ˆFˆFå˜c 4¤:Ñ.Ô.ˆFØŒ?ð 	!Ø�jÑ ˆFØˆrT   c                ó.   — |                       ¦   «          d S rz   rr  rÝ   s     rU   rÙ   zInstance.instance_init	  rt  rT   c                ó|   — t          | j        t          ¦  «        r!|                      | j        ¦  «        | _        d S d S rz   )ri   rY  rW   rS  rƒ   s    rU   rs  zInstance._resolve_classes	  s;   € Ý�d”j¥#Ñ&Ô&ð 	:Ø×-Ò-¨d¬jÑ9Ô9ˆDŒJˆJˆJð	:ð 	:rT   c                ój   — | j         €	| j        €d S | j        €J ‚ | j        | j         pdi | j        pi ¤ŽS )NrS   )r—  r˜  rY  rƒ   s    rU   r  zInstance.make_dynamic_default#	  sN   € ØÔÐ%¨DÔ,?Ð,GØ�4ØŒzÐ%Ð%Ð%ØˆtŒz˜DÔ-Ð3°ÐT¸Ô9LÐ9RÐPRÐTÐTÐTrT   c                óD   — t          |                      ¦   «         ¦  «        S rz   )r^  r  rƒ   s    rU   r_  zInstance.default_value_repr)	  s   € Ý�D×-Ò-Ñ/Ô/Ñ0Ô0Ð0rT   rV   c                ó    — t          |¦  «        S rz   )rf   r  s     rU   r	  zInstance.from_string,	  s   € Ý! !Ñ$Ô$Ð$rT   rw  )r}   r|  rY  r}  rM  r~  r  r€  rê   r[  rë   rð   rñ   rÐ   ró   ra   rX   rx   )r}   rƒ  rY  r}  rM  r~  r  r€  rê   ra  rë   rð   rñ   rÐ   ró   ra   rX   rx   )r}   r…  rY  rÐ   rM  r~  r  r€  rê   r[  rë   rð   rñ   rÐ   ró   ra   rX   rx   )r}   r‡  rY  rÐ   rM  r~  r  r€  rê   ra  rë   rð   rñ   rÐ   ró   ra   rX   rx   )NNNFNN)rY  r{  rM  r~  r  r€  rê   rY   rë   rð   rñ   rÐ   ró   ra   rX   rx   ©r™   ra   rw   ra   rX   r‹  r‡   rß   r¿   )rX   r‹  ©rV   rW   rX   r‹  )rP   rQ   rR   rÂ   rY  rà   rg   ry  r`  r~   rM   rA  rÙ   rs  r  r_  r	  r‡  rˆ  s   @rU   r1   r1   �  s  ø€ € € € € € ðð ð #'€EÐ&Ð&Ð&Ñ&à„ð 4à	
Œð !Ø-0Ø*-Ø),Ø%(Ø"ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð !Ø-0Ø*-Ø(+Ø%(Ø"ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð !$Ø-0Ø*-Ø),Ø%(Ø"ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð !$Ø-0Ø*-Ø(+Ø%(Ø"ð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð '+Ø)-Ø&*Ø Ø!%Øð6Zð 6Zð 6Zð 6Zð 6Zð 6Zð 6Zðp#ð #ð #ð #ðð ð ð ð ð  ð  ð  ð
:ð :ð :ð :ðUð Uð Uð Uð1ð 1ð 1ð 1ð%ð %ð %ð %ð %ð %ð %ð %rT   r1   c                  ó   — e Zd ZdZdd„ZdS )	r,   zC
    Mixin for forward-declared versions of Instance and Type.
    rQ  rW   rX   ra   c                ób   — | j         j        }t          d                     ||g¦  «        ¦  «        S )z†
        Find the specified class name by looking for it in the module in which
        our this_class attribute was defined.
        rö   )rÒ   rQ   r   rN  )r}   rQ  Úmodnames      rU   rS  z$ForwardDeclaredMixin._resolve_string5	  s-   € ð
 ”/Ô,ˆÝ˜3Ÿ8š8 W¨fÐ$5Ñ6Ô6Ñ7Ô7Ð7rT   NrT  rU  rS   rT   rU   r,   r,   0	  s2   € € € € € ðð ð8ð 8ð 8ð 8ð 8ð 8rT   r,   c                  ó   — e Zd ZdZdS )r-   z+
    Forward-declared version of Type.
    N©rP   rQ   rR   rÂ   rS   rT   rU   r-   r-   >	  ó   € € € € € ðð ð ð rT   r-   c                  ó   — e Zd ZdZdS )r+   z/
    Forward-declared version of Instance.
    Nr™  rS   rT   rU   r+   r+   D	  rš  rT   r+   c                  ó0   ‡ — e Zd ZdZdZdˆ fd„Zdd„Zˆ xZS )r<   a  A trait for instances of the class containing this trait.

    Because how how and when class bodies are executed, the ``This``
    trait can only have a default value of None.  This, and because we
    always validate default values, ``allow_none`` is *always* true.
    z4an instance of the same type as the receiver or Noneró   ra   rX   rx   c                ó:   •—  t          ¦   «         j        di |¤Ž d S )Nrz   ©r~  r~   )r}   ró   r5  s     €rU   r~   zThis.__init__T	  s&   ø€ Ø�‰ŒÔÐ(Ð( Ð(Ð(Ð(Ð(Ð(rT   r™   rw   r#  c                óv   — | j         €J ‚t          || j         ¦  «        s|€|S |                      ||¦  «         d S rz   )rÒ   ri   rB  r  s      rU   rM   zThis.validateW	  sI   € ð ŒÐ*Ð*Ð*Ý�e˜Tœ_Ñ-Ô-ð 	#°%°-ØˆLà�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"rT   )ró   ra   rX   rx   )r™   ra   rw   ra   rX   r#  )rP   rQ   rR   rÂ   rí   r~   rM   r‡  rˆ  s   @rU   r<   r<   J	  sc   ø€ € € € € ðð ð G€Ið)ð )ð )ð )ð )ð )ð#ð #ð #ð #ð #ð #ð #ð #rT   r<   c                  ób   ‡ — e Zd ZdZdˆ fd„Zddˆ fd
„Zdˆ fd„Zdd„Zdd„Zdd„Z	d ˆ fd„Z
ˆ xZS )!rC   z'A trait type representing a Union type.r=  ra   ró   rX   rx   c                ó´   •— t          |¦  «        | _        d                     d„ | j        D ¦   «         ¦  «        | _         t	          ¦   «         j        di |¤Ž dS )aÀ  Construct a Union  trait.

        This trait allows values that are allowed by at least one of the
        specified trait types. A Union traitlet cannot have metadata on
        its own, besides the metadata of the listed types.

        Parameters
        ----------
        trait_types : sequence
            The list of trait types of length at least 1.
        **kwargs
            Extra kwargs passed to `TraitType`

        Notes
        -----
        Union([Float(), Bool(), Int()]) attempts to validate the provided values
        with the validation function of Float, then Bool, and finally Int.

        Parsing from string is ambiguous for container types which accept other
        collection-like literals (e.g. List accepting both `[]` and `()`
        precludes Union from ever parsing ``Union([List(), Tuple()])`` as a tuple;
        you can modify behaviour of too permissive container traits by overriding
        ``_literal_from_string_pairs`` in subclasses.
        Similarly, parsing unions of numeric types is only unambiguous if
        types are provided in order of increasing permissiveness, e.g.
        ``Union([Int(), Float()])`` (since floats accept integer-looking values).
        z or c                ó6   — g | ]}|                      ¦   «         ‘ŒS rS   )rA  )rI  Útts     rU   rØ  z"Union.__init__.<locals>.<listcomp>‚	  s    € Ð%KÐ%KÐ%K°B b§g¢g¡i¤iÐ%KÐ%KÐ%KrT   NrS   )rö  r=  rN  rí   r~  r~   )r}   r=  ró   r5  s      €rU   r~   zUnion.__init__e	  s]   ø€ õ8   Ñ,Ô,ˆÔØŸšÐ%KÐ%K¸$Ô:JÐ%KÑ%KÔ%KÑLÔLˆŒØ�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"rT   Nr™   c                óœ   •— t          ¦   «                              |¦  «        }| j        D ]!}|t          u r|                     |¦  «        }Œ! |S rz   )r~  rF   r=  rB   )r}   r™   rF   r1  r5  s       €rU   rF   zUnion.default…	  sP   ø€ Ý‘'”'—/’/ #Ñ&Ô&ˆØÔ%ð 	ð 	ˆEØ�)Ð#Ð#ØŸ-š-¨Ñ,Ô,��àØˆrT   rÓ   rÔ   rÑ   rÐ   c                ó¦   •— t          | j        ¦  «        D ]}|                     |d ¦  «         Œt          ¦   «                              ||¦  «         d S rz   )Úreversedr=  rÖ   r~  )r}   rÓ   rÑ   Ú
trait_typer5  s       €rU   rÖ   zUnion.class_initŽ	  sV   ø€ Ý" 4Ô#3Ñ4Ô4ð 	-ð 	-ˆJØ×!Ò! # tÑ,Ô,Ð,Ð,Ý‰Œ×Ò˜3 Ñ%Ô%Ð%Ð%Ð%rT   r  c                ó^   — t          | j        ¦  «        D ]}|                     |¦  «         Œd S rz   )r¦  r=  rÛ   )r}   rÓ   r§  s      rU   rÛ   zUnion.subclass_init“	  s=   € Ý" 4Ô#3Ñ4Ô4ð 	*ð 	*ˆJØ×$Ò$ SÑ)Ô)Ð)Ð)ð	*ð 	*rT   rw   c                óB  — |j         5  | j        D ]`}	 |                     ||¦  «        }| j        �!t	          |d| j        z   dz   |j        ¦  «         |c cd d d ¦  «         S # t          $ r Y Œ]w xY w	 d d d ¦  «         n# 1 swxY w Y   |                      ||¦  «         d S )Nr†  rC  )rë  r=  r  rÑ   r«   ré   r=   rB  )r}   r™   rw   r§  r�  s        rU   rM   zUnion.validate™	  s&  € ØÔ&ð 		ð 		Ø"Ô.ð ð �
ðØ"×,Ò,¨S°%Ñ8Ô8�Aà”yÐ,Ý  S¨4¬9¡_°{Ñ%BÀJÔDWÑXÔXÐXØ�H�Hð		ð 		ð 		ð 		ñ 		ô 		ð 		ð 		øõ "ð ð ð Ø�Hðøøøðð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 	�
Š
�3˜ÑÔÐÐÐs4   ˆ
A>“?A!ÁA>Á!
A.Á+A>Á-A.Á.A>Á>BÂBr9  c                ó”   — t          |t          ¦  «        rt          | j        |j        z   ¦  «        S t          g | j        ¢|‘¦  «        S rz   r<  r>  s     rU   r?  zUnion.__or__¦	  sI   € Ý�e�UÑ#Ô#ð 	5Ý˜Ô)¨EÔ,=Ñ=Ñ>Ô>Ð>åÐ3˜4Ô+Ð3¨UÐ3Ñ4Ô4Ð4rT   rV   rW   c                óâ   •— | j         D ]F}	 |                     |¦  «        }|                     d |¦  «        c S # t          t          f$ r Y ŒCw xY wt          ¦   «                              |¦  «        S rz   )r=  r	  rM   r=   re   r~  )r}   rV   r§  r�  r5  s       €rU   r	  zUnion.from_string¬	  s†   ø€ ØÔ*ð 	ð 	ˆJðØ×*Ò*¨1Ñ-Ô-�Ø!×*Ò*¨4°Ñ3Ô3Ð3Ð3Ð3øÝ¥
Ð+ð ð ð Ø�ðøøøå‰wŒw×"Ò" 1Ñ%Ô%Ð%s   Œ*9¹AÁA)r=  ra   ró   ra   rX   rx   rz   )r™   ra   rX   ra   rÞ   ©rÓ   r  rX   rx   ©r™   ra   rw   ra   rX   ra   )r9  ra   rX   rC   ©rV   rW   rX   ra   )rP   rQ   rR   rÂ   r~   rF   rÖ   rÛ   rM   r?  r	  r‡  rˆ  s   @rU   rC   rC   b	  sß   ø€ € € € € Ø1Ð1ð#ð #ð #ð #ð #ð #ð@ð ð ð ð ð ð ð&ð &ð &ð &ð &ð &ð
*ð *ð *ð *ðð ð ð ð5ð 5ð 5ð 5ð&ð &ð &ð &ð &ð &ð &ð &ð &ð &rT   rC   c                  ó6  — e Zd ZU dZej        r{ej        	 d'ddddœd(d„¦   «         Zej        	 d'ddddœd)d„¦   «         Zej        	 d'dddddœd*d„¦   «         Z	 d'dddddœd+d„Zej        d,d „¦   «         Zej        d-d!„¦   «         Zd.d#„ZdZ	de
d<   d$Zd%Zd/d&„ZdS )0r   zA trait which allows any value..©rë   rñ   rò   r}   rî   ra   rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   rX   rx   c               ó   — d S rz   rS   ©r}   rî   rê   rë   rñ   rò   ró   s          rU   r~   zAny.__init__À	  r_  rT   ra  c               ó   — d S rz   rS   r²  s          rU   r~   zAny.__init__Í	  r_  rT   FN)rê   rñ   rë   rò   úLiteral[True, False]c               ó   — d S rz   rS   ©r}   rî   rê   rñ   rë   rò   ró   s          rU   r~   zAny.__init__Ú	  r_  rT   rõ   rY   c               ó   — d S rz   rS   r¶  s          rU   r~   zAny.__init__ç	  ó	   € ð ˆCrT   r™   rÓ   r  c                ó   — d S rz   rS   r  s      rU   r   zAny.__get__ó	  ó   € àˆCrT   c                ó   — d S rz   rS   r  s      rU   r   zAny.__get__÷	  rº  rT   út.Any | Anyc                ó   — d S rz   rS   r  s      rU   r   zAny.__get__û	  s   € ØˆCrT   Trì   c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zAny.subclass_init
  ó   € ØˆrT   ).)r}   r   rî   ra   rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   r   rî   ra   rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   r   rî   ra   rê   r´  rñ   rÐ   rë   rð   rò   ra   ró   ra   rX   rx   )r}   r   rî   ra   rê   rY   rñ   rÐ   rë   rð   rò   ra   ró   ra   rX   rx   )r™   rx   rÓ   r  rX   r   )r™   ra   rÓ   r  rX   ra   )r™   r\  rÓ   r  rX   r¼  r¬  )rP   rQ   rR   rÂ   rg   ry  r`  r~   r   rî   rà   rê   rí   rÛ   rS   rT   rU   r   r   »	  s©  € € € € € € Ø)Ð)à„ð >à	
Œð $'ð
	ð
 &)Ø"Ø#&ð
	ð 
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð $'ð
	ð
 &)Ø"Ø#&ð
	ð 
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð $'ð
	ð 03Ø"Ø%*Ø ð
	ð 
	ð 
	ð 
	ð 
	ñ 
Œð
	ð $'ð
	ð  %Ø!Ø%*Ø ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
Œð	ð 	ð 	ñ 
Œð	ð 
Œð	ð 	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð #'€MÐ&Ð&Ð&Ñ&Ø€JØ€Iðð ð ð ð ð rT   r   r1  ú'Int[t.Any, t.Any] | Float[t.Any, t.Any]r™   rw   c                ó  — | j         �>|| j         k     r3t          d| j        › dt          |¦  «        › d| j         › d|› d�	¦  «        ‚| j        �>|| j        k    r3t          d| j        › dt          |¦  «        › d| j        › d|› d�	¦  «        ‚|S )zÑ
    Validate that a number to be applied to a trait is between bounds.

    If value is not between min_bound and max_bound, this raises a
    TraitError with an error message appropriate for this trait.
    NzThe value of the 'rk  z" instance should not be less than ú, but a value of z was specifiedz% instance should not be greater than )r“  r=   rÑ   r   r”  )r1  r™   rw   s      rU   Ú_validate_boundsrÃ  
  så   € ð „yÐ ¨¬Ò!2Ð!2Ýð ¤ð ð ½À¹¼ð ð Ø %¤	ðð Ø<Aðð ð ñ
ô 
ð 	
ð
 „yÐ ¨¬Ò!2Ð!2Ýð ¤ð ð ½À¹¼ð ð Ø#(¤9ðð Ø?Dðð ð ñ
ô 
ð 	
ð
 €LrT   c                  ó¬   ‡ — e Zd ZdZdZdZej        	 	 	 	 	 d(d)d„¦   «         Zej        	 	 	 	 	 d(d*d„¦   «         Ze	ddddfd+ˆ fd„Zd,d!„Z
d-d$„Zd.d'„Zˆ xZS )/r2   zAn int trait.r   zan int.r}   úInt[int, int]rî   úint | Sentinelrê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zInt.__init__'
  ó	   € ð 	ˆrT   úInt[int | None, int | None]úint | Sentinel | Nonera  c                ó   — d S rz   rS   r²  s          rU   r~   zInt.__init__3
  rÈ  rT   FNrY   c           	     ó²   •— |                      dd ¦  «        | _        |                      dd ¦  «        | _         t          ¦   «         j        d|||||dœ|¤Ž d S )Nr“  r”  ©rî   rê   rë   rñ   rò   rS   )r÷  r“  r”  r~  r~   ©r}   rî   rê   rë   rñ   rò   ró   r5  s          €rU   r~   zInt.__init__?
  sw   ø€ ð —:’:˜e TÑ*Ô*ˆŒØ—:’:˜e TÑ*Ô*ˆŒØ�‰ŒÔð 	
Ø'Ø!ØØØð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
rT   r™   rw   rá   c                ó*  — t          |t          ¦  «        sCt          |t          j        ¦  «        r)	 t          |¦  «        }||k    r|}n# t          $ r Y nw xY wt          |t          ¦  «        s|                      ||¦  «         t          | ||¦  «        S rz   )ri   r•  ÚnumbersÚNumberr  rB  rÃ  )r}   r™   rw   Ú	int_values       rU   rM   zInt.validateS
  s    € Ý˜%¥Ñ%Ô%ð 	­*°U½G¼NÑ*KÔ*Kð 	ðÝ ™JœJ�	Ø Ò%Ð%Ø%�EøøÝð ð ð Ø�ðøøøå˜%¥Ñ%Ô%ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ý  c¨5Ñ1Ô1Ð1s   ±A	 Á	
AÁArV   rW   c                ó>   — | j         r|dk    rd S t          |¦  «        S ©Nrx   )rê   r•  r  s     rU   r	  zInt.from_stringa
  s$   € ØŒ?ð 	˜q Fš{˜{Ø�4Ý�1‰vŒvˆrT   rÓ   r  c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zInt.subclass_initf
  r¿  rT   ©.....)r}   rÅ  rî   rÆ  rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   rÉ  rî   rÊ  rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )rî   ra   rê   rY   rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   rx  ©rV   rW   rX   rá   r¬  ©rP   rQ   rR   rÂ   rî   rí   rg   r`  r~   rB   rM   r	  rÛ   r‡  rˆ  s   @rU   r2   r2   !
  s  ø€ € € € € ØÐà€MØ€Ià„Zð ),Ø%(Ø!$ØØ"ð	ð 	ð 	ð 	ñ „Zð	ð „Zð 03Ø$'Ø!$ØØ"ð	ð 	ð 	ð 	ñ „Zð	ð  )Ø Ø!%ØØ#ð
ð 
ð 
ð 
ð 
ð 
ð 
ð(2ð 2ð 2ð 2ðð ð ð ð
ð ð ð ð ð ð ð rT   r2   c                  ó˜   — e Zd ZdZej        r8ej        	 	 	 	 	 dd d„¦   «         Zej        	 	 	 	 	 dd!d„¦   «         Z	 	 	 	 	 dd"d„Zd#d„ZdS )$r   z#A casting version of the int trait..r}   úCInt[int, t.Any]rî   út.Any | Sentinelrê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zCInt.__init__o
  r¸  rT   úCInt[int | None, t.Any]út.Any | Sentinel | Nonera  c                ó   — d S rz   rS   r²  s          rU   r~   zCInt.__init__{
  r¸  rT   rY   c                ó   — d S rz   rS   r²  s          rU   r~   zCInt.__init__‡
  ó	   € ð ˆCrT   r™   rw   rá   c                ó’   — 	 t          |¦  «        }n&# t          $ r |                      ||¦  «         Y nw xY wt          | ||¦  «        S rz   )r•  r  rB  rÃ  r  s      rU   rM   zCInt.validate’
  s[   € ð	#Ý˜‘J”JˆEˆEøÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"ð	#øøøå  c¨5Ñ1Ô1Ð1ó   ‚ ’ 5´5NrÖ  )r}   rÚ  rî   rÛ  rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   rÝ  rî   rÞ  rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   rÝ  rî   rÞ  rê   rY   rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   rx  ©	rP   rQ   rR   rÂ   rg   ry  r`  r~   rM   rS   rT   rU   r   r   j
  sÐ   € € € € € Ø-Ð-à„ð #à	
Œð /2Ø),Ø%(Ø"Ø#&ð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð 69Ø(+Ø%(Ø"Ø#&ð		ð 		ð 		ð 		ñ 
Œð		ð 69Ø"Ø%(Ø"Ø#&ð		ð 		ð 		ð 		ð 		ð2ð 2ð 2ð 2ð 2ð 2rT   r   c                  ó¬   ‡ — e Zd ZdZdZdZej        	 	 	 	 	 d(d)d„¦   «         Zej        	 	 	 	 	 d(d*d„¦   «         Ze	ddddfd+ˆ fd„Zd,d!„Z
d-d$„Zd.d'„Zˆ xZS )/r*   zA float trait.g        za float.r}   úFloat[float, int | float]rî   úfloat | Sentinelrê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zFloat.__init__¤
  rÈ  rT   ú%Float[int | None, int | float | None]úfloat | Sentinel | Nonera  c                ó   — d S rz   rS   r²  s          rU   r~   zFloat.__init__°
  rÈ  rT   FNrY   c           	     óè   •— |                      dt          d¦  «         ¦  «        | _        |                      dt          d¦  «        ¦  «        | _         t	          ¦   «         j        d|||||dœ|¤Ž d S )Nr“  Úinfr”  rÍ  rS   )r÷  r–  r“  r”  r~  r~   rÎ  s          €rU   r~   zFloat.__init__¼
  s…   ø€ ð —:’:˜e¥e¨E¡l¤l ]Ñ3Ô3ˆŒØ—:’:˜e¥U¨5¡\¤\Ñ2Ô2ˆŒØ�‰ŒÔð 	
Ø'Ø!ØØØð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
rT   r™   rw   rá   c                óÂ   — t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        s|                      ||¦  «         t	          | ||¦  «        S rz   )ri   r•  r–  rB  rÃ  r  s      rU   rM   zFloat.validateÐ
  sW   € Ý�e�SÑ!Ô!ð 	!Ý˜%‘L”LˆEÝ˜%¥Ñ'Ô'ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ý  c¨5Ñ1Ô1Ð1rT   rV   rW   c                ó>   — | j         r|dk    rd S t          |¦  «        S rÔ  )rê   r–  r  s     rU   r	  zFloat.from_string×
  s$   € ØŒ?ð 	˜q Fš{˜{Ø�4Ý�Q‰xŒxˆrT   rÓ   r  c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zFloat.subclass_initÜ
  r¿  rT   rÖ  )r}   ræ  rî   rç  rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   ré  rî   rê  rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   ré  rî   rê  rê   rY   rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   rx  r×  r¬  rØ  rˆ  s   @rU   r*   r*   ž
  s  ø€ € € € € ØÐà€MØ€Ià„Zð +.Ø%(Ø!$ØØ"ð	ð 	ð 	ð 	ñ „Zð	ð „Zð 25Ø$'Ø!$ØØ"ð	ð 	ð 	ð 	ñ „Zð	ð 2;Ø Ø!&ØØ#ð
ð 
ð 
ð 
ð 
ð 
ð 
ð(2ð 2ð 2ð 2ðð ð ð ð
ð ð ð ð ð ð ð rT   r*   c                  ó˜   — e Zd ZdZej        r8ej        	 	 	 	 	 ddd„¦   «         Zej        	 	 	 	 	 ddd„¦   «         Z	 	 	 	 	 dd d„Zd!d„ZdS )"r   z%A casting version of the float trait..r}   úCFloat[float, t.Any]rî   ra   rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zCFloat.__init__å
  r¸  rT   úCFloat[float | None, t.Any]ra  c                ó   — d S rz   rS   r²  s          rU   r~   zCFloat.__init__ñ
  r¸  rT   rY   c                ó   — d S rz   rS   r²  s          rU   r~   zCFloat.__init__ý
  rá  rT   r™   rw   rá   c                ó’   — 	 t          |¦  «        }n&# t          $ r |                      ||¦  «         Y nw xY wt          | ||¦  «        S rz   )r–  r  rB  rÃ  r  s      rU   rM   zCFloat.validate  s[   € ð	#Ý˜%‘L”LˆEˆEøÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"ð	#øøøå  c¨5Ñ1Ô1Ð1rã  NrÖ  )r}   rò  rî   ra   rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   rô  rî   ra   rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   rô  rî   ra   rê   rY   rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   rx  rä  rS   rT   rU   r   r   à
  sÐ   € € € € € Ø/Ð/à„ð #à	
Œð $'Ø),Ø%(Ø"Ø#&ð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð $'Ø(+Ø%(Ø"Ø#&ð		ð 		ð 		ð 		ñ 
Œð		ð $'Ø"Ø%(Ø"Ø#&ð		ð 		ð 		ð 		ð 		ð2ð 2ð 2ð 2ð 2ð 2rT   r   c                  ó2   — e Zd ZdZdZdZdd	„Zdd„Zdd„ZdS )r#   zA trait for complex numbers.y                za complex numberr™   ra   rw   rX   úcomplex | Nonec                ó¶   — t          |t          ¦  «        r|S t          |t          t          f¦  «        rt          |¦  «        S |                      ||¦  «         d S rz   )ri   Úcomplexr–  r•  rB  r  s      rU   rM   zComplex.validate  sU   € Ý�e�WÑ%Ô%ð 	ØˆLÝ�e�e¥S˜\Ñ*Ô*ð 	"Ý˜5‘>”>Ð!Ø�
Š
�3˜ÑÔÐÐÐrT   rV   rW   c                ó>   — | j         r|dk    rd S t          |¦  «        S rÔ  )rê   rû  r  s     rU   r	  zComplex.from_string  s%   € ØŒ?ð 	˜q Fš{˜{Ø�4Ý�q‰zŒzÐrT   rÓ   r  rx   c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zComplex.subclass_init"  r¿  rT   N©r™   ra   rw   ra   rX   rù  )rV   rW   rX   rù  r¬  ©	rP   rQ   rR   rÂ   rî   rí   rM   r	  rÛ   rS   rT   rU   r#   r#     s`   € € € € € Ø&Ð&à€MØ"€Iðð ð ð ðð ð ð ð
ð ð ð ð ð rT   r#   c                  ó   — e Zd ZdZd	d„ZdS )
r   z.A casting version of the complex number trait.r™   ra   rw   rX   rù  c                óp   — 	 t          |¦  «        S # t          $ r |                      ||¦  «         Y d S w xY wrz   )rû  r  rB  r  s      rU   rM   zCComplex.validate)  sK   € ð	#Ý˜5‘>”>Ð!øÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"Ð"ð	#øøøó   ‚ ‘ 5´5Nrþ  ©rP   rQ   rR   rÂ   rM   rS   rT   rU   r   r   &  s.   € € € € € Ø8Ð8ð#ð #ð #ð #ð #ð #rT   r   c                  ó2   — e Zd ZdZdZdZdd	„Zdd„Zdd„ZdS )r   zA trait for byte strings.rT   za bytes objectr™   ra   rw   rX   úbytes | Nonec                ó`   — t          |t          ¦  «        r|S |                      ||¦  «         d S rz   )ri   ÚbytesrB  r  s      rU   rM   zBytes.validate9  s3   € Ý�e�UÑ#Ô#ð 	ØˆLØ�
Š
�3˜ÑÔÐÐÐrT   rV   rW   c                ó  — | j         r|dk    rd S t          |¦  «        dk    rNdD ]K}|d d…         d|› �k    r8|d         |k    r,|}|dd…         }t          d|›d|›d	�t          d¬
¦  «          nŒL|                     d¦  «        S )Nrx   rn  ©ú"r=  r[   Úbre  zISupporting extra quotes around Bytes is deprecated in traitlets 5.0. Use ú instead of rö   r\   Úutf8)rê   r–   r   r^   Úencode)r}   rV   ÚquoteÚold_ss       rU   r	  zBytes.from_string>  sÉ   € ØŒ?ð 	˜q Fš{˜{Ø�4Ýˆq‰6Œ6�QŠ;ˆ;à#ð 
ð 
�Ø�R�a�R”5˜K ˜K˜KÒ'Ð'¨A¨b¬E°UªN¨NØ�EØ˜!˜B˜$œ�AÝð;Ø ð;ð ;Ø05ð;ð ;ð ;å*Ø#$ð	ñ ô ð ð �EøØ�xŠx˜ÑÔÐrT   rÓ   r  rx   c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zBytes.subclass_initP  r¿  rT   N©r™   ra   rw   ra   rX   r  )rV   rW   rX   r  r¬  rÿ  rS   rT   rU   r   r   3  s`   € € € € € Ø#Ð#à€MØ €Iðð ð ð ð
 ð  ð  ð  ð$ð ð ð ð ð rT   r   c                  ó   — e Zd ZdZd	d„ZdS )
r   z+A casting version of the byte string trait.r™   ra   rw   rX   r  c                óp   — 	 t          |¦  «        S # t          $ r |                      ||¦  «         Y d S w xY wrz   )r  r  rB  r  s      rU   rM   zCBytes.validateW  sK   € ð	#Ý˜‘<”<ÐøÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"Ð"ð	#øøør  Nr  r  rS   rT   rU   r   r   T  s.   € € € € € Ø5Ð5ð#ð #ð #ð #ð #ð #rT   r   c                  ó°   — e Zd ZdZdZdZej        r8ej        	 	 	 	 	 d&d'd„¦   «         Z	ej        	 	 	 	 	 d&d(d„¦   «         Z		 	 	 	 	 d&d)d„Z	d*d„Z
d+d!„Zd,d$„Zd%S )-rA   zA trait for unicode strings.rõ   za unicode string.r}   úUnicode[str, str | bytes]rî   r  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zUnicode.__init__f  r¸  rT   ú'Unicode[str | None, str | bytes | None]ústr | Sentinel | Nonera  c                ó   — d S rz   rS   r²  s          rU   r~   zUnicode.__init__r  r¸  rT   rY   c                ó   — d S rz   rS   r²  s          rU   r~   zUnicode.__init__~  rá  rT   r™   rw   rá   c           
     óN  — t          |t          ¦  «        r|S t          |t          ¦  «        rb	 |                     dd¦  «        S # t          $ r>}d}t          |                     || j        t          |¦  «        ¦  «        ¦  «        |‚d }~ww xY w|  	                    ||¦  «         d S )NÚasciiÚstrictz<Could not decode {!r} for unicode trait '{}' of {} instance.)
ri   rW   r  ÚdecodeÚUnicodeDecodeErrorr=   rO  rÑ   r   rB  )r}   r™   rw   r  rS  s        rU   rM   zUnicode.validate‰  s³   € Ý�e�SÑ!Ô!ð 	ØˆLÝ�e�UÑ#Ô#ð 	UðUØ—|’| G¨XÑ6Ô6Ð6øÝ%ð Uð Uð UØT�Ý  §¢¨E°4´9½hÀs¹m¼mÑ!LÔ!LÑMÔMÐSTÐTøøøøðUøøøð 	�
Š
�3˜ÑÔÐÐÐs   ®A Á
BÁ9BÂBrV   rW   c                ó  — | j         r|dk    rd S t          j                             |¦  «        }t	          |¦  «        dk    rKdD ]H}|d         |d         cxk    r|k    r-n Œ|}|dd…         }t          d|›d|›d	�t          d¬
¦  «         ŒI|S )Nrx   r[   r	  r   re  r   zSSupporting extra quotes around strings is deprecated in traitlets 5.0. You can use r  z if you require traitlets >=5.r\   )rê   ÚosÚpathÚ
expanduserr–   r   r^   )r}   rV   r›  r  s       rU   r	  zUnicode.from_string”  s×   € ØŒ?ð 	˜q Fš{˜{Ø�4ÝŒG×Ò˜qÑ!Ô!ˆÝˆq‰6Œ6�QŠ;ˆ;àð 	ð 	�Ø�Q”4˜1˜Rœ5Ð%Ð%Ò%Ð% AÒ%Ð%Ð%Ð%Ð%Ø�EØ˜!˜B˜$œ�AÝð`Ø'(ð`ð `Ø8=ð`ð `ð `å*Ø#$ð	ñ ô ð øð ˆrT   rÓ   r  c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zUnicode.subclass_init¦  r¿  rT   NrÖ  )r}   r  rî   r  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r  rî   r  rê   ra  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r  rî   r  rê   rY   rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   rx  r×  r¬  )rP   rQ   rR   rÂ   rî   rí   rg   ry  r`  r~   rM   r	  rÛ   rS   rT   rU   rA   rA   ^  s  € € € € € Ø&Ð&à€MØ"€Ià„ð #à	
Œð -0Ø),Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð 47Ø(+Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 47Ø"Ø%(Ø"Øð		ð 		ð 		ð 		ð 		ð	ð 	ð 	ð 	ðð ð ð ð$ð ð ð ð ð rT   rA   c                  ó˜   — e Zd ZdZej        r8ej        	 	 	 	 	 ddd„¦   «         Zej        	 	 	 	 	 dd d„¦   «         Z	 	 	 	 	 dd!d„Zd"d„ZdS )#r   z'A casting version of the unicode trait..r}   úCUnicode[str, t.Any]rî   r  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zCUnicode.__init__¯  r¸  rT   úCUnicode[str | None, t.Any]r  ra  c                ó   — d S rz   rS   r²  s          rU   r~   zCUnicode.__init__»  r¸  rT   rY   c                ó   — d S rz   rS   r²  s          rU   r~   zCUnicode.__init__Ç  rá  rT   r™   rw   rá   c                óp   — 	 t          |¦  «        S # t          $ r |                      ||¦  «         Y d S w xY wrz   )rW   r  rB  r  s      rU   rM   zCUnicode.validateÒ  sK   € ð	#Ý�u‘:”:ÐøÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"Ð"ð	#øøør  NrÖ  )r}   r'  rî   r  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r)  rî   r  rê   ra  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r)  rî   r  rê   rY   rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   rx  rä  rS   rT   rU   r   r   ª  sÐ   € € € € € Ø1Ð1à„ð #à	
Œð -0Ø),Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð 47Ø(+Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 47Ø"Ø%(Ø"Øð		ð 		ð 		ð 		ð 		ð#ð #ð #ð #ð #ð #rT   r   c                  ó>   — e Zd ZdZdZ ed„ ¦  «        Zdd	„Zdd„ZdS )r8   z{A string holding a valid object name in this version of Python.

    This does not check that the name exists in any scope.z#a valid object identifier in Pythonc                ó   — |S rz   rS   )r†  rV   s     rU   rÉ   zObjectName.<lambda>à  s   € ¨1€ rT   r™   ra   rw   rX   rW   c                ó´   — |                       ||¦  «        }t          |t          ¦  «        r|                     ¦   «         r|S |                      ||¦  «         d S rz   )Ú
coerce_strri   rW   r_   rB  r  s      rU   rM   zObjectName.validateâ  sY   € Ø—’  UÑ+Ô+ˆå�e�SÑ!Ô!ð 	 e×&8Ò&8Ñ&:Ô&:ð 	ØˆLØ�
Š
�3˜ÑÔÐÐÐrT   rV   rÐ   c                ó$   — | j         r|dk    rd S |S rÔ  r  r  s     rU   r	  zObjectName.from_stringé  s   € ØŒ?ð 	˜q Fš{˜{Ø�4ØˆrT   N©r™   ra   rw   ra   rX   rW   )rV   rW   rX   rÐ   )	rP   rQ   rR   rÂ   rí   Ústaticmethodr0  rM   r	  rS   rT   rU   r8   r8   Ù  s^   € € € € € ð>ð >ð 6€Ià�˜n˜nÑ-Ô-€Jðð ð ð ðð ð ð ð ð rT   r8   c                  ó   — e Zd ZdZd	d„ZdS )
r'   zFA string holding a valid dotted object name in Python, such as A.b3._cr™   ra   rw   rX   rW   c                óä   — |                       ||¦  «        }t          |t          ¦  «        r.t          d„ |                     d¦  «        D ¦   «         ¦  «        r|S |                      ||¦  «         d S )Nc              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rz   )r_   )rI  rH  s     rU   rJ  z,DottedObjectName.validate.<locals>.<genexpr>õ  s,   è è € Ð)UÐ)U¸q¨!¯.ª.Ñ*:Ô*:Ð)UÐ)UÐ)UÐ)UÐ)UÐ)UrT   rö   )r0  ri   rW   Úallrþ   rB  r  s      rU   rM   zDottedObjectName.validateò  sq   € Ø—’  UÑ+Ô+ˆå�e�SÑ!Ô!ð 	¥cÐ)UÐ)UÀEÇKÂKÐPSÑDTÔDTÐ)UÑ)UÔ)UÑ&UÔ&Uð 	ØˆLØ�
Š
�3˜ÑÔÐÐÐrT   Nr2  r  rS   rT   rU   r'   r'   ï  s.   € € € € € ØPÐPðð ð ð ð ð rT   r'   c                  ó¸   — e Zd ZdZdZdZej        r8ej        	 	 	 	 	 d(d)d„¦   «         Z	ej        	 	 	 	 	 d(d*d„¦   «         Z		 	 	 	 	 d(d+d„Z	d,d„Z
d-d!„Zd.d$„Zd/d&„Zd'S )0r   zA boolean (True, False) trait.Fz	a boolean.r}   úBool[bool, bool | int]rî   úbool | Sentinelrê   r[  rë   rð   rñ   rÐ   rò   ra   ró   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zBool.__init__  r¸  rT   ú$Bool[bool | None, bool | int | None]úbool | Sentinel | Nonera  c                ó   — d S rz   rS   r²  s          rU   r~   zBool.__init__  r¸  rT   rY   c                ó   — d S rz   rS   r²  s          rU   r~   zBool.__init__  rá  rT   r™   rw   rá   c                óª   — t          |t          ¦  «        r|S t          |t          ¦  «        r|dk    rdS |dk    rdS |                      ||¦  «         d S )Nr   Tr   F)ri   rY   r•  rB  r  s      rU   rM   zBool.validate%  sa   € Ý�e�TÑ"Ô"ð 	ØˆLÝ˜�sÑ#Ô#ð 	Ø˜ŠzˆzØ�tØ˜!’�Ø�uØ�
Š
�3˜ÑÔÐÐÐrT   rV   rW   c                ó~   — | j         r|dk    rd S |                     ¦   «         }|dv rdS |dv rdS t          d¦  «        ‚)Nrx   >   Ú1ÚtrueT>   Ú0ÚfalseFz%r is not 1, 0, true, or false)rê   Úlowerre   r  s     rU   r	  zBool.from_string/  sU   € ØŒ?ð 	˜q Fš{˜{Ø�4Ø�GŠG‰IŒIˆØ�ÐÐØ�4Ø�.Ð Ð Ø�5åÐ=Ñ>Ô>Ð>rT   rÓ   r  c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zBool.subclass_init:  r¿  rT   r  c                óF   — g d¢}| j         r|                     d¦  «         |S )ú Completion hints for argcomplete)rC  rB  rE  rD  rx   )rê   rŽ   )r}   ró   Úcompletionss      rU   ÚargcompleterzBool.argcompleter=  s1   € à1Ð1Ð1ˆØŒ?ð 	'Ø×Ò˜vÑ&Ô&Ð&ØÐrT   NrÖ  )r}   r9  rî   r:  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r<  rî   r=  rê   ra  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r<  rî   r=  rê   rY   rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   rx  r×  r¬  ©ró   ra   rX   r  )rP   rQ   rR   rÂ   rî   rí   rg   ry  r`  r~   rM   r	  rÛ   rK  rS   rT   rU   r   r   ú  s  € € € € € Ø(Ð(à€MØ€Ià„ð #à	
Œð .1Ø),Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð 58Ø(+Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 58Ø"Ø%(Ø"Øð		ð 		ð 		ð 		ð 		ðð ð ð ð	?ð 	?ð 	?ð 	?ðð ð ð ðð ð ð ð ð rT   r   c                  ó˜   — e Zd ZdZej        r8ej        	 	 	 	 	 ddd„¦   «         Zej        	 	 	 	 	 dd d„¦   «         Z	 	 	 	 	 dd!d„Zd"d„ZdS )#r   z'A casting version of the boolean trait..r}   úCBool[bool, t.Any]rî   r:  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zCBool.__init__J  r¸  rT   úCBool[bool | None, t.Any]r=  ra  c                ó   — d S rz   rS   r²  s          rU   r~   zCBool.__init__V  r¸  rT   rY   c                ó   — d S rz   rS   r²  s          rU   r~   zCBool.__init__b  rá  rT   r™   rw   rá   c                óp   — 	 t          |¦  «        S # t          $ r |                      ||¦  «         Y d S w xY wrz   )rY   r  rB  r  s      rU   rM   zCBool.validatem  sK   € ð	#Ý˜‘;”;ÐøÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"Ð"ð	#øøør  NrÖ  )r}   rN  rî   r:  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   rP  rî   r=  rê   ra  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   rP  rî   r=  rê   rY   rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   rx  rä  rS   rT   rU   r   r   E  sÐ   € € € € € Ø1Ð1à„ð #à	
Œð .1Ø),Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð 58Ø(+Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 58Ø"Ø%(Ø"Øð		ð 		ð 		ð 		ð 		ð#ð #ð #ð #ð #ð #rT   r   c                  óÞ   ‡ — e Zd ZdZej        r.ej        	 	 	 	 	 d/d0d„¦   «         Zej        	 	 	 	 	 d/d1d„¦   «         Zeddddfd2ˆ fd„Zd3d!„Z	d4d5d$„Z
d4d5d%„Zd6d&„Zd6d'„Zd7d)„Zd8d,„Zd9d.„Zˆ xZS ):r(   z0An enum whose value must be in a given sequence..r}   úEnum[G]rø  út.Sequence[G]rî   úG | Sentinelrê   r[  rë   rð   rñ   rÐ   rò   ra   ró   rX   rx   c                ó   — d S rz   rS   ©r}   rø  rî   rê   rë   rñ   rò   ró   s           rU   r~   zEnum.__init__y  r_  rT   úEnum[G | None]út.Sequence[G] | NoneúG | Sentinel | Nonera  c                ó   — d S rz   rS   rY  s           rU   r~   zEnum.__init__†  r_  rT   FNrY   c                ó�   •— || _         |du r|t          u rd }||d<   ||d<   ||d<   ||d<    t          ¦   «         j        |fi |¤Ž d S )NTrê   rë   rñ   rò   )rø  rB   r~  r~   )	r}   rø  rî   rê   rë   rñ   rò   ró   r5  s	           €rU   r~   zEnum.__init__“  sr   ø€ ð ˆŒØ˜ÐÐ -µ9Ð"<Ð"<Ø ˆMØ)ˆˆ|ÑØ'ˆˆ{ÑØˆˆv‰Ø!ˆˆxÑØ�‰ŒÔ˜Ð1Ð1¨&Ð1Ð1Ð1Ð1Ð1rT   r™   rw   rá   c                óV   — | j         r|| j         v r|S |                      ||¦  «         d S rz   )rø  rB  r  s      rU   rM   zEnum.validate¦  s7   € ØŒ;ð 	˜5 D¤KÐ/Ð/ØˆLØ�
Š
�3˜ÑÔÐÐÐrT   Úas_rstrW   c                ó”   — | j         pg }|r d                     d„ |D ¦   «         ¦  «        }nt          t          |¦  «        ¦  «        }|S )ú6Returns a description of the trait choices (not none).ú|c              3  ó    K  — | ]	}d |z  V — Œ
dS ©z``%r``NrS   ©rI  r¥   s     rU   rJ  z$Enum._choices_str.<locals>.<genexpr>¯  s&   è è € Ð!@Ð!@°1 (¨Q¡,Ð!@Ð!@Ð!@Ð!@Ð!@Ð!@rT   )rø  rN  r^  rö  )r}   r`  ÚchoicesÚ
choice_strs       rU   Ú_choices_strzEnum._choices_str«  sQ   € à”+Ð# ˆØð 	-ØŸšÐ!@Ð!@¸Ð!@Ñ!@Ô!@Ñ@Ô@ˆJˆJå�d 7™mœmÑ,Ô,ˆJØÐrT   c                óZ   — | j         r	d|rdndz  nd}d|                      |¦  «        › |› �S ©ro  ú or %sú`None`rx   rõ   úany of ©rê   ri  ©r}   r`  Únones      rU   Ú_infoz
Enum._info´  óC   € à>B¼oÐUˆx vÐ9˜8˜8°6Ñ:Ð:ÐSUˆØ:˜×*Ò*¨6Ñ2Ô2Ð:°DÐ:Ð:Ð:rT   c                ó.   — |                       d¬¦  «        S ©NF©r`  ©rr  rƒ   s    rU   rA  z	Enum.info¹  ó   € Ø�zŠz ˆzÑ'Ô'Ð'rT   c                ó.   — |                       d¬¦  «        S ©NTrv  rw  rƒ   s    rU   Úinfo_rstzEnum.info_rst¼  ó   € Ø�zŠz ˆzÑ&Ô&Ð&rT   rV   c                ón   — 	 |                       d |¦  «        S # t          $ r t          |¦  «        cY S w xY wrz   )rM   r=   rf   r  s     rU   r	  zEnum.from_string¿  sJ   € ð	)Ø—=’=  qÑ)Ô)Ð)øÝð 	)ð 	)ð 	)Ý% aÑ(Ô(Ð(Ð(Ð(ð	)øøøs   ‚ ˜4³4rÓ   r  c                ó   — d S rz   rS   rÚ   s     rU   rÛ   zEnum.subclass_initÅ  r¿  rT   r  c                ó(   — d„ | j         pg D ¦   «         S )rI  c                ó,   — g | ]}t          |¦  «        ‘ŒS rS   )rW   )rI  r�  s     rU   rØ  z%Enum.argcompleter.<locals>.<listcomp>Ê  s   € Ð2Ð2Ð2˜1•�A‘”Ð2Ð2Ð2rT   )rø  )r}   ró   s     rU   rK  zEnum.argcompleterÈ  s   € à2Ð2 ¤Ð 1¨rÐ2Ñ2Ô2Ð2rT   rÖ  )r}   rU  rø  rV  rî   rW  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   rZ  rø  r[  rî   r\  rê   ra  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   rU  rø  r[  rî   r\  rê   rY   rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   rx  ©F©r`  rY   rX   rW   r‡   r×  r¬  rL  )rP   rQ   rR   rÂ   rg   ry  r`  r~   rB   rM   ri  rr  rA  r{  r	  rÛ   rK  r‡  rˆ  s   @rU   r(   r(   t  s{  ø€ € € € € Ø:Ð:à„ð à	
Œð +.Ø),Ø%(Ø"Øð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð 
Œð 25Ø(+Ø%(Ø"Øð
	ð 
	ð 
	ð 
	ñ 
Œð
	ð .7Ø Ø!%ØØð2ð 2ð 2ð 2ð 2ð 2ð 2ð&ð ð ð ð
ð ð ð ð ð;ð ;ð ;ð ;ð ;ð
(ð (ð (ð (ð'ð 'ð 'ð 'ð)ð )ð )ð )ðð ð ð ð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3rT   r(   c                  óJ   ‡ — e Zd ZdZefdˆ fd
„Zdd„Zddd„Zdd„Zdd„Z	ˆ xZ
S )r!   z4An enum of strings where the case should be ignored.r}   úCaselessStrEnum[t.Any]rø  ra   rî   ró   rX   rx   c                ó@   •—  t          ¦   «         j        |fd|i|¤Ž d S ©Nrî   rž  )r}   rø  rî   ró   r5  s       €rU   r~   zCaselessStrEnum.__init__Ð  s/   ø€ ð 	�‰ŒÔ˜ÐGÐG¨}ÐGÀÐGÐGÐGÐGÐGrT   r™   rw   rá   c                ó*  — t          |t          ¦  «        s|                      ||¦  «         | j        pg D ]G}t          |t          ¦  «        sJ ‚|                     ¦   «         |                     ¦   «         k    r|c S ŒH|                      ||¦  «         d S rz   )ri   rW   rB  rø  rF  )r}   r™   rw   r�  s       rU   rM   zCaselessStrEnum.validateØ  s—   € Ý˜%¥Ñ%Ô%ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"à”Ð" ð 	ð 	ˆAÝ˜a¥Ñ%Ô%Ð%Ð%Ð%Ø�wŠw‰yŒy˜EŸKšK™MœMÒ)Ð)Ø���ð *à�
Š
�3˜ÑÔÐÐÐrT   Fr`  rY   rW   c                ó\   — | j         r	d|rdndz  nd}d|                      |¦  «        › d|› �S )ro  rl  rm  rx   rõ   rn  z (case-insensitive)ro  rp  s      rU   rr  zCaselessStrEnum._infoâ  sF   € à>B¼oÐUˆx vÐ9˜8˜8°6Ñ:Ð:ÐSUˆØM˜×*Ò*¨6Ñ2Ô2ÐMÐMÀtÐMÐMÐMrT   c                ó.   — |                       d¬¦  «        S ru  rw  rƒ   s    rU   rA  zCaselessStrEnum.infoç  rx  rT   c                ó.   — |                       d¬¦  «        S rz  rw  rƒ   s    rU   r{  zCaselessStrEnum.info_rstê  r|  rT   )
r}   r„  rø  ra   rî   ra   ró   ra   rX   rx   rx  r�  r‚  r‡   )rP   rQ   rR   rÂ   rB   r~   rM   rr  rA  r{  r‡  rˆ  s   @rU   r!   r!   Í  s®   ø€ € € € € Ø>Ð>ð
  )ðHð Hð Hð Hð Hð Hð Hðð ð ð ðNð Nð Nð Nð Nð
(ð (ð (ð (ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'rT   r!   c                  óV   ‡ — e Zd ZdZdZdZeddfdˆ fd„Zdd„Zddd„Z	dd„Z
dd„Zˆ xZS )r.   zEAn case-ignoring enum matching choices by unique prefixes/substrings.Fr}   úFuzzyEnum[t.Any]rø  ra   rî   Úcase_sensitiverY   Úsubstring_matchingró   rX   rx   c                ó\   •— || _         || _         t          ¦   «         j        |fd|i|¤Ž d S r†  )r�  rŽ  r~  r~   )r}   rø  rî   r�  rŽ  ró   r5  s         €rU   r~   zFuzzyEnum.__init__õ  s?   ø€ ð -ˆÔØ"4ˆÔØ�‰ŒÔ˜ÐGÐG¨}ÐGÀÐGÐGÐGÐGÐGrT   r™   rw   rá   c                ól  ‡‡‡	— t          ‰t          ¦  «        s|                      |‰¦  «         | j        rd„ nd„ Š| j        }|rd„ nd„ Š	 ‰‰¦  «        Š| j        pg }ˆˆ	ˆfd„|D ¦   «         }t          |¦  «        dk    rt          ||¦  «        D ]\  }}|r|c S Œ|                      |‰¦  «         d S )Nc                ó   — | S rz   rS   ©r›  s    rU   rÉ   z$FuzzyEnum.validate.<locals>.<lambda>  s   € ˜q€ rT   c                ó*   — |                       ¦   «         S rz   )rF  r’  s    rU   rÉ   z$FuzzyEnum.validate.<locals>.<lambda>  s   € ÈÏÊÉ	Ì	€ rT   c                ó
   — | |v S rz   rS   ©r�  r›  s     rU   rÉ   z$FuzzyEnum.validate.<locals>.<lambda>  s
   €  1¨ 6€ rT   c                ó,   — |                      | ¦  «        S rz   )Ú
startswithr•  s     rU   rÉ   z$FuzzyEnum.validate.<locals>.<lambda>  s   € ÐTU×T`ÒT`ÐabÑTcÔTc€ rT   c                ó:   •— g | ]} ‰‰ ‰|¦  «        ¦  «        ‘ŒS rS   rS   )rI  r›  Ú	conv_funcÚ
match_funcrw   s     €€€rU   rØ  z&FuzzyEnum.validate.<locals>.<listcomp>
  s-   ø€ ÐDÐDÐD°q�:�:˜e Y Y¨q¡\¤\Ñ2Ô2ÐDÐDÐDrT   r   )ri   rW   rB  r�  rŽ  rø  ÚsumÚzip)
r}   r™   rw   rŽ  rg  Úmatchesr�  Úmr™  rš  s
     `     @@rU   rM   zFuzzyEnum.validate  sü   øøø€ Ý˜%¥Ñ%Ô%ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"à%)Ô%8ÐQ�[�[�[Ð>QÐ>Qˆ	Ø!Ô4ÐØ.@ÐdÐ)Ð)Ð)ÐGcÐGcˆ
Ø�	˜%Ñ Ô ˆØ”+Ð# ˆØDÐDÐDÐDÐDÐD¸GÐDÑDÔDˆÝˆw‰<Œ<˜1ÒÐÝ˜G WÑ-Ô-ð ð ‘��1Øð Ø�H�H�Hðð 	�
Š
�3˜ÑÔÐÐÐrT   r`  rW   c                ó’   — | j         r	d|rdndz  nd}| j        rdnd}| j        rdnd}d	|› d
|› d|                      |¦  «        › |› �S )ro  rl  rm  rx   rõ   Ú	sensitiveÚinsensitiveÚ	substringÚprefixz	any case-ú rF  )rê   r�  rŽ  ri  )r}   r`  rq  ÚcaseÚsubstrs        rU   rr  zFuzzyEnum._info  su   € à>B¼oÐUˆx vÐ9˜8˜8°6Ñ:Ð:ÐSUˆØ"Ô1ÐDˆ{ˆ{°}ˆØ $Ô 7ÐE��¸XˆØO˜4ÐOÐO &ÐOÐO¨d×.?Ò.?ÀÑ.GÔ.GÐOÈÐOÐOÐOrT   c                ó.   — |                       d¬¦  «        S ru  rw  rƒ   s    rU   rA  zFuzzyEnum.info  rx  rT   c                ó.   — |                       d¬¦  «        S rz  rw  rƒ   s    rU   r{  zFuzzyEnum.info_rst  r|  rT   )r}   rŒ  rø  ra   rî   ra   r�  rY   rŽ  rY   ró   ra   rX   rx   rx  r�  r‚  r‡   )rP   rQ   rR   rÂ   r�  rŽ  rB   r~   rM   rr  rA  r{  r‡  rˆ  s   @rU   r.   r.   î  s¿   ø€ € € € € ØOÐOà€NàÐð
  )Ø$Ø#(ð
Hð 
Hð 
Hð 
Hð 
Hð 
Hð 
Hðð ð ð ð"Pð Pð Pð Pð Pð(ð (ð (ð (ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'rT   r.   c                  ó8  ‡ — e Zd ZU dZdZded<   dZded<   eZdZ	ded<   d	Z
ded
<   ej        ddddœd8d„¦   «         Zej        ddddœd9d„¦   «         Zej        ddddddœd:d#„¦   «         Zdedddfd;ˆ fd$„Zd<ˆ fd(„Zd<d)„Zd=ˆ fd-„Zd>d.„Zd?d0„Zd@d3„ZdAdBd7„Zˆ xZS )Cr$   z\An instance of a container (list, set, etc.)

    To be subclassed by overriding klass.
    Nztype[T] | NonerY  rS   ra   Ú_cast_typesÚ_trait)ú[]ú()Ú_literal_from_string_pairs.r°  r}   úContainer[T]rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   rX   rx   c               ó   — d S rz   rS   ©r}   rê   rë   rñ   rò   ró   s         rU   r~   zContainer.__init__,  rÈ  rT   úContainer[T | None]ra  c               ó   — d S rz   rS   r±  s         rU   r~   zContainer.__init__8  rÈ  rT   )r1  rî   rñ   rë   rò   r1  rî   rW   rY   c               ó   — d S rz   rS   )r}   r1  rî   rñ   rë   rò   ró   s          rU   r~   zContainer.__init__D  s	   € ð 	ˆrT   c           	     ó¶  •— |�|t           u rt          |¦  «        s|}d}|€B|                     dd¦  «        s,t          d| j        j        › d�t          d¬¦  «         t           }|t           u rd}nB|€d}d|d	<   n8t          || j        ¦  «        r|f}nt          d
| j        j        › d|› �¦  «        ‚t          |¦  «        rSt          |t          ¦  «        rt          dt          d¬¦  «         t          |t          ¦  «        r
 |¦   «         n|| _        n!|�t          dt          |¦  «        z  ¦  «        ‚ t          ¦   «         j        d| j        ||||dœ|¤Ž dS )aæ  Create a container trait type from a list, set, or tuple.

        The default value is created by doing ``List(default_value)``,
        which creates a copy of the ``default_value``.

        ``trait`` can be specified, which restricts the type of elements
        in the container to that TraitType.

        If only one arg is given and it is not a Trait, it is taken as
        ``default_value``:

        ``c = List([1, 2, 3])``

        Parameters
        ----------
        trait : TraitType [ optional ]
            the type for restricting the contents of the Container.  If unspecified,
            types are not checked.
        default_value : SequenceType [ optional ]
            The default value for the Trait.  Must be list/tuple/set, and
            will be cast to the container type.
        allow_none : bool [ default False ]
            Whether to allow the value to be None
        **kwargs : any
            further keys for extensions to the Trait (e.g. config)

        Nrê   FúSpecifying úa(default_value=None) for no default is deprecated in traitlets 5.0.5. Use default_value=Undefinedr[   r\   rS   rî   údefault value of ú was r{  rn  z'`trait` must be a Trait or None, got %s)rY  rM  rñ   rë   rò   )rB   rl   rý   r   r5  rP   r^   ri   Ú_valid_defaultsrs   rj   r«  r
   r~  r~   rY  )	r}   r1  rî   rñ   rë   rò   ró   rM  r5  s	           €rU   r~   zContainer.__init__Q  sÅ  ø€ ðL Ð µ)Ð!;Ð!;ÅHÈUÁOÄOÐ!;Ø!ˆMØˆEàÐ ¨¯ª°LÀ%Ñ)HÔ)HÐ õ ð/˜dœnÔ5ð /ð /ð /õ #Øðñ ô ð õ &ˆMà�IÐ%Ð%ØˆDˆDØÐ"àˆDØ&*ˆF�?Ñ#Ð#Ý˜ tÔ';Ñ<Ô<ð 	_Ø!Ð#ˆDˆDåÐ]°´Ô0GÐ]Ð]ÈmÐ]Ð]Ñ^Ô^Ð^å�E‰?Œ?ð 
	ZÝ˜%¥Ñ&Ô&ð ÝðEå&Ø ð	ñ ô ð õ &0°µtÑ%<Ô%<ÐG˜%˜%™'œ'˜'À%ˆDŒKˆKØÐÝÐEÍ	ÐRWÑHXÔHXÑXÑYÔYÐYà�‰ŒÔð 	
Ø”* 4¨d¸iÐPVð	
ð 	
ØZ`ð	
ð 	
ð 	
ð 	
ð 	
rT   r™   rw   r‹  c                óâ   •— t          || j        ¦  «        r| j        €J ‚|                      |¦  «        }t          ¦   «                              ||¦  «        }|€|S |                      ||¦  «        S rz   )ri   rª  rY  r~  rM   Úvalidate_elements©r}   r™   rw   r5  s      €rU   rM   zContainer.validate£  sp   ø€ Ý�e˜TÔ-Ñ.Ô.ð 	&Ø”:Ð)Ð)Ð)Ø—J’J˜uÑ%Ô%ˆEÝ‘”× Ò   eÑ,Ô,ˆØˆ=ØˆLà×%Ò% c¨5Ñ1Ô1Ð1rT   c                óP  — g }| j         �t          | j         t          ¦  «        r|S |D ]a}	 | j                              ||¦  «        }|                     |¦  «         Œ4# t
          $ r!}|                      |||¦  «         Y d }~ŒZd }~ww xY w| j        €J ‚|                      |¦  «        S rz   )r«  ri   r   r  rŽ   r=   rB  rY  )r}   r™   rw   Ú	validatedr�  rB  s         rU   r¼  zContainer.validate_elements­  sÑ   € Øˆ	ØŒ;Ð¥*¨T¬[½#Ñ">Ô">ÐØˆLØð 	$ð 	$ˆAð$Ø”K×)Ò)¨#¨qÑ1Ô1�ð × Ò  Ñ#Ô#Ð#Ð#øõ ð *ð *ð *Ø—
’
˜3  5Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)øøøøð*øøøð ŒzÐ%Ð%Ð%Ø�zŠz˜)Ñ$Ô$Ð$s   «AÁ
BÁ&BÂBrÓ   r  rÑ   c                ó¶   •— t          | j        t          ¦  «        r| j                             |d ¦  «         t	          ¦   «                              ||¦  «         d S rz   )ri   r«  r>   rÖ   r~  rÆ  s      €rU   rÖ   zContainer.class_init»  sO   ø€ Ý�d”k¥9Ñ-Ô-ð 	.ØŒK×"Ò" 3¨Ñ-Ô-Ð-Ý‰Œ×Ò˜3 Ñ%Ô%Ð%Ð%Ð%rT   c                ór   — t          | j        t          ¦  «        r| j                             |¦  «         d S d S rz   )ri   r«  r>   rÛ   rÚ   s     rU   rÛ   zContainer.subclass_initÀ  s<   € Ý�d”k¥9Ñ-Ô-ð 	+ØŒK×%Ò% cÑ*Ô*Ð*Ð*Ð*ð	+ð 	+rT   rV   c                óÂ   — t          |t          ¦  «        st          d|›�¦  «        ‚	 t          |¦  «        }n# t          $ r d}Y nw xY w|                      d|¦  «        S )úLoad value from a single stringzExpected string, got N)ri   rW   r=   r   r  rM   ©r}   rV   r   s      rU   r	  zContainer.from_stringÆ  su   € å˜!�SÑ!Ô!ð 	<ÝÐ:°QÐ:Ð:Ñ;Ô;Ð;ð	Ý ‘?”?ˆDˆDøÝð 	ð 	ð 	ØˆDˆDˆDð	øøøà�}Š}˜T 4Ñ(Ô(Ð(s   ©9 ¹AÁAÚs_listr  c                ó€  ‡ ‡‡— ‰ j         €J ‚t          |¦  «        dk    rÁ|d         Š‰dk    r	‰ j        rdS t          ‰¦  «        dk    r—t          ˆfd„‰ j        D ¦   «         ¦  «        rw‰ j        r‰ j        j        dz   }nd}‰ j        €J ‚t          d	 	                    |‰ j        z   ‰¦  «        t          d¬
¦  «         ‰                       t          ‰¦  «        ¦  «        S t          j        ‰ j        ¦  «        }d|j        v r‰ j        Šnddˆ fd„Š‰                       ˆfd„t!          |¦  «        D ¦   «         ¦  «        S )ziReturn the value from a list of config strings

        This is where we parse CLI configuration
        Nr   r   rx   r[   c              3  ór   •K  — | ]1\  }}‰                      |¦  «        o‰                     |¦  «        V — Œ2d S rz   )r—  Úendswith)rI  ÚstartÚendÚrs      €rU   rJ  z-Container.from_string_list.<locals>.<genexpr>Û  sV   øè è € ð #ð #á�E˜3ð —’˜UÑ#Ô#Ð7¨¯
ª
°3©¬ð#ð #ð #ð #ð #ð #rT   rö   rõ   z}--{0}={1} for containers is deprecated in traitlets 5.0. You can pass `--{0} item` ... multiple times to add items to a list.r\   r‘  rV   rW   ú
int | NonerX   úT | strc                ó.   •— ‰                      | ¦  «        S rz   ©Úitem_from_string)rV   r‘  r}   s     €rU   rÐ  z4Container.from_string_list.<locals>.item_from_stringò  s   ø€ Ø×,Ò,¨QÑ/Ô/Ð/rT   c                ó0   •— g | ]\  }} ‰||¬ ¦  «        ‘ŒS ))r‘  rS   )rI  ÚidxrV   rÐ  s      €rU   rØ  z.Container.from_string_list.<locals>.<listcomp>ö  s.   ø€ ÐLÐLÐL±°°QÐÐ˜a sÐ+Ñ+Ô+ÐLÐLÐLrT   rz   ©rV   rW   r‘  rÌ  rX   rÍ  )rY  r–   rê   Úanyr®  rÒ   rP   rÑ   r   rO  r^   r   r÷   Ú	signaturerÐ  Ú
parametersÚ	enumerate)r}   rÅ  r¦  ÚsigrÐ  rË  s   `   @@rU   Úfrom_string_listzContainer.from_string_listÐ  sœ  øøø€ ð
 ŒzÐ%Ð%Ð%Ýˆv‰;Œ;˜!ÒÐà�q”	ˆAØ�FŠ{ˆ{˜tœˆ{Ø�tÝ�1‰vŒv˜Š{ˆ{�sð #ð #ð #ð #à"&Ô"Að#ñ #ô #ñ  ô  ˆ{ð ”?ð !Ø"œoÔ6¸Ñ<�G�Gà �GØ”yÐ,Ð,Ð,Ýð[ß[aÒ[aØ $¤)Ñ+¨Qñ\ô \õ 'Ø ðñ ô ð ð —z’z¥,¨q¡/¤/Ñ2Ô2Ð2ÝÔ Ô 5Ñ6Ô6ˆØ�c”nÐ$Ð$Ø#Ô4ÐÐð0ð 0ð 0ð 0ð 0ð 0ð 0ð �zŠzØLÐLÐLÐL½)ÀFÑ:KÔ:KÐLÑLÔLñ
ô 
ð 	
rT   r‘  rÌ  rÍ  c                óH   — | j         r| j                              |¦  «        S |S ©ziCast a single item from a string

        Evaluated when parsing CLI configuration from a string
        )r«  r	  ©r}   rV   r‘  s      rU   rÐ  zContainer.item_from_stringù  s)   € ð
 Œ;ð 	Ø”;×*Ò*¨1Ñ-Ô-Ð-àˆHrT   )r}   r¯  rê   r[  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   r²  rê   ra  rë   rð   rñ   rÐ   rò   r\  ró   ra   rX   rx   )r}   r¯  r1  ra   rî   ra   rñ   rW   rë   rY   rò   ra   ró   ra   rX   rx   )r1  r\  rî   ra   rñ   rÐ   rë   rð   rò   r\  ró   ra   rX   rx   r“  ©rÓ   r  rÑ   rÐ   rX   rx   r¬  r”  )rÅ  r  rX   r‹  rz   rÓ  )rP   rQ   rR   rÂ   rY  rà   rª  ÚSequenceTypesrº  r«  r®  rg   r`  r~   rB   rM   r¼  rÖ   rÛ   r	  rÙ  rÐ  r‡  rˆ  s   @rU   r$   r$      s  ø€ € € € € € ðð ð
 !€EÐ Ð Ð Ñ Ø€KÐÐÐÑØ#€OØ€FÐÐÐÑØ(4ÐÐ4Ð4Ð4Ñ4à„Zð
 "%ØØ"ð	ð 	ð 	ð 	ð 	ñ „Zð	ð „Zð
 "%ØØ"ð	ð 	ð 	ð 	ð 	ñ „Zð	ð „Zð Ø"ØØØð
ð 
ð 
ð 
ð 
ñ „Zð
ð #Ø(ØØ!%Ø#ðP
ð P
ð P
ð P
ð P
ð P
ð P
ðd2ð 2ð 2ð 2ð 2ð 2ð%ð %ð %ð %ð&ð &ð &ð &ð &ð &ð
+ð +ð +ð +ð)ð )ð )ð )ð'
ð '
ð '
ð '
ðRð ð ð ð ð ð ð ð rT   r$   c                  ón   ‡ — e Zd ZU dZeZefZded<   de	de
j        fdˆ fd„Zdd„Zdˆ fd„Zdˆ fd„Zˆ xZS )r4   zAn instance of a Python list.ra   rª  Nr   r1  úIt.List[T] | t.Tuple[T] | t.Set[T] | Sentinel | TraitType[T, t.Any] | Nonerî   ú3t.List[T] | t.Tuple[T] | t.Set[T] | Sentinel | NoneÚminlenr•  Úmaxlenró   rX   rx   c                ó\   •— || _         || _         t          ¦   «         j        d||dœ|¤Ž dS )aÙ  Create a List trait type from a list, set, or tuple.

        The default value is created by doing ``list(default_value)``,
        which creates a copy of the ``default_value``.

        ``trait`` can be specified, which restricts the type of elements
        in the container to that TraitType.

        If only one arg is given and it is not a Trait, it is taken as
        ``default_value``:

        ``c = List([1, 2, 3])``

        Parameters
        ----------
        trait : TraitType [ optional ]
            the type for restricting the contents of the Container.
            If unspecified, types are not checked.
        default_value : SequenceType [ optional ]
            The default value for the Trait.  Must be list/tuple/set, and
            will be cast to the container type.
        minlen : Int [ default 0 ]
            The minimum length of the input list
        maxlen : Int [ default sys.maxsize ]
            The maximum length of the input list
        ©r1  rî   NrS   ©Ú_maxlenÚ_minlenr~  r~   ©r}   r1  rî   râ  rã  ró   r5  s         €rU   r~   zList.__init__
  ó>   ø€ ðD ˆŒØˆŒØ�‰ŒÔÐL˜u°MÐLÐLÀVÐLÐLÐLÐLÐLrT   r™   rw   c                ól   — d| j         t          |¦  «        | j        | j        |fz  }t	          |¦  «        ‚©Nz_The '%s' trait of %s instance must be of length %i <= L <= %i, but a value of %s was specified.©rÑ   r   rè  rç  r=   rm  s       rU   Úlength_errorzList.length_error0  ó8   € àmØŒy�( 3™-œ-¨¬°t´|ÀUÐKñLð 	
õ ˜‰mŒmÐrT   c                ó¾   •— t          |¦  «        }|| j        k     s|| j        k    r|                      ||¦  «         t	          ¦   «                              ||¦  «        S rz   ©r–   rè  rç  rî  r~  r¼  ©r}   r™   rw   Úlengthr5  s       €rU   r¼  zList.validate_elements7  óW   ø€ Ý�U‘”ˆØ�D”LÒ Ð  F¨T¬\Ò$9Ð$9Ø×Ò˜c 5Ñ)Ô)Ð)å‰wŒw×(Ò(¨¨eÑ4Ô4Ð4rT   c                ó¸   •— t          |t          ¦  «        r#t          ¦   «                              ||g¦  «        S t          ¦   «                              ||¦  «        S rz   ©ri   rW   r~  r+  r½  s      €rU   r+  zList.set>  óG   ø€ Ý�e�SÑ!Ô!ð 	+Ý‘7”7—;’;˜s U GÑ,Ô,Ð,å‘7”7—;’;˜s EÑ*Ô*Ð*rT   )r1  rà  rî   rá  râ  r•  rã  r•  ró   ra   rX   rx   ©r™   ra   rw   ra   rX   rx   r­  )rP   rQ   rR   rÂ   rö  rY  rŠ  rª  rà   rB   ÚsysÚmaxsizer~   rî  r¼  r+  r‡  rˆ  s   @rU   r4   r4     sÌ   ø€ € € € € € Ø'Ð'à€EØ˜€KÐ!Ð!Ð!Ñ!ð \`ØMVØØ”kð$Mð $Mð $Mð $Mð $Mð $Mð $MðLð ð ð ð5ð 5ð 5ð 5ð 5ð 5ð+ð +ð +ð +ð +ð +ð +ð +ð +ð +rT   r4   c                  óp   ‡ — e Zd ZdZeZeefZdZ	de
dej        fdˆ fd„Zdd„Zdˆ fd„Zdˆ fd„Zdd„Zˆ xZS )r:   zAn instance of a Python set.)r¬  r­  z{}Nr   r1  ra   rî   râ  r•  rã  ró   rX   rx   c                ó\   •— || _         || _         t          ¦   «         j        d||dœ|¤Ž dS )aÖ  Create a Set trait type from a list, set, or tuple.

        The default value is created by doing ``set(default_value)``,
        which creates a copy of the ``default_value``.

        ``trait`` can be specified, which restricts the type of elements
        in the container to that TraitType.

        If only one arg is given and it is not a Trait, it is taken as
        ``default_value``:

        ``c = Set({1, 2, 3})``

        Parameters
        ----------
        trait : TraitType [ optional ]
            the type for restricting the contents of the Container.
            If unspecified, types are not checked.
        default_value : SequenceType [ optional ]
            The default value for the Trait.  Must be list/tuple/set, and
            will be cast to the container type.
        minlen : Int [ default 0 ]
            The minimum length of the input list
        maxlen : Int [ default sys.maxsize ]
            The maximum length of the input list
        rå  NrS   ræ  ré  s         €rU   r~   zSet.__init__N  rê  rT   r™   rw   c                ól   — d| j         t          |¦  «        | j        | j        |fz  }t	          |¦  «        ‚rì  rí  rm  s       rU   rî  zSet.length_errort  rï  rT   c                ó¾   •— t          |¦  «        }|| j        k     s|| j        k    r|                      ||¦  «         t	          ¦   «                              ||¦  «        S rz   rñ  rò  s       €rU   r¼  zSet.validate_elements{  rô  rT   c                ó¸   •— t          |t          ¦  «        r#t          ¦   «                              ||h¦  «        S t          ¦   «                              ||¦  «        S rz   rö  r½  s      €rU   r+  zSet.set‚  r÷  rT   rW   c                ó’   — t          t          |                      ¦   «         pg ¦  «        ¦  «        }|dk    rdS d|dd…         z   dz   S )Nr¬  zset()Ú{r   re  Ú})r^  rÿ   r  )r}   Ú	list_reprs     rU   r_  zSet.default_value_reprˆ  sP   € å� × 9Ò 9Ñ ;Ô ;Ð A¸rÑBÔBÑCÔCˆ	Ø˜ÒÐØ�7Ø�Y˜q ˜t”_Ñ$ sÑ*Ð*rT   )r1  ra   rî   ra   râ  r•  rã  r•  ró   ra   rX   rx   rø  r­  r‡   )rP   rQ   rR   rÂ   r+  rY  rŠ  rö  rª  r®  rB   rù  rú  r~   rî  r¼  r_  r‡  rˆ  s   @rU   r:   r:   E  sØ   ø€ € € € € Ø&Ð&à€EØ˜$�-€Kà!3Ðð
 Ø(ØØ”kð$Mð $Mð $Mð $Mð $Mð $Mð $MðLð ð ð ð5ð 5ð 5ð 5ð 5ð 5ð+ð +ð +ð +ð +ð +ð+ð +ð +ð +ð +ð +ð +ð +rT   r:   c                  óR   ‡ — e Zd ZdZeZefZdˆ fd„Zdd„Z	dd„Z
dˆ fd„Zdd„Zˆ xZS )r?   zAn instance of a Python tuple.r—   ra   ró   rX   rx   c                ó  •— |                      dt          ¦  «        }t          |¦  «        dk    r(|t          u rt          |d         ¦  «        s
|d         }d}|€B|                     dd¦  «        s,t          d| j        j        › d	�t          d
¬¦  «         t          }|t          u rd}nB|€d}d|d<   n8t          || j
        ¦  «        r|f}nt          d| j        j        › d|› �¦  «        ‚g | _        |D ]R}t          |t          ¦  «        r!t          dt          d
¬¦  «          |¦   «         }| j                             |¦  «         ŒS| j        r|�	|t          u rd} t          t           | ¦  «        j        d| j        |dœ|¤Ž dS )aG  Create a tuple from a list, set, or tuple.

        Create a fixed-type tuple with Traits:

        ``t = Tuple(Int(), Str(), CStr())``

        would be length 3, with Int,Str,CStr for each element.

        If only one arg is given and it is not a Trait, it is taken as
        default_value:

        ``t = Tuple((1, 2, 3))``

        Otherwise, ``default_value`` *must* be specified by keyword.

        Parameters
        ----------
        *traits : TraitTypes [ optional ]
            the types for restricting the contents of the Tuple.  If unspecified,
            types are not checked. If specified, then each positional argument
            corresponds to an element of the tuple.  Tuples defined with traits
            are of fixed length.
        default_value : SequenceType [ optional ]
            The default value for the Tuple.  Must be list/tuple/set, and
            will be cast to a tuple. If ``traits`` are specified,
            ``default_value`` must conform to the shape and type they specify.
        **kwargs
            Other kwargs passed to `Container`
        rî   r   r   rS   Nrê   Fr¶  r·  r[   r\   r¸  r¹  ú~Traits should be given as instances, not types (for example, `Int()`, not `Int`) Passing types is deprecated in traitlets 4.1.©rY  rM  )r÷  rB   r–   rl   rý   r   r5  rP   r^   ri   rº  rs   rŽ  rj   rŽ   r~  r$   r~   rY  )r}   r—   ró   rî   rM  r1  r5  s         €rU   r~   zTuple.__init__–  sÞ  ø€ ð< Ÿ
š
 ?µIÑ>Ô>ˆåˆv‰;Œ;˜!ÒÐ µÐ :Ð :Å8ÈFÐSTÌIÑCVÔCVÐ :Ø" 1œIˆMØˆFàÐ ¨¯ª°LÀ%Ñ)HÔ)HÐ õ ð/˜dœnÔ5ð /ð /ð /õ #Øðñ ô ð õ &ˆMà�IÐ%Ð%ØˆDˆDØÐ"àˆDØ&*ˆF�?Ñ#Ð#Ý˜ tÔ';Ñ<Ô<ð 	_Ø!Ð#ˆDˆDåÐ]°´Ô0GÐ]Ð]ÈmÐ]Ð]Ñ^Ô^Ð^àˆŒØð 		'ð 		'ˆEÝ˜%¥Ñ&Ô&ð  ÝðEå&Ø ð	ñ ô ð ð ˜™œ�ØŒL×Ò Ñ&Ô&Ð&Ð&àŒ<ð 	˜]Ð2°mÅyÐ6PÐ6PàˆDØ'��i˜ÑÔÔ'ÐN¨d¬j¸tÐNÐNÀvÐNÐNÐNÐNÐNrT   rV   rW   r‘  r•  c                ó„   — | j         r|t          | j         ¦  «        k    r|S | j         |                              |¦  «        S rÛ  )rŽ  r–   r	  rÜ  s      rU   rÐ  zTuple.item_from_stringã  sD   € ð
 Œ|ð 	˜u­¨D¬LÑ(9Ô(9Ò9Ð9ð ˆHØŒ|˜EÔ"×.Ò.¨qÑ1Ô1Ð1rT   r™   rw   c                óü  — | j         s|S t          |¦  «        t          | j         ¦  «        k    rId| j        t          |¦  «        t          | j         ¦  «        t	          |¦  «        fz  }t          |¦  «        ‚g }t          | j         |¦  «        D ]_\  }}	 |                     ||¦  «        }|                     |¦  «         Œ2# t
          $ r!}|  	                    |||¦  «         Y d }~ŒXd }~ww xY wt          |¦  «        S )NzTThe '%s' trait of %s instance requires %i elements, but a value of %s was specified.)rŽ  r–   rÑ   r   r
   r=   rœ  r  rŽ   rB  rŠ  )r}   r™   rw   r  r¿  r1  r�  rB  s           rU   r¼  zTuple.validate_elementsî  s  € ØŒ|ð 	àˆLÝˆu‰:Œ:�˜Tœ\Ñ*Ô*Ò*Ð*àfØ”9�h s™mœm­S°´Ñ->Ô->Å	È%Ñ@PÔ@PÐQñRð õ ˜Q‘-”-Ðàˆ	Ý˜DœL¨%Ñ0Ô0ð 	$ð 	$‰HˆE�1ð$Ø—O’O C¨Ñ+Ô+�ð × Ò  Ñ#Ô#Ð#Ð#øõ ð *ð *ð *Ø—
’
˜3  5Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)øøøøð*øøøõ �YÑÔÐs   ÂCÃ
C,ÃC'Ã'C,rÓ   r  rÑ   rÐ   c                óÄ   •— | j         D ]-}t          |t          ¦  «        r|                     |d ¦  «         Œ.t	          t
          | ¦  «                             ||¦  «         d S rz   )rŽ  ri   r>   rÖ   r~  r$   ©r}   rÓ   rÑ   r1  r5  s       €rU   rÖ   zTuple.class_init  sc   ø€ Ø”\ð 	,ð 	,ˆEÝ˜%¥Ñ+Ô+ð ,Ø× Ò   dÑ+Ô+Ð+øÝ�i˜ÑÔ×)Ò)¨#¨tÑ4Ô4Ð4Ð4Ð4rT   c                ón   — | j         D ],}t          |t          ¦  «        r|                     |¦  «         Œ-d S rz   )rŽ  ri   r>   rÛ   ©r}   rÓ   r1  s      rU   rÛ   zTuple.subclass_init	  sD   € Ø”\ð 	)ð 	)ˆEÝ˜%¥Ñ+Ô+ð )Ø×#Ò# CÑ(Ô(Ð(øð	)ð 	)rT   )r—   ra   ró   ra   rX   rx   )rV   rW   r‘  r•  rX   ra   r­  rÝ  r¬  )rP   rQ   rR   rÂ   rŠ  rY  rö  rª  r~   rÐ  r¼  rÖ   rÛ   r‡  rˆ  s   @rU   r?   r?   �  s¶   ø€ € € € € Ø(Ð(à€EØ�'€KðKOð KOð KOð KOð KOð KOðZ	2ð 	2ð 	2ð 	2ð ð  ð  ð  ð*5ð 5ð 5ð 5ð 5ð 5ð)ð )ð )ð )ð )ð )ð )ð )rT   r?   c                  ó‚   ‡ — e Zd ZdZdZdZdddefd(ˆ fd„Z	 d)d*d„Zd+ˆ fd„Z	d,d„Z
d-ˆ fd„Zd.d „Zd/d"„Zd0d%„Zd1d'„Zˆ xZS )2r&   a¹  An instance of a Python dict.

    One or more traits can be passed to the constructor
    to validate the keys and/or values of the dict.
    If you need more detailed validation,
    you may use a custom validator method.

    .. versionchanged:: 5.0
        Added key_trait for validating dict keys.

    .. versionchanged:: 5.0
        Deprecated ambiguous ``trait``, ``traits`` args in favor of ``value_trait``, ``per_key_traits``.
    NÚvalue_traitú6TraitType[t.Any, t.Any] | dict[K, V] | Sentinel | NoneÚper_key_traitsra   Ú	key_traitúTraitType[t.Any, t.Any] | Nonerî   údict[K, V] | Sentinel | Noneró   rX   rx   c                óX  •— |                      dd¦  «        }|�*|�t          d¦  «        ‚|}t          dt          d¬¦  «         |                      dd¦  «        }|�*|�t          d¦  «        ‚|}t          d	t          d¬¦  «         |t          u r,|�*t          |¦  «        st          |t          ¦  «        rJ ‚|}d}|€|�t          |¦  «        r|}d}|t          u ri }|€d}nDt          |t          ¦  «        r|f}n+t          |t          ¦  «        r|f}nt          d
|z  ¦  «        ‚t          |¦  «        r>t          |t          ¦  «        r!t          dt          d¬¦  «          |¦   «         }|| _        n!|�t          dt          |¦  «        z  ¦  «        ‚t          |¦  «        r>t          |t          ¦  «        r!t          dt          d¬¦  «          |¦   «         }|| _        n!|�t          dt          |¦  «        z  ¦  «        ‚|| _         t          ¦   «         j        dt          |dœ|¤Ž dS )a  Create a dict trait type from a Python dict.

        The default value is created by doing ``dict(default_value)``,
        which creates a copy of the ``default_value``.

        Parameters
        ----------
        value_trait : TraitType [ optional ]
            The specified trait type to check and use to restrict the values of
            the dict. If unspecified, values are not checked.
        per_key_traits : Dictionary of {keys:trait types} [ optional, keyword-only ]
            A Python dictionary containing the types that are valid for
            restricting the values of the dict on a per-key basis.
            Each value in this dict should be a Trait for validating
        key_trait : TraitType [ optional, keyword-only ]
            The type for restricting the keys of the dict. If
            unspecified, the types of the keys are not checked.
        default_value : SequenceType [ optional, keyword-only ]
            The default value for the Dict.  Must be dict, tuple, or None, and
            will be cast to a dict if not None. If any key or value traits are specified,
            the `default_value` must conform to the constraints.

        Examples
        --------
        a dict whose values must be text
        >>> d = Dict(Unicode())

        d2['n'] must be an integer
        d2['s'] must be text
        >>> d2 = Dict(per_key_traits={"n": Integer(), "s": Unicode()})

        d3's keys must be text
        d3's values must be integers
        >>> d3 = Dict(value_trait=Integer(), key_trait=Unicode())

        r1  NzFFound a value for both `value_trait` and its deprecated alias `trait`.zIKeyword `trait` is deprecated in traitlets 5.0, use `value_trait` insteadr[   r\   r—   zJFound a value for both `per_key_traits` and its deprecated alias `traits`.zMKeyword `traits` is deprecated in traitlets 5.0, use `per_key_traits` insteadzdefault value of Dict was %sr  z-`value_trait` must be a Trait or None, got %sz+`key_trait` must be a Trait or None, got %sr  rS   )r÷  rs   r   r^   rB   rl   ri   r>   r¥  rÞ  rj   Ú_value_traitr
   Ú
_key_traitÚ_per_key_traitsr~  r~   )
r}   r  r  r  rî   ró   r1  r—   rM  r5  s
            €rU   r~   zDict.__init__#  sÌ  ø€ ð\ —
’
˜7 DÑ)Ô)ˆØÐØÐ&ÝØ\ñô ð ð  ˆKÝØ[Ý"Øðñ ô ð ð
 —’˜H dÑ+Ô+ˆØÐØÐ)ÝØ`ñô ð ð $ˆNÝØ_Ý"Øðñ ô ð ð �IÐ%Ð%¨+Ð*AÝ˜KÑ(Ô(ð #Ý% kµ9Ñ=Ô=Ð=Ð=Ð=Ø +�Ø"�àÐ Ð!;Ý˜Ñ'Ô'ð &Ø*�	Ø!%�ð �IÐ%Ð%ØˆMØÐ ØˆDˆDÝ˜¥tÑ,Ô,ð 	LØ!Ð#ˆDˆDÝ˜¥}Ñ5Ô5ð 	LØ!Ð#ˆDˆDåÐ:¸]ÑJÑKÔKÐKõ �KÑ Ô ð 	Ý˜+¥tÑ,Ô,ð ,ÝðEå&Ø ð	ñ ô ð ð *˜k™mœm�Ø +ˆDÔÐØÐ$ÝØ?Å)ÈKÑBXÔBXÑXñô ð õ �IÑÔð 	bÝ˜)¥TÑ*Ô*ð (ÝðEå&Ø ð	ñ ô ð ð &˜I™KœK�	Ø'ˆDŒOˆOØÐ"ÝÐIÍIÐV_ÑL`ÔL`Ñ`ÑaÔaÐaà-ˆÔà�‰ŒÔÐ9�t¨$Ð9Ð9°&Ð9Ð9Ð9Ð9Ð9rT   ÚValuesr™   ÚelementÚ	validatorÚsiderW   c                ó¦   — |d| j         › dt          |¦  «        › d|                     ¦   «         › dt          |¦  «        › d�	z   }t	          |¦  «        ‚)Nz	 of the 'rk  z instance must be rÂ  z was specified.)rÑ   r   rA  r
   r=   )r}   r™   r  r  r  r  s         rU   Úelement_errorzDict.element_error£  s�   € ð ð X˜$œ)ð  Xð  Xµ¸±´ð  Xð  XÐQZ×Q_ÒQ_ÑQaÔQað  Xð  XÕt}ð  Fñ  uGô  uGð  Xð  Xð  XñXð 	
õ ˜‰mŒmÐrT   rw   údict[K, V] | Nonec                ó|   •— t          ¦   «                              ||¦  «        }|€|S |                      ||¦  «        S rz   )r~  rM   r¼  r½  s      €rU   rM   zDict.validate¬  s<   ø€ Ý‘”× Ò   eÑ,Ô,ˆØˆ=ØˆLØ×%Ò% c¨5Ñ1Ô1Ð1rT   údict[t.Any, t.Any]c                óÆ  — | j         pi }| j        }| j        }|s|s|s|S i }|D ]©}||         }|r@	 |                     ||¦  «        }n(# t          $ r |                      |||d¦  «         Y nw xY w|                     ||¦  «        }	|	r@	 |	                     ||¦  «        }n(# t          $ r |                      |||	d¦  «         Y nw xY w|||<   Œª|                      |¦  «        S )NÚKeysr  )r  r  r  r  r=   r  rý   rY  )
r}   r™   rw   Úper_key_overrider  r  r¿  r’   r�  Úactive_value_traits
             rU   r¼  zDict.validate_elements²  sV  € ØÔ/Ð5°2ÐØ”Oˆ	ØÔ'ˆØð 	˜[ð 	Ð,<ð 	ØˆLàˆ	Øð 	ð 	ˆCØ�c”
ˆAØð DðDØ#×-Ò-¨c°3Ñ7Ô7�C�CøÝ!ð Dð Dð DØ×&Ò& s¨C°¸FÑCÔCÐCÐCÐCðDøøøà!1×!5Ò!5°c¸;Ñ!GÔ!GÐØ!ð MðMØ*×4Ò4°S¸!Ñ<Ô<�A�AøÝ!ð Mð Mð MØ×&Ò& s¨AÐ/AÀ8ÑLÔLÐLÐLÐLðMøøøàˆI�c‰NˆNà�zŠz˜)Ñ$Ô$Ð$s#   ±AÁ"A-Á,A-Â	B Â "CÃCrÓ   r  rÑ   rÐ   c                ó’  •— t          | j        t          ¦  «        r| j                             |d ¦  «         t          | j        t          ¦  «        r| j                             |d ¦  «         | j        �2| j                             ¦   «         D ]}|                     |d ¦  «         Œt          ¦   «                              ||¦  «         d S rz   )ri   r  r>   rÖ   r  r  rø  r~  r  s       €rU   rÖ   zDict.class_initË  s½   ø€ Ý�dÔ'­Ñ3Ô3ð 	4ØÔ×(Ò(¨¨dÑ3Ô3Ð3Ý�d”o¥yÑ1Ô1ð 	2ØŒO×&Ò& s¨DÑ1Ô1Ð1ØÔÐ+ØÔ-×4Ò4Ñ6Ô6ð ,ð ,�Ø× Ò   dÑ+Ô+Ð+Ð+Ý‰Œ×Ò˜3 Ñ%Ô%Ð%Ð%Ð%rT   c                óJ  — t          | j        t          ¦  «        r| j                             |¦  «         t          | j        t          ¦  «        r| j                             |¦  «         | j        �1| j                             ¦   «         D ]}|                     |¦  «         Œd S d S rz   )ri   r  r>   rÛ   r  r  rø  r  s      rU   rÛ   zDict.subclass_initÕ  s¨   € Ý�dÔ'­Ñ3Ô3ð 	1ØÔ×+Ò+¨CÑ0Ô0Ð0Ý�d”o¥yÑ1Ô1ð 	/ØŒO×)Ò)¨#Ñ.Ô.Ð.ØÔÐ+ØÔ-×4Ò4Ñ6Ô6ð )ð )�Ø×#Ò# CÑ(Ô(Ð(Ð(ð ,Ð+ð)ð )rT   rV   c                ó  — t          |t          ¦  «        s"t          d|›dt          |¦  «        › �¦  «        ‚	 |                      |g¦  «        S # t
          $ r* t          |¦  «        }t          |t          ¦  «        r|cY S ‚ w xY w)rÃ  z"from_string expects a string, got z	 of type )ri   rW   rs   rj   rÙ  r  rf   r¥  rÄ  s      rU   r	  zDict.from_stringà  sœ   € å˜!�SÑ!Ô!ð 	ZÝÐXÀÐXÐXÍtÐTUÉwÌwÐXÐXÑYÔYÐYð	Ø×(Ò(¨!¨Ñ-Ô-Ð-øÝð 	ð 	ð 	Ý% aÑ(Ô(ˆDÝ˜$¥Ñ%Ô%ð Ø���Øð		øøøs   ¹A Á0BÂBrÅ  r  c           	     óÆ  ‡ — t          |¦  «        dk    r|d         dk    r	‰ j        rdS t          |¦  «        dk    r||d                              d¦  «        ra|d                              d¦  «        rFt	          d‰ j        › d|d         › d	‰ j        › d
�t          d¬¦  «         t          |d         ¦  «        S i }ˆ fd„|D ¦   «         D ]}|                     |¦  «         Œ|S )zÝReturn a dict from a list of config strings.

        This is where we parse CLI configuration.

        Each item should have the form ``"key=value"``.

        item parsing is done in :meth:`.item_from_string`.
        r   r   rx   Nr  r  z--rÙ  z@ for dict-traits is deprecated in traitlets 5.0. You can pass --z7 <key=value> ... multiple times to add items to a dict.r[   r\   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS rS   rÏ  )rI  rV   r}   s     €rU   rØ  z)Dict.from_string_list.<locals>.<listcomp>  s'   ø€ Ð;Ð;Ð;¨q�$×'Ò'¨Ñ*Ô*Ð;Ð;Ð;rT   )	r–   rê   r—  rÈ  r   rÑ   r^   r   r  )r}   rÅ  Úcombinedrå  s   `   rU   rÙ  zDict.from_string_listì  s"  ø€ õ ˆv‰;Œ;˜!ÒÐ  q¤	¨VÒ 3Ð 3¸¼Ð 3Ø�4Ýˆv‰;Œ;˜!ÒÐ  q¤	× 4Ò 4°SÑ 9Ô 9Ð¸fÀQ¼i×>PÒ>PÐQTÑ>UÔ>UÐÝðe�T”Yð eð e ¨¤ð eð eØ"&¤)ðeð eð eå"Øð	ñ ô ð õ    q¤	Ñ*Ô*Ð*àˆØ;Ð;Ð;Ð;°FÐ;Ñ;Ô;ð 	ð 	ˆAØ�OŠO˜AÑÔÐÐØˆrT   ú
dict[K, V]c                ó6  — d|vrt          d| j        j        › d|›�¦  «        ‚|                     dd¦  «        \  }}| j        r| j                             |¦  «        }| j        pi                      || j        ¦  «        }|r|                     |¦  «        }||iS )a  Cast a single-key dict from a string.

        Evaluated when parsing CLI configuration from a string.

        Dicts expect strings of the form key=value.

        Returns a one-key dictionary,
        which will be merged in :meth:`.from_string_list`.
        rÙ  r=  z.' options must have the form 'key=value', got r   )	r=   r5  rP   rþ   r  r	  r  rý   r  )r}   rV   r’   rw   r  s        rU   rÐ  zDict.item_from_string  s·   € ð �aˆ<ˆ<ÝØ`�D”NÔ+Ð`Ð`Ð[\Ð`Ð`ñô ð ð —W’W˜S !‘_”_‰
ˆˆUð Œ?ð 	3Ø”/×-Ò-¨cÑ2Ô2ˆCð Ô+Ð1¨r×6Ò6°s¸DÔ<MÑNÔNˆØð 	3Ø×+Ò+¨EÑ2Ô2ˆEØ�Uˆ|ÐrT   )r  r  r  ra   r  r  rî   r  ró   ra   rX   rx   )r  )
r™   ra   r  ra   r  ra   r  rW   rX   rx   )r™   ra   rw   ra   rX   r  )r™   ra   rw   r!  rX   r  rÝ  r¬  )rV   rW   rX   r  )rÅ  r  rX   ra   )rV   rW   rX   r,  )rP   rQ   rR   rÂ   r  r  rB   r~   r  rM   r¼  rÖ   rÛ   r	  rÙ  rÐ  r‡  rˆ  s   @rU   r&   r&     s0  ø€ € € € € ðð ð €LØ€Jð OSØ $Ø48Ø6?ð~:ð ~:ð ~:ð ~:ð ~:ð ~:ð ~:ðB IQðð ð ð ð ð2ð 2ð 2ð 2ð 2ð 2ð%ð %ð %ð %ð2&ð &ð &ð &ð &ð &ð)ð )ð )ð )ð
ð 
ð 
ð 
ðð ð ð ð4ð ð ð ð ð ð ð rT   r&   r,  c                  ó¨   — e Zd ZdZdZdZej        r8ej        	 	 	 	 	 d%d&d„¦   «         Z	ej        	 	 	 	 	 d%d'd„¦   «         Z	e
ddddfd(d„Z	d)d!„Zd*d$„ZdS )+r;   zgA trait for an (ip, port) tuple.

    This allows for both IPv4 IP addresses as well as hostnames.
    )z	127.0.0.1r   zan (ip, port) tuple.r}   ú,TCPAddress[tuple[str, int], tuple[str, int]]rî   r:  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   rX   rx   c                ó   — d S rz   rS   r²  s          rU   r~   zTCPAddress.__init__-  r¸  rT   ú:TCPAddress[tuple[str, int] | None, tuple[str, int] | None]úbool | None | Sentinelra  c                ó   — d S rz   rS   r²  s          rU   r~   zTCPAddress.__init__9  r¸  rT   FNúiTCPAddress[tuple[str, int] | None, tuple[str, int] | None] | TCPAddress[tuple[str, int], tuple[str, int]]r´  c                ó   — d S rz   rS   r²  s          rU   r~   zTCPAddress.__init__E  r¸  rT   r™   rw   rá   c                ó  — t          |t          ¦  «        r_t          |¦  «        dk    rLt          |d         t          ¦  «        r1t          |d         t          ¦  «        r|d         }|dk    r|dk    r|S |                      ||¦  «         d S )Nr[   r   r   iÿÿ  )ri   rŠ  r–   rW   r•  rB  )r}   r™   rw   Úports       rU   rM   zTCPAddress.validateQ  s‡   € Ý�e�UÑ#Ô#ð 	%Ý�5‰zŒz˜QŠˆÝ˜e Aœh­Ñ,Ô,ð %µ¸EÀ!¼HÅcÑ1JÔ1Jð %Ø  œ8�DØ˜q’y�y T¨U¢] ]Ø$˜Ø�
Š
�3˜ÑÔÐÐÐrT   rV   rW   c                ó¤   — | j         r|dk    rd S d|vrt          d|z  ¦  «        ‚|                     dd¦  «        \  }}t          |¦  «        }||fS )Nrx   ú:zRequire `ip:port`, got %rr   )rê   re   rþ   r•  )r}   rV   ÚipÚport_strr7  s        rU   r	  zTCPAddress.from_stringZ  s`   € ØŒ?ð 	˜q Fš{˜{Ø�4Ø�aˆ<ˆ<ÝÐ8¸1Ñ<Ñ=Ô=Ð=Ø—w’w˜s A‘”‰ˆˆHÝ�8‰}Œ}ˆØ�DˆzÐrT   rÖ  )r}   r/  rî   r:  rê   r[  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r1  rî   r2  rê   ra  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   )r}   r4  rî   r2  rê   r´  rë   rð   rñ   rÐ   rò   ra   ró   ra   rX   rx   rx  r×  )rP   rQ   rR   rÂ   rî   rí   rg   ry  r`  r~   rB   rM   r	  rS   rT   rU   r;   r;   "  sô   € € € € € ðð ð
 %€MØ%€Ià„ð $à	
Œð .1Ø),Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 
Œð 58Ø(+Ø%(Ø"Øð		ð 		ð 		ð 		ñ 
Œð		ð 5>Ø/4Ø%)Ø#Ø ð
	ð 
	ð 
	ð 
	ð 
	ðð ð ð ðð ð ð ð ð rT   r;   c                  ó   — e Zd ZdZdZd
d„Zd	S )r   z«A casting compiled regular expression trait.

    Accepts both strings and compiled regular expressions. The resulting
    attribute will be a compiled regular expression.za regular expressionr™   ra   rw   rX   úre.Pattern[t.Any] | Nonec                óz   — 	 t          j        |¦  «        S # t          $ r |                      ||¦  «         Y d S w xY wrz   )ÚreÚcompiler  rB  r  s      rU   rM   zCRegExp.validatel  sO   € ð	#Ý”:˜eÑ$Ô$Ð$øÝð 	#ð 	#ð 	#Ø�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"Ð"ð	#øøøs   ‚ – :¹:N)r™   ra   rw   ra   rX   r=  ©rP   rQ   rR   rÂ   rí   rM   rS   rT   rU   r   r   d  s9   € € € € € ð8ð 8ð
 '€Ið#ð #ð #ð #ð #ð #rT   r   zre.Pattern[t.Any]c                  ó€   ‡ — e Zd ZU dZdZded<   dZ	 ddˆ fd„Zefdd„Z	efdd„Z
d d„Zd!d"d„Zd!d"d„Zd#d„Zd#d„Zˆ xZS )$rD   as  Use a Enum class as model for the data type description.
    Note that if no default-value is provided, the first enum-value is used
    as default-value.

    .. sourcecode:: python

        # -- SINCE: Python 3.4 (or install backport: pip install enum34)
        import enum
        from traitlets import HasTraits, UseEnum


        class Color(enum.Enum):
            red = 1  # -- IMPLICIT: default_value
            blue = 2
            green = 3


        class MyEntity(HasTraits):
            color = UseEnum(Color, default_value=Color.blue)


        entity = MyEntity(color=Color.red)
        entity.color = Color.green  # USE: Enum-value (preferred)
        entity.color = "green"  # USE: name (as string)
        entity.color = "Color.green"  # USE: scoped-name (as string)
        entity.color = 3  # USE: number (as int)
        assert entity.color is Color.green
    Nzenum.Enum | Nonerî   z"Trait type adapter to a Enum classÚ
enum_classr  ra   ró   rX   rx   c                óR  •— t          |t          j        ¦  «        sJ d|z  ¦   «         ‚|                     dd¦  «        }|€5|s3t	          t          |j                             ¦   «         ¦  «        ¦  «        } t          ¦   «         j	        dd|i|¤Ž || _
        |j        dz   | _        d S )NzREQUIRE: enum.Enum, but was: %rrê   Frî   rö   rS   )rk   Úenumr(   rý   ÚnextÚiterÚ__members__rø  r~  r~   rC  rP   Úname_prefix)r}   rC  rî   ró   rê   r5  s        €rU   r~   zUseEnum.__init__”  s­   ø€ õ ˜*¥d¤iÑ0Ô0Ð`Ð`Ð2SÐV`Ñ2`Ñ`Ô`Ð`Ø—Z’Z ¨eÑ4Ô4ˆ
ØÐ ¨Ð Ý ¥ jÔ&<×&CÒ&CÑ&EÔ&EÑ!FÔ!FÑGÔGˆMØ�‰ŒÔÐ?Ð? }Ð?¸Ð?Ð?Ð?Ø$ˆŒØ%Ô.°Ñ4ˆÔÐÐrT   rw   r•  rF   c                ó˜   — t          |t          ¦  «        sJ ‚| j        j        }|                     ¦   «         D ]}|j        |k    r|c S Œ|S )z0Selects enum-value by using its number-constant.)ri   r•  rC  rH  rø  rw   )r}   rw   rF   Úenum_membersÚ	enum_items        rU   Úselect_by_numberzUseEnum.select_by_numberŸ  sb   € å˜%¥Ñ%Ô%Ð%Ð%Ð%Ø”Ô2ˆØ%×,Ò,Ñ.Ô.ð 	!ð 	!ˆIØŒ %Ò'Ð'Ø Ð Ð Ð ð (ð ˆrT   rW   c                óÜ   — t          |t          ¦  «        sJ ‚|                     | j        ¦  «        r|                     | j        dd¦  «        }| j        j                             ||¦  «        S )z4Selects enum-value by using its name or scoped-name.rõ   r   )ri   rW   r—  rI  ÚreplacerC  rH  rý   )r}   rw   rF   s      rU   Úselect_by_namezUseEnum.select_by_name©  sd   € å˜%¥Ñ%Ô%Ð%Ð%Ð%Ø×Ò˜DÔ,Ñ-Ô-ð 	;à—M’M $Ô"2°B¸Ñ:Ô:ˆEØŒÔ*×.Ò.¨u°gÑ>Ô>Ð>rT   r™   c                ó\  — t          || j        ¦  «        r|S t          |t          ¦  «        r!|                      |¦  «        }|t          ur|S nHt          |t
          ¦  «        r!|                      |¦  «        }|t          ur|S n|€| j        rd S | j        S |  	                    ||¦  «         d S rz   )
ri   rC  r•  rM  rB   rW   rP  rê   rî   rB  )r}   r™   rw   Úvalue2s       rU   rM   zUseEnum.validate±  sÆ   € Ý�e˜Tœ_Ñ-Ô-ð 	*ØˆLÝ˜�sÑ#Ô#ð 	*à×*Ò*¨5Ñ1Ô1ˆFØ�YÐ&Ð&Ø�ð 'å˜�sÑ#Ô#ð 		*à×(Ò(¨Ñ/Ô/ˆFØ�YÐ&Ð&Ø�ð 'àˆ]ØŒð *Ø�tàÔ)Ð)Ø�
Š
�3˜ÑÔÐÐÐrT   Fr`  rY   c                ó¸   — | j         j                             ¦   «         }|rd                     d„ |D ¦   «         ¦  «        S t	          t          |¦  «        ¦  «        S )rb  rc  c              3  ó    K  — | ]	}d |z  V — Œ
dS re  rS   rf  s     rU   rJ  z'UseEnum._choices_str.<locals>.<genexpr>É  s&   è è € Ð:Ð:¨Q˜H q™LÐ:Ð:Ð:Ð:Ð:Ð:rT   )rC  rH  rX  rN  r^  rö  )r}   r`  rg  s      rU   ri  zUseEnum._choices_strÅ  sU   € à”/Ô-×2Ò2Ñ4Ô4ˆØð 	'Ø—8’8Ð:Ð:°'Ð:Ñ:Ô:Ñ:Ô:Ð:å�˜W™œÑ&Ô&Ð&rT   c                óZ   — | j         r	d|rdndz  nd}d|                      |¦  «        › |› �S rk  ro  rp  s      rU   rr  zUseEnum._infoÍ  rs  rT   c                ó.   — |                       d¬¦  «        S ru  rw  rƒ   s    rU   rA  zUseEnum.infoÒ  rx  rT   c                ó.   — |                       d¬¦  «        S rz  rw  rƒ   s    rU   r{  zUseEnum.info_rstÕ  r|  rT   rz   )rC  r  rî   ra   ró   ra   rX   rx   )rw   r•  rF   ra   rX   ra   )rw   rW   rF   ra   rX   ra   r­  r�  r‚  r‡   )rP   rQ   rR   rÂ   rî   rà   rí   r~   rB   rM  rP  rM   ri  rr  rA  r{  r‡  rˆ  s   @rU   rD   rD   s  s  ø€ € € € € € ðð ð: '+€MÐ*Ð*Ð*Ñ*Ø4€Ið ?Cð	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð =Fð ð ð ð ð ð ;Dð ?ð ?ð ?ð ?ð ?ðð ð ð ð('ð 'ð 'ð 'ð 'ð;ð ;ð ;ð ;ð ;ð
(ð (ð (ð (ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'rT   rD   c                  ó   — e Zd ZdZdZd	d„ZdS )
r    zxA trait which is callable.

    Notes
    -----
    Classes are callable, as are instances
    with a __call__() method.z
a callabler™   ra   rw   rX   c                óT   — t          |¦  «        r|S |                      ||¦  «         d S rz   )r&  rB  r  s      rU   rM   zCallable.validateã  s/   € Ý�E‰?Œ?ð 	#ØˆLà�JŠJ�s˜EÑ"Ô"Ð"Ð"Ð"rT   Nr­  rA  rS   rT   rU   r    r    Ù  s9   € € € € € ð!ð !ð €Ið#ð #ð #ð #ð #ð #rT   r    )rV   rW   rX   rY   r®  )rg   ra   rX   rY   )rm   rn   rX   ro   rz   )rˆ   ra   r‰   ra   rX   rŠ   )r”   ra   rX   rx   )rc  ra   rX   rb  )rm   rž  rj   rW   rX   r9   )r   r¡  rX   r¡  )rm   rž  rX   rE   )rÑ   rW   rX   r%   )r1  rÀ  r™   ra   rw   ra   rX   ra   )€rÂ   Ú
__future__r   rÃ   rE  r÷   rÐ  r"  r?  rù  rg  Útypingrg   Úastr   Úutils.bunchr   Úutils.descriptionsr   r   r	   r
   Úutils.getargspecr   Úutils.importstringr   Úutils.sentinelr   Úutils.warningsr   r   r   rö  rŠ  r+  Ú	frozensetrÞ  rj   Ú
ClassTypesry  Útyping_extensionsr   Ú__all__rB   r   ÚNoDefaultSpecifiedr  r=   r_   rf   rl   rL   rv   r“   r›   rI   rG   rH   r   rá   râ   r¦   rã   rä   rW   rå   r   ræ   ÚGenericr>   rb  rr  r6   r7   rJ   rK   rM   rF   r    r¡  r)   r9   rE   r%   r/   r0   r"   r@   r1   r,   r-   r+   ÚOptionalr<   rC   rÃ  r2   r   r5   r   r3   r*   r   rû  r–  r•  r#   r   r  r   r   rA   r   r8   r'   r   r   r(   r!   r.   r$   r4   r:   r?   r&   r;   r   rD   rS   rT   rU   ú<module>rj     sN  ðð!ð !ðR #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ (Ð (Ð (Ð (Ð (Ð (Ø +Ð +Ð +Ð +Ð +Ð +Ø $Ð $Ð $Ð $Ð $Ð $Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @à�u˜c 9Ð-€ð ˆW€
à„?ð Ø)Ð)Ð)Ð)Ð)Ð)Ð)àÐÐÐÐÐð<ð <ð <€ðJ ˆHØØðñô €	ð €hØ	Øðñô €ð Ð ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ðð ð ð ð
ð 
ð 
ð 
ðZð Zð Zð Zð
ð ð ð ð6ð ð ð ð ñ ô ð ðð ð ð ð ð(Dð Dð Dð DðTLð TLð TLð TLð TLñ TLô TLð TLðn@Eð @Eð @Eð @Eð @Eñ @Eô @Eð @EðF 	€ð7ð 7ð 7ð 7ð 7ñ 7ô 7ð 7ðt €GˆC�L„L€Ø€GˆC�L„L€Ø€GˆC�L„L€ð „?ð 	Ø/Ð/Ð/Ð/Ð/Ð/Ð/Ð/àˆ�˜SÐ!Ñ!Ô!€AØˆ�˜QœUÐ#Ñ#Ô#€A€Að 	ˆ�‰Œ€AØˆ�‰Œ€Að
A(ð A(ð A(ð A(ð A(� ¤	¨!¨Q¨$¤ñ A(ô A(ð A(ðR!Gð !Gð !Gð !Gð !Gñ !Gô !Gð !GðH$ð $ð $ð $ð6+ð 6+ð 6+ð 6+ð 6+˜ñ 6+ô 6+ð 6+ðrVLð VLð VLð VLð VLÐ&ñ VLô VLð VLðr 19ð ,ð ,ð ,ð ,ð ,ð ,ð<#ð #ð #ð #ðL"ð "ð "ð "ðB& ð & ð & ð & ðR 	ˆŒ	�' ¤¨C°´¨JÔ!7Ð8Ñ8Ô8€ð1ð 1ð 1ð 1ð 1�>ñ 1ô 1ð 1ð4=ð =ð =ð =ð =�\ñ =ô =ð =ð9ð 9ð 9ð 9ð 9�lñ 9ô 9ð 9ð>ð >ð >ð >ð >�\ñ >ô >ð >ðð ð ð ð Ð1ð ñ ô ð ð<c
ð c
ð c
ð c
ð c
�¨-ð c
ñ c
ô c
ð c
ð^
#ð 
#ð 
#ð 
#ð 
#˜) A q Dœ/ñ 
#ô 
#ð 
#ðc@ð c@ð c@ð c@ð c@Ð˜q !˜tÔ$ñ c@ô c@ð c@ðL]%ð ]%ð ]%ð ]%ð ]%Ð" 1 a 4Ô(ñ ]%ô ]%ð ]%ð@8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ðð ð ð ð Ð.°°Q¸°T´
ñ ô ð ðð ð ð ð Ð2°H¸Q´Kñ ô ð ð#ð #ð #ð #ð #Ð˜qœz¨!œ}¨a¬j¸¬mÐ;Ô<ñ #ô #ð #ð0Q&ð Q&ð Q&ð Q&ð Q&ˆI�a”e˜QœU�lÔ#ñ Q&ô Q&ð Q&ðrHð Hð Hð Hð Hˆ)�A”J˜qœuÔ% q¤z°!´%Ô'8Ð8Ô
9ñ Hô Hð HðVð ð ð ð6Fð Fð Fð Fð Fˆ)�A�q�DŒ/ñ Fô Fð FðR-2ð -2ð -2ð -2ð -2ˆ3ˆq�!ˆtŒ9ñ -2ô -2ð -2ð` �4€€€eØ
€ð?ð ?ð ?ð ?ð ?ˆI�a˜�dŒOñ ?ô ?ð ?ðD-2ð -2ð -2ð -2ð -2ˆU�1�a�4Œ[ñ -2ô -2ð -2ð`ð ð ð ð ˆi˜ ¤¨°%¸Ð)<Ô!=Ð=Ô>ñ ô ð ð,#ð #ð #ð #ð #ˆw˜	 '¨1¬5 .Ô1ñ #ô #ð #ðð ð ð ð ˆI�e˜U�lÔ#ñ ô ð ðB#ð #ð #ð #ð #ˆU�I˜e Q¤U˜lÔ+ñ #ô #ð #ðIð Ið Ið Ið Iˆi˜˜1˜Œoñ Iô Ið IðX,#ð ,#ð ,#ð ,#ð ,#ˆw�q˜!�tŒ}˜i¨¨Q¬U¨
Ô3ñ ,#ô ,#ð ,#ð^ð ð ð ð �˜3 ˜8Ô$ñ ô ð ð,ð ð ð ð �zñ ô ð ðHð Hð Hð Hð Hˆ9�Q˜�TŒ?ñ Hô Hð HðV,#ð ,#ð ,#ð ,#ð ,#ˆD��A�ŒJñ ,#ô ,#ð ,#ð^V3ð V3ð V3ð V3ð V3ˆ9�Q˜�TŒ?ñ V3ô V3ð V3ðr'ð 'ð 'ð 'ð '�d˜1”gñ 'ô 'ð 'ðB/'ð /'ð /'ð /'ð /'��Q”ñ /'ô /'ð /'ðdað að að að a�˜”ñ aô að aðH>+ð >+ð >+ð >+ð >+ˆ9�Q”V˜A”YÔñ >+ô >+ð >+ðBH+ð H+ð H+ð H+ð H+ˆ)�A”E˜!œ%”LÔ
!ñ H+ô H+ð H+ðV|)ð |)ð |)ð |)ð |)ˆI�a”g˜aœe S˜jÔ)Ô*ñ |)ô |)ð |)ðBNð Nð Nð Nð Nˆ8�LÔ!ñ Nô Nð Nðb?ð ?ð ?ð ?ð ?�˜1˜a˜4”ñ ?ô ?ð ?ðD#ð #ð #ð #ð #ˆiÐ+¨Q¬WÐ5HÈ#Ð5MÔ-NÐNÔOñ #ô #ð #ðc'ð c'ð c'ð c'ð c'ˆi˜œ˜qœu˜Ô%ñ c'ô c'ð c'ðL#ð #ð #ð #ð #ˆy˜œ C¨¬ JÔ/°´¸CÀÄ¸JÔ1GÐGÔHñ #ô #ð #ð #ð #rT   