
    Kc8                       d Z ddlZddlZddlZddlmZ ddlZddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3mZm4Z4 ddl5m6Z6 ddl7m8Z8 d Z9 G d	 d
e          Z: G d de          Z; G d de          Z< G d de          Z= G d de          Z> G d de          Z? G d de          Z@ G d de          ZA G d de          ZB G d de          ZC G d de          ZD G d d e          ZE G d! d"e          ZF G d# d$eE          ZG G d% d&e          ZH G d' d(eE          ZI G d) d*e          ZJ G d+ d,eE          ZK G d- d.e          ZL G d/ d0eE          ZM G d1 d2e          ZN G d3 d4eE          ZO G d5 d6e          ZP G d7 d8eE          ZQ G d9 d:e          ZR G d; d<eQ          ZS G d= d>e          ZT G d? d@eE          ZU G dA dBe          ZV G dC dDeE          ZW G dE dFe          ZX G dG dHeE          ZY G dI dJe          ZZ G dK dLeE          Z[ G dM dNe          Z\ G dO dPe[          Z] G dQ dRe          Z^ G dS dTeU          Z_ G dU dVe          Z` G dW dXeE          Za G dY dZe          Zb G d[ d\eE          Zc G d] d^e          Zd G d_ d`eE          Ze G da dbe          Zf G dc ddeE          Zg G de dfe          Zh G dg dheE          Zi G di dje          Zj G dk dleE          Zk G dm dne          Zl G do dpeE          Zm G dq dre          Zn G ds dteE          Zo G du dve          Zp G dw dxeE          Zq G dy dze          Zr G d{ d|eE          Zs G d} d~e          Zt G d deE          Zu G d d          Zv G d de          Zw G d deE          Zx G d de          Zy G d deE          Zz G d de          Z{ G d deE          Z| G d de          Z} G d deE          Z~ G d de          Z G d deE          Z G d de          Z G d deE          Z G d de          Z G d deE          Zej                            de!e*e%ee e-f          d             Zej                            de!g fe*dfe% e            fei fe dfe-dff          d             Zej                            de!g fe*dfe% e            ff          d             Z G d de          Z G d deE          Z G d de          Zd Z G d de          Z G d deE          Z G d de          Z G d deE          Z G d de          Z G d deE          Z G d de          Z G d deE          Zd Z G d de          Z G d de          Z G d de          Z G dĄ de          ZdƄ ZdǄ Z G dȄ de          Z G dʄ de          Z G d̄ de          Zd΄ Z G dτ de          Zdф Z G d҄ de          Z G dԄ de          Z G dք de          Z G d؄ de          Z G dڄ dۦ          Z G d܄ de          Z G dބ deE          Z G d deE          Z G d deE          Z G d deE          Z G d de          Zd Zd Z G d de          Z G d de          Zd Z G d de          Z G d de          Zd Z G d de          Zd Z G d de          Zd Zd Zd Zd Zd Zd Zd Zd  Zd Zd ZÐd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d	             Zej                            dg d          d
             Zej                            ddefdddefdg          d             Zej                            ddefddddg          d             Zej                            ddefdddddg          d             Zej                            ddddddddefdg          d             Zej                            ddi fd e(fd!dd"ifd#d$d%ifde(fdg          d&             Zej                            dd'g fd(g d)fd dgd dgfd*gdfg          d+             Zej                            d,g d-g d. e             fdge e             fd dgd dg e-            fd*gdg e-d/0          fd*gd*g e-d10          fg          d2             Zej                            dd' e            fd(h d3fd4h d3fd dgd dhfd*gdfg          d5             Zej                            d,g d-h d6 e             fdge e             fd dgd dh e-            fd*gdh e-d/0          fg          d7             Zej                            dd8d9d:d;d dgd<fd*gdfg          d=             Zej                            d>g d-d. e              e              e             gfdge e             gfd dgd< e-            gfd*gd? e-d10          gfd*gd@ e-d/0          gfg          dA             Zej                            ddBdCdDe(fdEdg          dF             Zej                            ddGdHdIefdJefdg          dK             Zej                            dd'g fdLg          dM             Zej                            dddNg          dO             Zej                            dPd'g d1fdi d1fd*e(d1fdQg          dR             ZِdS ZdS (T  zTests for traitlets.traitlets.    N)TestCase)-AllAnyBaseDescriptorBoolBytesCallableCBytesCFloatCIntCLongComplexCRegExpCUnicodeDictDottedObjectNameEnumFloatForwardDeclaredInstanceForwardDeclaredTypeHasDescriptors	HasTraitsInstanceIntIntegerListLongMetaHasTraits
ObjectNameSet
TCPAddressThis
TraitError	TraitTypeTupleType	UndefinedUnicodeUniondefaultdirectional_linklinkobserveobserve_compat	traitletsvalidatecast_unicode   )expected_warningsc                  @    d}t          t          ||                     S )N)nameoldnewownertype)dictzip)ordered_valueschange_namess     >lib/python3.11/site-packages/traitlets/tests/test_traitlets.pychange_dictr@   D   s    :LL.11222    c                       e Zd Zd ZdS )HasTraitsStubc                 n    |d         | _         |d         | _        |d         | _        |d         | _        d S )Nr6   r7   r8   r:   )_notify_name_notify_old_notify_new_notify_typeselfchanges     r?   notify_changezHasTraitsStub.notify_changeO   s8    "6N!%=!%="6NrA   N)__name__
__module____qualname__rL    rA   r?   rC   rC   N   s#        + + + + +rA   rC   c                       e Zd ZdZdS )CrossValidationStubFN)rM   rN   rO   _cross_validation_lockrP   rA   r?   rR   rR   V   s        "rA   rR   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestTraitTypec                 `     G d dt                     } |            }|j        t          u sJ d S )Nc                       e Zd ZeZdS )+TestTraitType.test_get_undefined.<locals>.ANrM   rN   rO   r$   arP   rA   r?   ArX   a           AAArA   r[   )r   rZ   r'   rJ   r[   rZ   s      r?   test_get_undefinedz TestTraitType.test_get_undefined`   sR    	 	 	 	 		 	 	 	 ACCsirA   c                 0    G d dt                     } |            }d|_        |                     |j        d           |                     |j        d           |                     |j        t
                     |                     |j        d           d S )Nc                       e Zd ZeZdS )!TestTraitType.test_set.<locals>.ANrY   rP   rA   r?   r[   ra   h   r\   rA   r[   
   rZ   )rC   rZ   assertEqualrE   rF   r'   rG   r]   s      r?   test_setzTestTraitType.test_setg   s    	 	 	 	 	 	 	 	 ACCb!!!---	222+++++rA   c                      G d dt                      G fddt                    } |            }d|_        |                     |j        d            |d          }|                     |j        d           d S )	Nc                       e Zd Zd ZdS ))TestTraitType.test_validate.<locals>.MyTTc                     dS NrP   )rJ   instvalues      r?   r0   z2TestTraitType.test_validate.<locals>.MyTT.validatet       rrA   NrM   rN   rO   r0   rP   rA   r?   MyTTrg   s   #            rA   ro   c                       e Zd Z ZdS )&TestTraitType.test_validate.<locals>.ANrM   rN   rO   tt)ro   s   r?   r[   rr   w   s        BBBrA   r[   rb   rj      )rt   )r$   rC   rt   rc   )rJ   r[   rZ   ro   s      @r?   test_validatezTestTraitType.test_validater   s    	 	 	 	 	9 	 	 		 	 	 	 	 	 	 	 	 	 ACCr"""AHHHr"""""rA   c                      G d dt                      G fddt                    } |            }|                     |j        d            G fddt                    }|                     t
          t           |            d           d S )	Nc                       e Zd Zd ZdS )4TestTraitType.test_default_validate.<locals>.MyIntTTc                 `    t          |t                    r|S |                     ||           d S N)
isinstanceinterror)rJ   objrl   s      r?   r0   z=TestTraitType.test_default_validate.<locals>.MyIntTT.validate   s3    eS)) ! L

3&&&&&rA   Nrn   rP   rA   r?   MyIntTTry      s#        ' ' ' ' 'rA   r   c                   &    e Zd Z  d          ZdS ).TestTraitType.test_default_validate.<locals>.Arb   Nrs   r   s   r?   r[   r      s        BBBrA   r[   rb   c                   &    e Zd Z  d          ZdS ).TestTraitType.test_default_validate.<locals>.Bbad defaultNrs   r   s   r?   Br      s        ''BBBrA   r   rt   )r$   r   rc   rt   assertRaisesr#   getattr)rJ   r[   rZ   r   r   s       @r?   test_default_validatez#TestTraitType.test_default_validate   s    	' 	' 	' 	' 	'i 	' 	' 	'	 	 	 	 	 	 		 	 	 	 ACCr"""	( 	( 	( 	( 	( 	( 	(	 	( 	( 	( 	*gqqssD99999rA   c                      G d dt                     } |            }|                     |j                                        d           d S )Nc                       e Zd ZeZdS )"TestTraitType.test_info.<locals>.ANrM   rN   rO   r$   rt   rP   rA   r?   r[   r      s        BBBrA   r[   z	any value)r   rc   rt   infor]   s      r?   	test_infozTestTraitType.test_info   s_    	 	 	 	 		 	 	 	 ACCk22222rA   c                      G d dt                     } |            }|                     t          |j        j        |d           d S )Nc                   "    e Zd Z e            ZdS )#TestTraitType.test_error.<locals>.ANr   rP   rA   r?   r[   r      s        BBBrA   r[   rb   )r   r   r#   rt   r~   r]   s      r?   
test_errorzTestTraitType.test_error   s]    	 	 	 	 		 	 	 	 ACC*adj!R88888rA   c                 *    G d dt                     } G d d|          } G d d|          } |            }|                     |j        i            |                     |j        d           |                     |j        ddi            |            }|                     |j        d	           |                     |j        dd	i            |            }|                     |j        i            |                     |j        d
           |                     |j        dd
i            |            } |            }|                     |j        i            |                     |j        d           |                     |j        ddi           d S )Nc                   *    e Zd Z ed          Zd ZdS )<TestTraitType.test_deprecated_dynamic_initializer.<locals>.Arb   c                     dS Nru   rP   rJ   s    r?   
_x_defaultzGTestTraitType.test_deprecated_dynamic_initializer.<locals>.A._x_default   rm   rA   N)rM   rN   rO   r   xr   rP   rA   r?   r[   r      s0        BA    rA   r[   c                   $    e Zd Z ed          ZdS )<TestTraitType.test_deprecated_dynamic_initializer.<locals>.B   NrM   rN   rO   r   r   rP   rA   r?   r   r              BAAArA   r   c                       e Zd Zd ZdS )<TestTraitType.test_deprecated_dynamic_initializer.<locals>.Cc                     dS N   rP   r   s    r?   r   zGTestTraitType.test_deprecated_dynamic_initializer.<locals>.C._x_default   rm   rA   N)rM   rN   rO   r   rP   rA   r?   Cr      rp   rA   r   ru   r   r   r   r   rc   _trait_valuesr   rJ   r[   r   r   rZ   bcs          r?   #test_deprecated_dynamic_initializerz1TestTraitType.test_deprecated_dynamic_initializer   s   	 	 	 	 		 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 ACC"---b!!!3)444ACCb!!!3)444ACC"---b!!!3)444 ACCACC"---b!!!3)44444rA   c                 j   t          g           5   G d dt                    } |            }d|_        d d d            n# 1 swxY w Y   |j        dk    sJ t          ddg          5 } G d dt                    } |            }d|_        d d d            n# 1 swxY w Y   |j        dk    sJ d S )Nc                       e Zd Z e            Z ed          d             Z ed          d             Z e	d          d             Z
dS )CTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarnr   c                     dS Nrb   rP   r   s    r?   r   zNTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarn._x_default   s    2rA   c                     |j         S r{   rl   rJ   proposals     r?   _x_validatezOTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarn._x_validate   s
    #>)rA   c                     d S r{   rP   rI   s     r?   
_x_changedzNTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarn._x_changed   s    DrA   N)rM   rN   rO   r   r   r*   r   r0   r   r-   r   rP   rA   r?   ShouldntWarnr      s        GII   #* * *     rA   r      z	@validatez@observec                   4    e Zd Z e            Zd Zd Zd ZdS )ATestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarnc                     dS r   rP   r   s    r?   r   zLTestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarn._x_default   s    2rA   c                     |S r{   rP   )rJ   rl   _s      r?   r   zMTestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarn._x_validate   s     LrA   c                     d S r{   rP   r   s    r?   r   zLTestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarn._x_changed   s    DrA   N)rM   rN   rO   r   r   r   r   r   rP   rA   r?   
ShouldWarnr      sL        GII  ! ! !    rA   r   )r4   r   r   )rJ   r   r   wr   s        r?   test_deprecated_method_warningsz-TestTraitType.test_deprecated_method_warnings   st   r"" 	 	    y    ,..CCE%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	( uzZ899 	Q
 
 
 
 
Y 
 
 
 *,,CCE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	" uzs#   %AAA*%BB"Bc                 *    G d dt                     } G d d|          } G d d|          } |            }|                     |j        i            |                     |j        d           |                     |j        ddi            |            }|                     |j        d	           |                     |j        dd	i            |            }|                     |j        i            |                     |j        d
           |                     |j        dd
i            |            } |            }|                     |j        i            |                     |j        d           |                     |j        ddi           d S )Nc                   L    e Zd Z ed          Z ed          d             ZdS )1TestTraitType.test_dynamic_initializer.<locals>.Arb   r   c                     dS r   rP   r   s    r?   
_default_xz<TestTraitType.test_dynamic_initializer.<locals>.A._default_x       rrA   N)rM   rN   rO   r   r   r*   r   rP   rA   r?   r[   r      sB        BAWS\\  \  rA   r[   c                   $    e Zd Z ed          ZdS )1TestTraitType.test_dynamic_initializer.<locals>.Br   Nr   rP   rA   r?   r   r      r   rA   r   c                   6    e Zd Z ed          d             ZdS )1TestTraitType.test_dynamic_initializer.<locals>.Cr   c                     dS r   rP   r   s    r?   r   z<TestTraitType.test_dynamic_initializer.<locals>.C._default_x   r   rA   N)rM   rN   rO   r*   r   rP   rA   r?   r   r      s5        WS\\  \  rA   r   ru   r   r   r   r   r   s          r?   test_dynamic_initializerz&TestTraitType.test_dynamic_initializer   s   	 	 	 	 		 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	
 ACC"---b!!!3)444ACCb!!!3)444ACC"---b!!!3)444 ACCACC"---b!!!3)44444rA   c                      G d dt                     } |d                              dd          }|                     |j        dddd           d S )	Nc                       e Zd ZdddZdS )0TestTraitType.test_tag_metadata.<locals>.MyIntTTr3      rZ   r   NrM   rN   rO   metadatarP   rA   r?   r   r             Q''HHHrA   r   rb         r   r   r3   )rZ   r   r   )r$   tagrc   r   )rJ   r   rZ   s      r?   test_tag_metadatazTestTraitType.test_tag_metadata  ss    	( 	( 	( 	( 	(i 	( 	( 	( GBKKOOa1O%%111%=%=>>>>>rA   c                      G d dt                     } |d          } |d          }d|j        d<   |                     d|j                   d S )Nc                       e Zd ZdddZdS )?TestTraitType.test_metadata_localized_instance.<locals>.MyIntTTr3   r   r   Nr   rP   rA   r?   r   r     r   rA   r   rb   r   r   )r$   r   assertNotIn)rJ   r   rZ   r   s       r?    test_metadata_localized_instancez.TestTraitType.test_metadata_localized_instance  sq    	( 	( 	( 	( 	(i 	( 	( 	( GBKKGBKK
3aj)))))rA   c                 T    G d dt                     } |            }|                     |                    dd          d            |                     |                    dd          d           i |_        |                     |                    dd          d           |                     |                    dd          d           d	|_        |                     |                    dd          d	           |                     |                    dd          d           d S )
Nc                       e Zd Z e                                d           e                                dd          z                      d          ZdS )	.TestTraitType.test_union_metadata.<locals>.Foor3   )tar   r   )r   tirZ   )r   N)rM   rN   rO   r   r   r   barrP   rA   r?   Foor   #  sQ        355999??TTVVZZ1Z%=%==BBcBJJCCCrA   r   r   r   r   rZ   r   r   r3   )r   rc   trait_metadatar   rJ   r   foos      r?   test_union_metadataz!TestTraitType.test_union_metadata"  s;   	K 	K 	K 	K 	K) 	K 	K 	K cee 	++E488$???++E488#>>>++E488!<<<++E488#>>>++E488!<<<++E488#>>>>>rA   c                 v     G d dt                     } |            }|                     |j        d           d S )Nc                   L    e Zd Z e e             e            gd          ZdS )3TestTraitType.test_union_default_value.<locals>.Foor3   default_valueNrM   rN   rO   r)   r   r   r   rP   rA   r?   r   r   3  s2        %q999CCCrA   r   r3   r   rc   r   r   s      r?   test_union_default_valuez&TestTraitType.test_union_default_value2  sW    	: 	: 	: 	: 	:) 	: 	: 	: cee!$$$$$rA   c                      G d dt                     } |            }d|_        |                     |j        d           d S )Nc                   H    e Zd Z e e             e            g          ZdS )9TestTraitType.test_union_validation_priority.<locals>.FooN)rM   rN   rO   r)   r   r(   r   rP   rA   r?   r   r   :  s.        %+,,CCCrA   r   1r3   )r   r   rc   r   s      r?   test_union_validation_priorityz,TestTraitType.test_union_validation_priority9  s^    	- 	- 	- 	- 	-) 	- 	- 	- cee!$$$$$rA   c                 r     G d dt                     }|                      |            j        i            d S )Nc                   H    e Zd Z e e             e            g          ZdS )9TestTraitType.test_union_trait_default_value.<locals>.FooNr   rP   rA   r?   r   r   C  s-        %((CCCrA   r   r   )rJ   r   s     r?   test_union_trait_default_valuez,TestTraitType.test_union_trait_default_valueB  sR    	) 	) 	) 	) 	)) 	) 	) 	) 	B'''''rA   c                     G d dt                     } |d          }t          dgdz            5  |                    dd           |                    d          }d d d            n# 1 swxY w Y   |                     |d           t          dgdz            5  |                    d	d
           |                    d	          }d d d            n# 1 swxY w Y   |                     |d
           d S )Nc                       e Zd ZdddZdS )>TestTraitType.test_deprecated_metadata_access.<locals>.MyIntTTr3   r   r   Nr   rP   rA   r?   r   r  I  r   rA   r   rb   z.use the instance .metadata dictionary directlyr   keyrl   z&use the instance .help string directlyhelpz	some help)r$   r4   set_metadataget_metadatarc   )rJ   r   rZ   vs       r?   test_deprecated_metadata_accessz-TestTraitType.test_deprecated_metadata_accessH  s   	( 	( 	( 	( 	(i 	( 	( 	( GBKK PQTUUVV 	& 	&NN5'***u%%A	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	G$$$ HIAMNN 	' 	'NN6;///v&&A	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	K(((((s#   ,A**A.1A.,CCCc                 ~    t          dg          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )N#Traits should be given as instancesc                       e Zd ZeZdS )4TestTraitType.test_trait_types_deprecated.<locals>.CN)rM   rN   rO   r   trP   rA   r?   r   r  Y  s        rA   r   r4   r   rJ   r   s     r?   test_trait_types_deprecatedz)TestTraitType.test_trait_types_deprecatedV  s     EFGG 	 	    I   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   266c                 ~    t          dg          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr	  c                   $    e Zd Z ee          ZdS )9TestTraitType.test_trait_types_list_deprecated.<locals>.CN)rM   rN   rO   r   r   r  rP   rA   r?   r   r  _          DIIrA   r   r  r  s     r?    test_trait_types_list_deprecatedz.TestTraitType.test_trait_types_list_deprecated\       EFGG 	 	    I   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 ~    t          dg          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr	  c                   $    e Zd Z ee          ZdS ):TestTraitType.test_trait_types_tuple_deprecated.<locals>.CN)rM   rN   rO   r%   r   r  rP   rA   r?   r   r  e  s        E#JJrA   r   r  r  s     r?   !test_trait_types_tuple_deprecatedz/TestTraitType.test_trait_types_tuple_deprecatedb  s     EFGG 	 	    I   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 ~    t          dg          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nr	  c                   $    e Zd Z ee          ZdS )9TestTraitType.test_trait_types_dict_deprecated.<locals>.CN)rM   rN   rO   r   r   r  rP   rA   r?   r   r  k  r  rA   r   r  r  s     r?    test_trait_types_dict_deprecatedz.TestTraitType.test_trait_types_dict_deprecatedh  r  r  N)rM   rN   rO   r^   rd   rv   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  rP   rA   r?   rU   rU   _   sC            	, 	, 	,# # #: : :&3 3 39 9 95 5 5B) ) )V!5 !5 !5F? ? ?* * *? ? ? % % %% % %( ( () ) )          rA   rU   c                       e Zd Zd Zd ZdS )TestHasDescriptorsMetac                    |                      t          t                    t                      G d dt                    } |            }|                      t          |j                  t                     |                      |j        d           d|_        |                      |j        d            G d dt                    } |            }|                      |j        d           d|_        |                      |j        d            G d dt                    } |            }|                      |j        d	           d|_        |                      |j        d           d S )
Nc                   "    e Zd Z e            ZdS )0TestHasDescriptorsMeta.test_metaclass.<locals>.ANrM   rN   rO   r   rZ   rP   rA   r?   r[   r#  s          AAArA   r[   r   rb   c                   "    e Zd Z e            ZdS )0TestHasDescriptorsMeta.test_metaclass.<locals>.BN)rM   rN   rO   r   r   rP   rA   r?   r   r'  |  r%  rA   r   c                   $    e Zd Z ed          ZdS )0TestHasDescriptorsMeta.test_metaclass.<locals>.C   N)rM   rN   rO   r   r   rP   rA   r?   r   r)    r   rA   r   r*  )rc   r:   r   r   	__class__rZ   r   r   )rJ   r[   rZ   r   r   r   r   s          r?   test_metaclassz%TestHasDescriptorsMeta.test_metaclassp  s   i-888	 	 	 	 		 	 	 	 ACCak**M:::a   b!!!	 	 	 	 		 	 	 	 ACCa   b!!!	 	 	 	 		 	 	 	 ACCb!!!b!!!!!rA   c                 H    G d dt                     } G d d|          }|                     |j        j        |           |                     |j        j        |           |                     |j        j        |           |                     |j        j        |           d S )Nc                   6    e Zd Z e            Z e            ZdS )1TestHasDescriptorsMeta.test_this_class.<locals>.AN)rM   rN   rO   r"   r  rt   rP   rA   r?   r[   r/    s$        ABBBrA   r[   c                   6    e Zd Z e            Z e            ZdS )1TestHasDescriptorsMeta.test_this_class.<locals>.BN)rM   rN   rO   r"   rt   tttrP   rA   r?   r   r1    s$        B$&&CCCrA   r   )r   rc   r  
this_classrt   r2  )rJ   r[   r   s      r?   test_this_classz&TestHasDescriptorsMeta.test_this_class  s    	 	 	 	 		 	 	 		 	 	 	 	 	 	 	 	++++++!,,,)1-----rA   N)rM   rN   rO   r,  r4  rP   rA   r?   r   r   o  s2        " " "8. . . . .rA   r   c                       e Zd Zd ZdS )TestHasDescriptorsc                 p     G d dt                      G fddt                    } |d          }d S )Nc                       e Zd Zd ZdS )=TestHasDescriptors.test_setup_instance.<locals>.FooDescriptorc                     |j         }d S r{   r   )rJ   rk   r   s      r?   instance_initzKTestHasDescriptors.test_setup_instance.<locals>.FooDescriptor.instance_init  s    hrA   N)rM   rN   rO   r<  rP   rA   r?   FooDescriptorr9    s#            rA   r=  c                   4     e Zd Z             Z fdZ xZS )ATestHasDescriptors.test_setup_instance.<locals>.HasFooDescriptorsc                 p    |                     dd           | _         t                      j        |i | d S )Nr   )getr   supersetup_instance)rJ   argskwargsr+  s      r?   rC  zPTestHasDescriptors.test_setup_instance.<locals>.HasFooDescriptors.setup_instance  s:    !::eT22&&777777rA   )rM   rN   rO   fdrC  __classcell__)r+  r=  s   @r?   HasFooDescriptorsr?    sD        B8 8 8 8 8 8 8 8 8rA   rH  r   r;  )r   r   )rJ   rH  hfdr=  s      @r?   test_setup_instancez&TestHasDescriptors.test_setup_instance  sz    	 	 	 	 	N 	 	 		8 	8 	8 	8 	8 	8 	8 	8 	8 	8  E***rA   N)rM   rN   rO   rJ  rP   rA   r?   r6  r6    s#        + + + + +rA   r6  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestHasTraitsNotifyc                 "    g | _         g | _        d S r{   _notify1_notify2r   s    r?   setUpzTestHasTraitsNotify.setUp      rA   c                 @    | j                             |||f           d S r{   rO  appendrJ   r6   r7   r8   s       r?   notify1zTestHasTraitsNotify.notify1  %    dC-.....rA   c                 @    | j                             |||f           d S r{   rP  rU  rV  s       r?   notify2zTestHasTraitsNotify.notify2  rX  rA   c                     G d dt                     } |            }|                    | j                   d|_        |                     t          | j                  d           d|_        |                     t          | j                  d           d|_        |                     d| j        v            d|_        |                     d| j        v            | 	                    t          t          |d	d
           | 	                    t          t          |dd
           g | _        |                    | j        d           d|_        d|_        |                     t          | j                  d           d S )Nc                   6    e Zd Z e            Z e            ZdS ).TestHasTraitsNotify.test_notify_all.<locals>.ANrM   rN   rO   r   rZ   r   r   rP   rA   r?   r[   r^    $        AAAArA   r[   r           rb   rZ   r   rb         $@r   ra  rc  rZ   
bad stringr   Tremover         4@)r   on_trait_changerW  rZ   rc   lenrO  r   
assertTruer   r#   setattrr]   s      r?   test_notify_allz#TestHasTraitsNotify.test_notify_all  sl   	 	 	 	 		 	 	 	 ACC	$,'''T]++Q///T]++Q///5666(DM9:::*gq#|DDD*gq#|DDD	$,t444T]++Q/////rA   c                 `    G d dt                     } |            }|                    | j        d           d|_        |                     t          | j                  d           d|_        |                     d| j        v            |                     t          t          |dd           d S )Nc                   6    e Zd Z e            Z e            ZdS ).TestHasTraitsNotify.test_notify_one.<locals>.ANr_  rP   rA   r?   r[   rp    r`  rA   r[   rZ   r   rb   rb  re  )r   ri  rW  rZ   rc   rj  rO  rk  r   r#   rl  r]   s      r?   test_notify_onez#TestHasTraitsNotify.test_notify_one  s    	 	 	 	 		 	 	 	 ACC	$,,,,T]++Q///5666*gq#|DDDDDrA   c                 P    G d dt                     } G d d|          } |            }|                     |j        d           |                     |j        d           d|_        d|_        |                     |j        d           |                     |j        d           d S )	Nc                   "    e Zd Z e            ZdS ),TestHasTraitsNotify.test_subclass.<locals>.ANr$  rP   rA   r?   r[   rt    r%  rA   r[   c                   "    e Zd Z e            ZdS ),TestHasTraitsNotify.test_subclass.<locals>.BNrM   rN   rO   r   r   rP   rA   r?   r   rv            AAArA   r   r   ra  d         Y@r   rc   rZ   r   rJ   r[   r   r   s       r?   test_subclassz!TestHasTraitsNotify.test_subclass      	 	 	 	 		 	 	 		 	 	 	 	 	 	 	 ACCa   c"""c"""e$$$$$rA   c                     G d dt                     } G d d|          } |            }|                    | j        d           |                    | j        d           d|_        d|_        |                     t          | j                  d           |                     t          | j	                  d           d	|_        d
|_        | 
                    d| j        v            | 
                    d| j	        v            d S )Nc                   "    e Zd Z e            ZdS )3TestHasTraitsNotify.test_notify_subclass.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   c                   "    e Zd Z e            ZdS )3TestHasTraitsNotify.test_notify_subclass.<locals>.BNrw  rP   rA   r?   r   r    rx  rA   r   rZ   r   r   ra  rb   rc  rb  rd  )r   ri  rW  r[  rZ   r   rc   rj  rO  rP  rk  r|  s       r?   test_notify_subclassz(TestHasTraitsNotify.test_notify_subclass  s(   	 	 	 	 		 	 	 		 	 	 	 	 	 	 	 ACC	$,,,,	$,,,,T]++Q///T]++Q///5666(DM9:::::rA   c                     G d dt                     } |            }d|_        |                     t          |j                  d           d|_        |                     d|j        v             G d d|          } |            }d|_        d|_        |                     d|j        v            |                     d	|j        v            d S )
Nc                   ,    e Zd Z e            Zg Zd ZdS )1TestHasTraitsNotify.test_static_notify.<locals>.Ac                 @    | j                             |||f           d S r{   rT  rV  s       r?   
_a_changedz<TestHasTraitsNotify.test_static_notify.<locals>.A._a_changed  %    $$dC%566666rA   N)rM   rN   rO   r   rZ   rO  r  rP   rA   r?   r[   r    s3        AH7 7 7 7 7rA   r[   r   rb   rb  c                   ,    e Zd Z e            Zg Zd ZdS )1TestHasTraitsNotify.test_static_notify.<locals>.Bc                 @    | j                             |||f           d S r{   rZ  rV  s       r?   
_b_changedz<TestHasTraitsNotify.test_static_notify.<locals>.B._b_changed  r  rA   N)rM   rN   rO   r   r   rP  r  rP   rA   r?   r   r    s3        AH7 7 7 7 7rA   r   rc  rd  )r   rZ   rc   rj  rO  rk  r   rP  )rJ   r[   rZ   r   r   s        r?   test_static_notifyz&TestHasTraitsNotify.test_static_notify  s    	7 	7 	7 	7 	7	 	7 	7 	7 ACCQZ!,,,
2333	7 	7 	7 	7 	7 	7 	7 	7 ACC
2333(AJ677777rA   c                 l     fd} fd} fd} fd} fd} G d dt                     } |            }|                    |d           d	|_                              j        d
           |                    |dd           |                    |d           d|_                              j        d           |                    |dd           |                    |d           d|_                              j        d           |                    |dd           |                    |d           d|_                              j        d           |                    |dd           |                    |d           d|_                              j        ddd|f                                t          |j        d         d                   d           |                    |dd                                t          |j        d         d                   d           d S )Nc                      d _         d S NrP   cbr   s   r?   	callback0z7TestHasTraitsNotify.test_notify_args.<locals>.callback0      DGGGrA   c                     | f_         d S r{   r  )r6   rJ   s    r?   	callback1z7TestHasTraitsNotify.test_notify_args.<locals>.callback1  s    gDGGGrA   c                     | |f_         d S r{   r  )r6   r8   rJ   s     r?   	callback2z7TestHasTraitsNotify.test_notify_args.<locals>.callback2   s    SkDGGGrA   c                     | ||f_         d S r{   r  )r6   r7   r8   rJ   s      r?   	callback3z7TestHasTraitsNotify.test_notify_args.<locals>.callback3#  s    S#&DGGGrA   c                     | |||f_         d S r{   r  )r6   r7   r8   r   rJ   s       r?   	callback4z7TestHasTraitsNotify.test_notify_args.<locals>.callback4&  s    S#s+DGGGrA   c                   "    e Zd Z e            ZdS )/TestHasTraitsNotify.test_notify_args.<locals>.ANr$  rP   rA   r?   r[   r  )  r%  rA   r[   rZ   rb   rP   Trf  ry  rZ     )rZ   r  '  )rZ   r  r  i rK   r3   r   )r   ri  rZ   rc   r  rj  _trait_notifiers)rJ   r  r  r  r  r  r[   rZ   s   `       r?   test_notify_argsz$TestHasTraitsNotify.test_notify_args  s   	 	 	 	 		 	 	 	 		" 	" 	" 	" 	"	' 	' 	' 	' 	'	, 	, 	, 	, 	,	 	 	 	 		 	 	 	 ACC	)S)))"%%%	)S666	)S)))&)))	)S666	)S)))+...	)S666	)S)))"4555	)S666	)S)))3vq"9:::Q/4X>??CCC	)S666Q/4X>??CCCCCrA   c                     G d dt                     } G d d|          } |            }|xj        dz  c_        |                     |j        |j                   |                     |j        |j                   |xj        dz  c_        |                     |j        |j                   |                     |j        |j                   d S )Nc                   D     e Zd ZdgZ ed          ZdZ fdZd Z xZ	S )4TestHasTraitsNotify.test_notify_only_once.<locals>.ArZ   r   c                 r     t                      j        di | |                     | j        dg           d S NrZ   rP   )rB  __init__ri  	listener1rJ   rE  r+  s     r?   r  z=TestHasTraitsNotify.test_notify_only_once.<locals>.A.__init__P  s@      **6***$$T^cU;;;;;rA   c                 &    | xj         dz  c_         d S Nr3   r   rV  s       r?   r  z>TestHasTraitsNotify.test_notify_only_once.<locals>.A.listener1T      !rA   
rM   rN   rO   	listen_tor   rZ   r   r  r  rG  r+  s   @r?   r[   r  J  s`        IAAA< < < < <      rA   r[   c                   2     e Zd ZdZdZ fdZd Zd Z xZS )4TestHasTraitsNotify.test_notify_only_once.<locals>.Br   c                 n     t                      j        di | |                     | j                   d S r  )rB  r  ri  	listener2r  s     r?   r  z=TestHasTraitsNotify.test_notify_only_once.<locals>.B.__init__\  s<      **6***$$T^44444rA   c                 &    | xj         dz  c_         d S r  r   rV  s       r?   r  z>TestHasTraitsNotify.test_notify_only_once.<locals>.B.listener2`  r  rA   c                 &    | xj         dz  c_         d S r  drV  s       r?   r  z?TestHasTraitsNotify.test_notify_only_once.<locals>.B._a_changedc  r  rA   )	rM   rN   rO   r   r  r  r  r  rG  r  s   @r?   r   r  W  s`        AA5 5 5 5 5        rA   r   r3   r   rZ   rc   r   r   r  r|  s       r?   test_notify_only_oncez)TestHasTraitsNotify.test_notify_only_onceI  s    	 	 	 	 		 	 	 		 	 	 	 	 	 	 	 ACC	qac"""ac"""	qac"""ac"""""rA   NrM   rN   rO   rQ  rW  r[  rm  rq  r}  r  r  r  r  rP   rA   r?   rL  rL    s          / / // / /0 0 0.E E E% % %; ; ;&8 8 88.D .D .D`## ## ## ## ##rA   rL  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestObserveDecoratorc                 "    g | _         g | _        d S r{   rN  r   s    r?   rQ  zTestObserveDecorator.setUpp  rR  rA   c                 :    | j                             |           d S r{   rT  rI   s     r?   rW  zTestObserveDecorator.notify1t      V$$$$$rA   c                 :    | j                             |           d S r{   rZ  rI   s     r?   r[  zTestObserveDecorator.notify2w  r  rA   c                 B    G d dt                     } |            }|                    | j                   d|_        |                     t          | j                  d           d|_        |                     t          | j                  d           d|_        t          ddd|d          }| 	                    || j        v            d|_        t          d	dd|d          }| 	                    || j        v            | 
                    t          t          |dd
           | 
                    t          t          |d	d
           g | _        |                    | j                   d|_        d|_        |                     t          | j                  d           d S )Nc                   6    e Zd Z e            Z e            ZdS )/TestObserveDecorator.test_notify_all.<locals>.ANr_  rP   rA   r?   r[   r  {  r`  rA   r[   r   ra  rb   rZ   rK   rc  r   re  r   rh  )r   r-   rW  rZ   rc   rj  rO  r   r@   rk  r   r#   rl  	unobserverJ   r[   rZ   rK   s       r?   rm  z$TestObserveDecorator.test_notify_allz  s   	 	 	 	 		 	 	 	 ACC			$,T]++Q///T]++Q///S!RH55$-/000S#tQ99$-/000*gq#|DDD*gq#|DDD	DL!!!T]++Q/////rA   c                     G d dt                     } |            }|                    | j        d           d|_        |                     t          | j                  d           d|_        t          ddd|d          }|                     || j        v            | 	                    t          t          |dd           d S )Nc                   6    e Zd Z e            Z e            ZdS )/TestObserveDecorator.test_notify_one.<locals>.ANr_  rP   rA   r?   r[   r    r`  rA   r[   rZ   r   rb   rK   re  )r   r-   rW  rZ   rc   rj  rO  r@   rk  r   r#   rl  r  s       r?   rq  z$TestObserveDecorator.test_notify_one  s    	 	 	 	 		 	 	 	 ACC			$,$$$T]++Q///S!RH55$-/000*gq#|DDDDDrA   c                 P    G d dt                     } G d d|          } |            }|                     |j        d           |                     |j        d           d|_        d|_        |                     |j        d           |                     |j        d           d S )	Nc                   "    e Zd Z e            ZdS )-TestObserveDecorator.test_subclass.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   c                   "    e Zd Z e            ZdS )-TestObserveDecorator.test_subclass.<locals>.BNrw  rP   rA   r?   r   r    rx  rA   r   r   ra  ry  rz  r{  r|  s       r?   r}  z"TestObserveDecorator.test_subclass  r~  rA   c                 \    G d dt                     } G d d|          } |            }|                    | j        d           |                    | j        d           d|_        d|_        |                     t          | j                  d           |                     t          | j	                  d           d	|_        d
|_        t          ddd	|d          }|                     || j        v            t          ddd
|d          }|                     || j	        v            d S )Nc                   "    e Zd Z e            ZdS )4TestObserveDecorator.test_notify_subclass.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   c                   "    e Zd Z e            ZdS )4TestObserveDecorator.test_notify_subclass.<locals>.BNrw  rP   rA   r?   r   r    rx  rA   r   rZ   r   r   ra  rb   rc  rK   )r   r-   rW  r[  rZ   r   rc   rj  rO  rP  r@   rk  )rJ   r[   r   r   rK   s        r?   r  z)TestObserveDecorator.test_notify_subclass  sM   	 	 	 	 		 	 	 		 	 	 	 	 	 	 	 ACC			$,$$$			$,$$$T]++Q///T]++Q///S!RH55$-/000S#tQ99$-/00000rA   c                     G d dt                     } |            }d|_        |                     t          |j                  d           d|_        t          ddd|d          }|                     ||j        v            d|_        |                     t          |j                  d           t          d	dd|d          }|                     ||j        v             G d
 d|          } |            }d|_        d|_        t          ddd|d          }|                     ||j        v            t          d	dd|d          }|                     ||j	        v            d S )Nc                       e Zd Z e            Z e            Zg Zg Z ed          d             Z	 ee
          d             ZdS )2TestObserveDecorator.test_static_notify.<locals>.ArZ   c                 :    | j                             |           d S r{   rT  rI   s     r?   r  z=TestObserveDecorator.test_static_notify.<locals>.A._a_changed      $$V,,,,,rA   c                 :    | j                             |           d S r{   )_notify_anyrU  rI   s     r?   _any_changedz?TestObserveDecorator.test_static_notify.<locals>.A._any_changed  s     ''/////rA   N)rM   rN   rO   r   rZ   r   rO  r  r-   r  r   r  rP   rA   r?   r[   r    sx        AAHKWS\\- - \- WS\\0 0 \0 0 0rA   r[   r   rb   rZ   rK   r3   r   r   c                   N    e Zd Z e            Zg Z ed          d             ZdS )2TestObserveDecorator.test_static_notify.<locals>.Br   c                 :    | j                             |           d S r{   rZ  rI   s     r?   r  z=TestObserveDecorator.test_static_notify.<locals>.B._b_changed  r  rA   N)rM   rN   rO   r   r   rP  r-   r  rP   rA   r?   r   r    sE        AHWS\\- - \- - -rA   r   rc  ra  )
r   rZ   rc   rj  rO  r@   rk  r   r  rP  )rJ   r[   rZ   rK   r   r   s         r?   r  z'TestObserveDecorator.test_static_notify  s   	0 	0 	0 	0 	0	 	0 	0 	0 ACCQZ!,,,S!RH55!*,---Q]++Q///S!Q844!-/000	- 	- 	- 	- 	- 	- 	- 	- ACCS!RH55!*,---S#tQ99!*,-----rA   c                      fd} fd} G d dt                     } |            }|                    |d           d|_                              j        d           |                    |d           |                    |d           d|_        t          ddd|d	          }                      j        |                                t          |j	        d         d	                   d
           |                    |d                                t          |j	        d         d	                   d           d S )Nc                      d _         d S r  r  r   s   r?   r  z8TestObserveDecorator.test_notify_args.<locals>.callback0  r  rA   c                     | _         d S r{   r  )rK   rJ   s    r?   r  z8TestObserveDecorator.test_notify_args.<locals>.callback1  s    DGGGrA   c                   "    e Zd Z e            ZdS )0TestObserveDecorator.test_notify_args.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   rZ   rb   rP   ry  rK   r3   r   )
r   ri  rZ   rc   r  r  r-   r@   rj  r  )rJ   r  r  r[   rZ   rK   s   `     r?   r  z%TestObserveDecorator.test_notify_args  sm   	 	 	 	 		 	 	 	 		 	 	 	 		 	 	 	 ACC	)S)))"%%%	Is###			)S!!!S"c1h77&)))Q/4X>??CCC	Is###Q/4X>??CCCCCrA   c                     G d dt                     } G d d|          } |            }|xj        dz  c_        |                     |j        |j                   |                     |j        |j                   |xj        dz  c_        |                     |j        |j                   |                     |j        |j                   d S )Nc                   D     e Zd ZdgZ ed          ZdZ fdZd Z xZ	S )5TestObserveDecorator.test_notify_only_once.<locals>.ArZ   r   c                 r     t                      j        di | |                     | j        dg           d S r  )rB  r  r-   r  r  s     r?   r  z>TestObserveDecorator.test_notify_only_once.<locals>.A.__init__  s>      **6***T^cU33333rA   c                 &    | xj         dz  c_         d S r  r  rI   s     r?   r  z?TestObserveDecorator.test_notify_only_once.<locals>.A.listener1  r  rA   r  r  s   @r?   r[   r  	  s`        IAAA4 4 4 4 4      rA   r[   c                   T     e Zd ZdZdZ fdZd Z ed          d             Z xZ	S )5TestObserveDecorator.test_notify_only_once.<locals>.Br   c                 n     t                      j        di | |                     | j                   d S r  )rB  r  r-   r  r  s     r?   r  z>TestObserveDecorator.test_notify_only_once.<locals>.B.__init__  s:      **6***T^,,,,,rA   c                 &    | xj         dz  c_         d S r  r  rI   s     r?   r  z?TestObserveDecorator.test_notify_only_once.<locals>.B.listener2  r  rA   rZ   c                 &    | xj         dz  c_         d S r  r  rI   s     r?   r  z@TestObserveDecorator.test_notify_only_once.<locals>.B._a_changed"  s    !rA   )
rM   rN   rO   r   r  r  r  r-   r  rG  r  s   @r?   r   r    st        AA- - - - -   WS\\  \    rA   r   r3   r  r|  s       r?   r  z*TestObserveDecorator.test_notify_only_once  s    	 	 	 	 		 	 	 		 	 	 	 	 	 	 	  ACC	qac"""ac"""	qac"""ac"""""rA   Nr  rP   rA   r?   r  r  o  s          % % %% % %0 0 02E E E% % %1 1 1*(. (. (.TD D D2$# $# $# $# $#rA   r  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestHasTraitsc                     G d dt                     } |            }|                     t          |                                          ddg           |                     t          |                                          ddg           |                     |                    d                     |                     |                    d                     d S )Nc                   6    e Zd Z e            Z e            ZdS ))TestHasTraits.test_trait_names.<locals>.ANrM   rN   rO   r   ir   frP   rA   r?   r[   r  1  r`  rA   r[   r  r  g)r   rc   sortedtrait_namesclass_trait_namesrk  	has_traitassertFalser]   s      r?   test_trait_nameszTestHasTraits.test_trait_names0  s    	 	 	 	 		 	 	 	 ACC003*=== 3 3 5 566c
CCCC(()))S))*****rA   c                     G d dt                     } |            }|                     |                    d                     |                     |                    d                     d|_        |j         |                     |                    d                     |                     |                    d                     d S )Nc                   6    e Zd Z e            Z e            ZdS )-TestHasTraits.test_trait_has_value.<locals>.ANr  rP   rA   r?   r[   r  <  r`  rA   r[   r  r  r3   r  )r   r   trait_has_valuer  r  rk  r]   s      r?   test_trait_has_valuez"TestHasTraits.test_trait_has_value;  s    	 	 	 	 		 	 	 	 ACC**3//000**3//000	))#..///))#../////rA   c                     t          dg          5   G d dt                    }d d d            n# 1 swxY w Y    |            }|                     |                    dd          d           d S )N1metadata should be set using the \.tag\(\) methodc                   &    e Zd Z ed          ZdS )7TestHasTraits.test_trait_metadata_deprecated.<locals>.AMY_VALUE
config_keyNrM   rN   rO   r   r  rP   rA   r?   r[   r
  K  s         C:...rA   r[   r  r  r  )r4   r   rc   r   r]   s      r?   test_trait_metadata_deprecatedz,TestHasTraits.test_trait_metadata_deprecatedH  s     TUVV 	/ 	// / / / /I / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
 ACC))#|<<jIIIIIs   155c                      G d dt                     } |            }|                     |                    dd          d           d S )Nc                   J    e Zd Z e                                d          ZdS ),TestHasTraits.test_trait_metadata.<locals>.Ar  r  N)rM   rN   rO   r   r   r  rP   rA   r?   r[   r  R  s'        		Z	00AAArA   r[   r  r  r  r   rc   r   r]   s      r?   test_trait_metadataz!TestHasTraits.test_trait_metadataQ  se    	1 	1 	1 	1 	1	 	1 	1 	1 ACC))#|<<jIIIIIrA   c                      G d dt                     } |            }|                     |                    dd          d            |                     |                    ddd          d           d S )Nc                   "    e Zd Z e            ZdS )4TestHasTraits.test_trait_metadata_default.<locals>.ANr  rP   rA   r?   r[   r  Y  r%  rA   r[   r  r  r*   r  r]   s      r?   test_trait_metadata_defaultz)TestHasTraits.test_trait_metadata_defaultX  s    	 	 	 	 		 	 	 	 ACC))#|<<dCCC))#|YGGSSSSSrA   c                 D    G d dt                     } |            }|                     |                                t          |j        |j                             |                     |                                t          |j        |j                             d S )Nc                   6    e Zd Z e            Z e            ZdS )$TestHasTraits.test_traits.<locals>.ANr  rP   rA   r?   r[   r  a  r`  rA   r[   )r  r  )r   rc   traitsr;   r  r  class_traitsr]   s      r?   test_traitszTestHasTraits.test_traits`  s    	 	 	 	 		 	 	 	 ACCTAC13%7%7%7888))4!#+=+=+=>>>>>rA   c                     G d dt                     } |            }|                     |                                t          |j        |j        |j                             |                    dd          }|                     |t          |j                             |                    d 	          }|                     |t          |j        |j        |j                             d S )
Nc                       e Zd Z e                                dd          Z e                                dd          Z ed          ZdS )-TestHasTraits.test_traits_metadata.<locals>.AVALUE1VALUE2r  other_thingVALUE3r   N)	rM   rN   rO   r   r   r  r   r  jrP   rA   r?   r[   r!  j  sQ        		X8	DDAxXFFAAAAArA   r[   r  r  r'  r"  r#  r$  r  c                     dS NTrP   r  s    r?   <lambda>z4TestHasTraits.test_traits_metadata.<locals>.<lambda>v      t rA   r  )r   rc   r  r;   r  r  r'  rJ   r[   rZ   r  s       r?   test_traits_metadataz"TestHasTraits.test_traits_metadatai  s    	 	 	 	 		 	 	 	
 ACCTAC13!#%>%>%>???X8DD--- ^^44qsac!:!:!:;;;;;rA   c                 <   t          dgdz            5   G d dt                    }d d d            n# 1 swxY w Y    |            }|                     |                                t	          |j        |j        |j                             |                    dd          }|                     |t	          |j        	                     |                    d
           }|                     |t	          |j        |j        |j                             d S )Nr  r   c                   X    e Zd Z edd          Z edd          Z ed          ZdS )8TestHasTraits.test_traits_metadata_deprecated.<locals>.Ar"  r#  r$  r&  r   N)rM   rN   rO   r   r  r   r  r'  rP   rA   r?   r[   r3  |  sC        C8BBBEX8DDDCFFrA   r[   r(  r"  r#  r$  r)  c                     dS r+  rP   r,  s    r?   r-  z?TestHasTraits.test_traits_metadata_deprecated.<locals>.<lambda>  r.  rA   r  )r4   r   rc   r  r;   r  r  r'  r/  s       r?   test_traits_metadata_deprecatedz-TestHasTraits.test_traits_metadata_deprecatedy  sV    TUXYYZZ 	 	    I   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ACCTAC13!#%>%>%>???X8DD--- ^^44qsac!:!:!:;;;;;s   488c                      G d dt                     } |dd          }|                     |j        d           |                     |j        d           d S )Nc                   6    e Zd Z e            Z e            ZdS )"TestHasTraits.test_init.<locals>.AN)rM   rN   rO   r   r  r   r   rP   rA   r?   r[   r8    r`  rA   r[   r3   rc  )r  r   )r   rc   r  r   r]   s      r?   	test_initzTestHasTraits.test_init  su    	 	 	 	 		 	 	 	 ATNNNa   d#####rA   c                      G d dt                     } |d          }|                     |j        d           |                     t          |           d S )Nc                   4     e Zd Z ed          Z fdZ xZS )-TestHasTraits.test_positional_args.<locals>.Ar   c                 V    t                                                       || _        d S r{   )rB  r  r  )rJ   r  r+  s     r?   r  z6TestHasTraits.test_positional_args.<locals>.A.__init__  s$      """rA   )rM   rN   rO   r   r  r  rG  r  s   @r?   r[   r<    sE        AA        rA   r[   r   )r   rc   r  r   	TypeErrorr]   s      r?   test_positional_argsz"TestHasTraits.test_positional_args  so    	 	 	 	 		 	 	 	 AaDDa   )Q'''''rA   N)rM   rN   rO   r  r  r  r  r  r  r0  r5  r9  r?  rP   rA   r?   r  r  /  s        	+ 	+ 	+0 0 0J J JJ J JT T T? ? ?< < < < < <$$ $ $( ( ( ( (rA   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestTypec                 $    G d d          } G d dt                     } |            }|                     |j        t                     ||_        |                     |j        |           |                     t
          t          |dd           d S )Nc                       e Zd ZdS ) TestType.test_default.<locals>.BNrM   rN   rO   rP   rA   r?   r   rD            DrA   r   c                   &    e Zd Z ed          ZdS ) TestType.test_default.<locals>.AT
allow_noneNrM   rN   rO   r&   klassrP   rA   r?   r[   rH    s         DD)))EEErA   r[   rL  rb   )r   rc   rL  objectr   r#   rl  )rJ   r   r[   rZ   s       r?   test_defaultzTestType.test_default  s    	 	 	 	 	 	 	 		* 	* 	* 	* 	*	 	* 	* 	* ACC&)))!$$$*gq'2>>>>>rA   c                     G d d           G d d           G fddt                     }|                     |j        j        t                     |                     |j        j        t                     |                     |j        j        d            |                     |j        j        t                     |                     |j        j                   |                     |j        j                   |                     |j        j                   |                     |j        j                   |                     |j	        j        d            |                     |j	        j                   |                     |j
        j                   |                     |j
        j                    |            }|                     |j        t                     |                     |j        d            |                     |j                   |                     |j                   |                     |j	        d            |                     |j
                   d S )Nc                       e Zd ZdS )(TestType.test_default_options.<locals>.BNrE  rP   rA   r?   r   rQ    rF  rA   r   c                       e Zd ZdS )(TestType.test_default_options.<locals>.CNrE  rP   rA   r?   r   rS    rF  rA   r   c                       e Zd Z e            Z edd          Z e           Z e           Z ed d          Z e           Z	dS )(TestType.test_default_options.<locals>.ANTrI  rL  )r   rL  rJ  )r   rL  )
rM   rN   rO   r&   k1k2k3k4k5k6)r   r   s   r?   r[   rU    sv         Bdt,,,BaBABDdCCCBAQ///BBBrA   r[   )r   assertIsrW  r   rM  rL  rX  rY  rZ  r[  r\  )rJ   r[   rZ   r   r   s      @@r?   test_default_optionszTestType.test_default_options  sL   	 	 	 	 	 	 	 		 	 	 	 	 	 	 		0 	0 	0 	0 	0 	0 	0 	0	 	0 	0 	0 	ad(&111adj&)))ad($///adj&)))ad(!,,,adj!$$$ad(!,,,adj!$$$ad($///adj!$$$ad(!,,,adj!$$$ACCadF###adD!!!adAadAadD!!!adArA   c                 T    G d d           G d d          } G fddt                     } |            }|                     |j                   |                     t          t
          |d|           |                     t          t
          |dt                     |_        d S )Nc                       e Zd ZdS )TestType.test_value.<locals>.BNrE  rP   rA   r?   r   ra    rF  rA   r   c                       e Zd ZdS )TestType.test_value.<locals>.CNrE  rP   rA   r?   r   rc    rF  rA   r   c                   &    e Zd Z e           ZdS )TestType.test_value.<locals>.ANrK  r   s   r?   r[   re            DGGEEErA   r[   rL  )r   rc   rL  r   r#   rl  rM  rJ   r   r[   rZ   r   s       @r?   
test_valuezTestType.test_value  s    	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 		 	 	 	 ACC!$$$*gq'1===*gq'6BBBrA   c                 <    G d d           G d d          } G fddt                     } |            }|                     |j                   |                     t          t
          |dd            ||_        |                     |j        |           d S )Nc                       e Zd ZdS )#TestType.test_allow_none.<locals>.BNrE  rP   rA   r?   r   rl    rF  rA   r   c                       e Zd ZdS )#TestType.test_allow_none.<locals>.CNrE  rP   rA   r?   r   rn    rF  rA   r   c                   &    e Zd Z e           ZdS )#TestType.test_allow_none.<locals>.ANrK  rf  s   r?   r[   rp    rg  rA   r[   rL  )r   rc   rL  r   r#   rl  rh  s       @r?   test_allow_nonezTestType.test_allow_none  s    	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 		 	 	 	 ACC!$$$*gq'4@@@!$$$$$rA   c                      G d dt                     }|                     t          |            G d dt                     }|                     t          |           d S )Nc                   $    e Zd Z ed          ZdS )'TestType.test_validate_klass.<locals>.Azno strings allowedNrK  rP   rA   r?   r[   rt    s        D-..EEErA   r[   c                   $    e Zd Z ed          ZdS )rt  zrub.adub.DuckNrK  rP   rA   r?   r[   z'TestType.test_validate_klass.<locals>.A  s        D))EEErA   )r   r   ImportError)rJ   r[   s     r?   test_validate_klasszTestType.test_validate_klass  s    	/ 	/ 	/ 	/ 	/	 	/ 	/ 	/ 	+q)))	* 	* 	* 	* 	*	 	* 	* 	* 	+q)))))rA   c                      G d d           G fddt                     }|                     t          |            G fddt                     }|                     t          t           |            d           d S )Nc                       e Zd ZdS ))TestType.test_validate_default.<locals>.BNrE  rP   rA   r?   r   rz    rF  rA   r   c                   (    e Zd Z ed           ZdS ))TestType.test_validate_default.<locals>.Ar   NrK  rf  s   r?   r[   r|    s         D**EEErA   r[   c                   (    e Zd Z ed           ZdS ))TestType.test_validate_default.<locals>.CNrK  rf  s   r?   r   r~    s        DqMMEEErA   r   rL  )r   r   rv  r#   r   )rJ   r[   r   r   s      @r?   test_validate_defaultzTestType.test_validate_default  s    	 	 	 	 	 	 	 		+ 	+ 	+ 	+ 	+ 	+ 	+	 	+ 	+ 	+ 	+q)))	" 	" 	" 	" 	" 	" 	"	 	" 	" 	" 	*gqqssG<<<<<rA   c                      G d dt                     }ddlm}  |            }||_        |                     |j        |           |                     t          t          |dd           d S )Nc                   $    e Zd Z ed          ZdS )"TestType.test_str_klass.<locals>.Atraitlets.config.ConfigNrK  rP   rA   r?   r[   r    s        D233EEErA   r[   r   ConfigrL  rb   )r   traitlets.configr  rL  rc   r   r#   rl  )rJ   r[   r  rZ   s       r?   test_str_klasszTestType.test_str_klass  s    	4 	4 	4 	4 	4	 	4 	4 	4 	,+++++ACC&)))*gq'2>>>>>rA   c                      G d dt                     } |d          }ddlm} |                     |j        |           d S )Nc                   "    e Zd Z e            ZdS )&TestType.test_set_str_klass.<locals>.ANrK  rP   rA   r?   r[   r  "  s        DFFEEErA   r[   r  rV  r   r  )r   r  r  rc   rL  )rJ   r[   rZ   r  s       r?   test_set_str_klasszTestType.test_set_str_klass!  sq    	 	 	 	 		 	 	 	 A-...++++++&)))))rA   N)rM   rN   rO   rN  r^  ri  rq  rw  r  r  r  rP   rA   r?   rA  rA    s        ? ? ?$ $ $L   % % % 	* 	* 	*= = =
? 
? 
?* * * * *rA   rA  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestInstancec                     G d d           G d d          } G d d          } G fddt                     } |            }|                     |j        d u                         |_        |                     t          |j                              |            |_        |                     t          |j                             |                     t
          t          |d	           |                     t
          t          |d	|           |                     t
          t          |d	 |                       d S )
Nc                       e Zd ZdS )$TestInstance.test_basic.<locals>.FooNrE  rP   rA   r?   r   r  -  rF  rA   r   c                       e Zd ZdS )$TestInstance.test_basic.<locals>.BarNrE  rP   rA   r?   Barr  0  rF  rA   r  c                       e Zd ZdS )$TestInstance.test_basic.<locals>.BahNrE  rP   rA   r?   Bahr  3  rF  rA   r  c                   *    e Zd Z e d          ZdS )"TestInstance.test_basic.<locals>.ATrI  NrM   rN   rO   r   rk   r   s   r?   r[   r  6  #        8CD111DDDrA   r[   rk   )r   rk  rk   r|   r   r#   rl  )rJ   r  r  r[   rZ   r   s        @r?   
test_basiczTestInstance.test_basic,  s   	 	 	 	 	 	 	 		 	 	 	 	# 	 	 		 	 	 	 	 	 	 		2 	2 	2 	2 	2 	2 	2	 	2 	2 	2 ACC$'''
163//000
163//000*gq&#>>>*gq&#>>>*gq&##%%@@@@@rA   c                     G d d           G d d          } G d d          } G fddt                      G fd	d
t                    } |            }|                     |j        d u                         |_        |                     t	          |j                              |            |_        |                     t	          |j                             |                     t          t          |d           |                     t          t          |d|           |                     t          t          |d |                       d S )Nc                       e Zd ZdS ),TestInstance.test_default_klass.<locals>.FooNrE  rP   rA   r?   r   r  D  rF  rA   r   c                       e Zd ZdS ),TestInstance.test_default_klass.<locals>.BarNrE  rP   rA   r?   r  r  G  rF  rA   r  c                       e Zd ZdS ),TestInstance.test_default_klass.<locals>.BahNrE  rP   rA   r?   r  r  J  rF  rA   r  c                       e Zd Z ZdS )4TestInstance.test_default_klass.<locals>.FooInstanceN)rM   rN   rO   rL  r  s   r?   FooInstancer  M  s        EEErA   r  c                   (    e Zd Z  d          ZdS )*TestInstance.test_default_klass.<locals>.ATrI  N)rM   rN   rO   rk   )r  s   r?   r[   r  P  s!        ;$///DDDrA   r[   rk   )r   r   rk  rk   r|   r   r#   rl  )rJ   r  r  r[   rZ   r   r  s        @@r?   test_default_klasszTestInstance.test_default_klassC  s   	 	 	 	 	 	 	 		 	 	 	 	# 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	( 	 	 		0 	0 	0 	0 	0 	0 	0	 	0 	0 	0 ACC$'''
163//000
163//000*gq&#>>>*gq&#>>>*gq&##%%@@@@@rA   c                      G d d           G fddt                     } |            } |            }|                     |j        |j        u           d S )Nc                       e Zd ZdS )3TestInstance.test_unique_default_value.<locals>.FooNrE  rP   rA   r?   r   r  ^  rF  rA   r   c                   *    e Zd Z e di           ZdS )1TestInstance.test_unique_default_value.<locals>.ArP   Nr  r  s   r?   r[   r  a  s"        8CR((DDDrA   r[   )r   rk  rk   )rJ   r[   rZ   r   r   s       @r?   test_unique_default_valuez&TestInstance.test_unique_default_value]  s    	 	 	 	 	 	 	 		) 	) 	) 	) 	) 	) 	)	 	) 	) 	) ACCACCaf,-----rA   c                 
  	  G d d          	 G d d          } G d d           G 	fddt                     } |            }|                     |j        j        d	            G fd
dt                     } |            }|                     |j        j        d	           |                     |j        j        d            G 	fddt                     } |            }|                     |j        d u            d S )Nc                       e Zd Zd ZdS )&TestInstance.test_args_kw.<locals>.Fooc                     || _         d S r{   r  )rJ   r   s     r?   r  z/TestInstance.test_args_kw.<locals>.Foo.__init__j  s    rA   NrM   rN   rO   r  rP   rA   r?   r   r  i  s#            rA   r   c                       e Zd ZdS )&TestInstance.test_args_kw.<locals>.BarNrE  rP   rA   r?   r  r  m  rF  rA   r  c                       e Zd Zd ZdS )&TestInstance.test_args_kw.<locals>.Bahc                 "    || _         || _        d S r{   )r   r  )rJ   r   r  s      r?   r  z/TestInstance.test_args_kw.<locals>.Bah.__init__q  s    rA   Nr  rP   rA   r?   r  r  p  s#            rA   r  c                   (    e Zd Z e d          ZdS )$TestInstance.test_args_kw.<locals>.Arb   Nr  r  s   r?   r[   r  u  s         8C''DDDrA   r[   rb   c                   @    e Zd Z e d ed                    ZdS )$TestInstance.test_args_kw.<locals>.Br  r   r  )rD  kwN)rM   rN   rO   r   r;   rk   )r  s   r?   r   r  {  s/        8Cer


;;;DDDrA   r   r   c                   *    e Zd Z e d          ZdS )$TestInstance.test_args_kw.<locals>.CTrI  Nr  r  s   r?   r   r    r  rA   r   )r   rc   rk   r   r  rk  )
rJ   r  r[   rZ   r   r   r   r   r  r   s
           @@r?   test_args_kwzTestInstance.test_args_kwh  s   	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	
	( 	( 	( 	( 	( 	( 	(	 	( 	( 	( ACC2&&&	< 	< 	< 	< 	< 	< 	<	 	< 	< 	< ACC2&&&2&&&	2 	2 	2 	2 	2 	2 	2	 	2 	2 	2 ACC$'''''rA   c                      G d d           G fddt                     } |            }|                     t                    5  |j         d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )*TestInstance.test_bad_default.<locals>.FooNrE  rP   rA   r?   r   r    rF  rA   r   c                   &    e Zd Z e           ZdS )(TestInstance.test_bad_default.<locals>.ANr  r  s   r?   r[   r    s        8C==DDDrA   r[   )r   r   r#   rk   )rJ   r[   rZ   r   s      @r?   test_bad_defaultzTestInstance.test_bad_default  s    	 	 	 	 	 	 	 		! 	! 	! 	! 	! 	! 	!	 	! 	! 	! ACCz** 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA!$A!c                 b     G d d          fd}|                      t          |           d S )Nc                       e Zd ZdS )'TestInstance.test_instance.<locals>.FooNrE  rP   rA   r?   r   r    rF  rA   r   c                  2     G fddt                     } d S )Nc                   6    e Zd Z e                        ZdS )4TestInstance.test_instance.<locals>.inner.<locals>.ANr  r  s   r?   r[   r    s"        xrA   r[   r   )r[   r   s    r?   innerz)TestInstance.test_instance.<locals>.inner  sA    ' ' ' ' ' ' 'I ' ' ' ' 'rA   r   r#   )rJ   r  r   s     @r?   test_instancezTestInstance.test_instance  sb    	 	 	 	 	 	 	 		' 	' 	' 	' 	' 	*e,,,,,rA   N)	rM   rN   rO   r  r  r  r  r  r  rP   rA   r?   r  r  +  su        A A A.A A A4	. 	. 	.( ( (@	 	 	- - - - -rA   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestThisc                     G d dt                     } |            }|                     |j        d             |            }||_        |                     |j        |           |                     t          t
          |dd           d S )Nc                   "    e Zd Z e            ZdS )%TestThis.test_this_class.<locals>.FooNrM   rN   rO   r"   thisrP   rA   r?   r   r            466DDDrA   r   r  rb   )r   rc   r  r   r#   rl  )rJ   r   r  r  s       r?   r4  zTestThis.test_this_class  s    	 	 	 	 	) 	 	 	 CEE&&&CEE###*gq&"=====rA   c                      G d dt                     } |            } |            |_        |                     t          |j        |                     d S )Nc                   "    e Zd Z e            ZdS )$TestThis.test_this_inst.<locals>.FooNr  rP   rA   r?   r   r    r  rA   r   )r   r  rk  r|   )rJ   r   r  s      r?   test_this_instzTestThis.test_this_inst  sj    	 	 	 	 	) 	 	 	 CEE
163//00000rA   c                      G d dt                     } G d d|          } |            } |            }||_        ||_        |                     |j        |           |                     |j        |           d S )Nc                   "    e Zd Z e            ZdS )#TestThis.test_subclass.<locals>.FooNrM   rN   rO   r"   r  rP   rA   r?   r   r            AAArA   r   c                       e Zd ZdS )#TestThis.test_subclass.<locals>.BarNrE  rP   rA   r?   r  r    rF  rA   r  )r   r  rc   rJ   r   r  r  r   s        r?   r}  zTestThis.test_subclass  s    	 	 	 	 	) 	 	 		 	 	 	 	# 	 	 	 CEECEEa   a     rA   c                      G d dt                     } G d d|          } |            } |            }||_        |                     |j        |           |                     t          t
          |d|           d S )Nc                   "    e Zd Z e            ZdS ),TestThis.test_subclass_override.<locals>.FooNr  rP   rA   r?   r   r    r  rA   r   c                   "    e Zd Z e            ZdS ),TestThis.test_subclass_override.<locals>.BarNr  rP   rA   r?   r  r    r  rA   r  r  )r   r  rc   r   r#   rl  r  s        r?   test_subclass_overridezTestThis.test_subclass_override  s    	 	 	 	 	) 	 	 		 	 	 	 	# 	 	 	 CEECEEa   *gq#q99999rA   c                      G d dt                     } |d |d           |d          g          }|                     t                    5  dd	g|_        d d d            d S # 1 swxY w Y   d S )
Nc                   H    e Zd Z e            Z e e                      ZdS )-TestThis.test_this_in_container.<locals>.TreeN)rM   rN   rO   r(   rl   r   r"   leavesrP   rA   r?   Treer    s,        GIIET$$&&\\FFFrA   r  r   r   r   buzz)rl   r  r3   r   )r   r   r#   r  )rJ   r  trees      r?   test_this_in_containerzTestThis.test_this_in_container  s    	" 	" 	" 	" 	"9 	" 	" 	" t%E):):):DDv<N<N<N(OPPPz** 	! 	!a&DK	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   
A((A,/A,N)rM   rN   rO   r4  r  r}  r  r  rP   rA   r?   r  r    s_        	> 	> 	>1 1 1! ! !: : :! ! ! ! !rA   r  c                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
TraitTestBasez+A best testing class for basic trait types.c                     || j         _        d S r{   )r   rl   rJ   rl   s     r?   assignzTraitTestBase.assign  s    rA   c                     |S r{   rP   r  s     r?   coercezTraitTestBase.coerce  s    rA   c                     t          | d          rR| j        D ]L}|                     |           |                     | j        j        |                     |                     Kd S d S )N_good_values)hasattrr  r  rc   r   rl   r  r  s     r?   test_good_valueszTraitTestBase.test_good_values  s|    4(( 	E* E EE"""  U1C1CDDDD	E 	EE ErA   c                     t          | d          rD| j        D ]>}	 |                     t          | j        |           %# t
          $ r J |            w xY wd S d S )N_bad_values)r  r  r   r#   r  AssertionErrorr  s     r?   test_bad_valueszTraitTestBase.test_bad_values  s    4'' 	() ( ((%%j$+uEEEE% ( ( ('%'''(		( 	(( (s	   !=Ac                 t    t          | d          r'|                     | j        | j        j                   d S d S N_default_value)r  rc   r  r   rl   r   s    r?   test_default_valuez TraitTestBase.test_default_value  sE    4)** 	BT0$(.AAAAA	B 	BrA   c                 0   t          | d          r t          | d          rd | j        v r| j                                        d         }	 d|_        | j                            d            |                     d            |                     | j        j        d            | 	                                 | 
                                 d|_        | j                            d            d S # d|_        | j                            d            w xY wd S d S d S )Nr  r  rl   TF)r  r  r   r  rJ  rg  r  rc   rl   r  r  rU  )rJ   traits     r?   rq  zTraitTestBase.test_allow_none  s1   D-((	.n--	. ((	.
 HOO%%g.E.#'  ''---D!!!  666%%'''$$&&& $)  ''----- $)  ''----#	. 	. 	. 	. 	. 	.s   A>C, ,#Dc                 L    t          | d          r| j        | j        _        d S d S r  )r  r  r   rl   r   s    r?   tearDownzTraitTestBase.tearDown  s/    4)** 	1!0DHNNN	1 	1rA   N)rM   rN   rO   __doc__r  r  r  r  r  rq  r  rP   rA   r?   r  r    s        55    E E E( ( (B B B. . .(1 1 1 1 1rA   r  c                   "    e Zd Z e            ZdS )AnyTraitN)rM   rN   rO   r   rl   rP   rA   r?   r  r    s        CEEEEErA   r  c                   X    e Zd ZU  e            ZdZdddgddidddgZg Zej	        e
d<   dS )AnyTraitTestNrc  tenrb   r                ?r  )rM   rN   rO   r  r   r  r  r  r  r   __annotations__rP   rA   r?   r  r    sN         
(**CN%"r{E4DLKrA   r  c                   H    e Zd Z e e             e            g          ZdS )
UnionTraitN)rM   rN   rO   r)   r&   r   rl   rP   rA   r?   r  r    s.        E44664466"##EEErA   r  c                   :    e Zd Z ed          ZeedgZg ddgZdS )UnionTraitTestr  r   Tr   r  N)	rM   rN   rO   r  r   r}   floatr  r  rP   rA   r?   r  r     s8        
*4
5
5
5C%LtR.KKKrA   r  c                   "    e Zd Z e            ZdS )CallableTraitN)rM   rN   rO   r	   rl   rP   rA   r?   r  r  '  s        HJJEEErA   r  c                   >    e Zd Z ed           Zeed gZg ddgZdS )CallableTraitTestc                      t          |           S r{   )r:   r   s    r?   r-  zCallableTraitTest.<lambda>.  s    Q rA   r   c                      t          |           S r{   )printr  s    r?   r-  zCallableTraitTest.<lambda>/  s    588 rA   r3    N)	rM   rN   rO   r  r   r}   r  r  r  rP   rA   r?   r  r  ,  s?        
-//
0
0
0C!3!34Lq"+KKKrA   r  c                   8    e Zd Z e             e            z  ZdS )OrTraitN)rM   rN   rO   r   r(   rl   rP   rA   r?   r$  r$  3  s$        DFFWWYYEEErA   r$  c                   4    e Zd Z e            Zg dZg ddgZdS )OrTraitTest)TFr  r  r  N)rM   rN   rO   r$  r   r  r  rP   rA   r?   r&  r&  8  s/        
'))C'''LtR.KKKrA   r&  c                   (    e Zd Z edd          ZdS )IntTraitc   iminNrM   rN   rO   r   rl   rP   rA   r?   r(  r(  ?  s"        CEEErA   r(  c                   V    e Zd Z e            ZdZddgZddgddiddddd	d
ddddddgZdS )TestIntr)  rb   r  r  Nr  333333$@333333$10L-10L10.1-10.110-10i8)rM   rN   rO   r(  r   r  r  r  rP   rA   r?   r.  r.  D  sa        
(**CN9L		
KKKrA   r.  c                   $    e Zd Z ed          ZdS )	CIntTrait5NrM   rN   rO   r   rl   rP   rA   r?   r9  r9  \  s        DIIEEErA   r9  c                   L    e Zd Z e            ZdZg dZddgddiddddgZd	 ZdS )
TestCIntr   r6  r7  rb   rc  g      $r0  r  rb   r  Nr  r4  c                      t          |          S r{   r}   rJ   ns     r?   r  zTestCInt.coerceg      1vvrA   )	rM   rN   rO   r9  r   r  r  r  r  rP   rA   r?   r=  r=  `  sX        
)++CN777L2$UD"fEK    rA   r=  c                   (    e Zd Z edd          ZdS )MinBoundCIntTraitr:  r   r*  Nr;  rP   rA   r?   rE  rE  k  s"        D!EEErA   rE  c                   6    e Zd Z e            ZdZg dZg dZdS )TestMinBoundCIntr   )r   g      @3)g@r   g      N)rM   rN   rO   rE  r   r  r  r  rP   rA   r?   rG  rG  o  s5        



CN ==L$$$KKKrA   rG  c                   $    e Zd Z ed          ZdS )	LongTraitr)  NrM   rN   rO   r   rl   rP   rA   r?   rK  rK  w  s        DHHEEErA   rK  c                   T    e Zd Z e            ZdZddgZddgddiddddd	d
dddddgZdS )TestLongr)  rb   r/  r  r  Nr  r0  r1  r6  r7  r2  r3  r4  r5  )rM   rN   rO   rK  r   r  r  r  rP   rA   r?   rN  rN  |  s^        
)++CN9L		
KKKrA   rN  c                   (    e Zd Z edd          ZdS )MinBoundLongTraitr)  r   r*  NrL  rP   rA   r?   rP  rP    s        DOOOEEErA   rP  c                   6    e Zd Z e            ZdZddgZddgZdS )TestMinBoundLongr)  r   rb   r   r/  N)rM   rN   rO   rP  r   r  r  r  rP   rA   r?   rR  rR    s3        



CNr7Lc(KKKrA   rR  c                   (    e Zd Z edd          ZdS )MaxBoundLongTraitr   rb   maxNrL  rP   rA   r?   rT  rT    s        DOOOEEErA   rT  c                   6    e Zd Z e            ZdZddgZddgZdS )TestMaxBoundLongr   rb   ru   r   N)rM   rN   rO   rT  r   r  r  r  rP   rA   r?   rX  rX    s3        



CN8Lr(KKKrA   rX  c                   $    e Zd Z ed          ZdS )
CLongTraitr:  NrM   rN   rO   r   rl   rP   rA   r?   r[  r[    s        E#JJEEErA   r[  c                   L    e Zd Z e            ZdZg dZddgddiddddgZd	 ZdS )
	TestCLongr   r>  r  rb   r  Nr  r4  c                      t          |          S r{   r@  rA  s     r?   r  zTestCLong.coerce  rC  rA   )	rM   rN   rO   r[  r   r  r  r  r  rP   rA   r?   r^  r^    sX        
*,,CN777L2$UD"fEK    rA   r^  c                   (    e Zd Z edd          ZdS )MaxBoundCLongTraitr:  rb   rU  Nr\  rP   rA   r?   ra  ra    s"        E#2EEErA   ra  c                   6    e Zd Z e            ZdZg dZddgZdS )TestMaxBoundCLongr   )rb   r6  g$@g      &@11N)rM   rN   rO   ra  r   r  r  r  rP   rA   r?   rc  rc    s5        



CN###L,KKKrA   rc  c                   $    e Zd Z ed          ZdS )IntegerTraitr3   NrM   rN   rO   r   rl   rP   rA   r?   rf  rf    s        GAJJEEErA   rf  c                   ,    e Zd Z e            ZdZd ZdS )TestIntegerr3   c                      t          |          S r{   r@  rA  s     r?   r  zTestInteger.coerce  rC  rA   N)rM   rN   rO   rf  r   r  r  rP   rA   r?   ri  ri    s3        
,..CN    rA   ri  c                   (    e Zd Z edd          ZdS )MinBoundIntegerTraitr   r   r*  Nrg  rP   rA   r?   rl  rl    "        GA1EEErA   rl  c                   2    e Zd Z e            ZdZdZddgZdS )TestMinBoundIntegerr   )r   r   r   r/  N)rM   rN   rO   rl  r   r  r  r  rP   rA   r?   ro  ro    s/        


 
 CNLc(KKKrA   ro  c                   (    e Zd Z edd          ZdS )MaxBoundIntegerTraitr3   r   rU  Nrg  rP   rA   r?   rq  rq    rm  rA   rq  c                   2    e Zd Z e            ZdZdZddgZdS )TestMaxBoundIntegerr3   )r   rY  r   rb   N)rM   rN   rO   rq  r   r  r  r  rP   rA   r?   rs  rs    s/        


 
 CNLb'KKKrA   rs  c                   (    e Zd Z edd          ZdS )
FloatTrait     X@      i@rU  N)rM   rN   rO   r   rl   rP   rA   r?   ru  ru    s"        E$E"""EEErA   ru  c                   R    e Zd Z e            ZdZg dZddgddiddddd	d
ddddgZdS )	TestFloatrv  )rb   r/  r0  r1  r  rb   r  Nr  r6  r7  r2  r3  r4  r5  g      i@)rM   rN   rO   ru  r   r  r  r  rP   rA   r?   ry  ry    s]        
*,,CN)))L		
KKKrA   ry  c                   (    e Zd Z edd          ZdS )CFloatTraitz99.0rw  rU  N)rM   rN   rO   r   rl   rP   rA   r?   r{  r{    s"        F6u%%%EEErA   r{  c                   N    e Zd Z e            ZdZg dZddgddiddddd	gZd
 ZdS )
TestCFloatrv  )rb   rc  g      %@z10.0r6  r7  r  rb   r  Nr  g33333i@z200.1c                      t          |          S r{   )r  rJ   r  s     r?   r  zTestCFloat.coerce  s    QxxrA   )	rM   rN   rO   r{  r   r  r  r  r  rP   rA   r?   r}  r}    sZ        
+--CN888L2$UD"eWMK    rA   r}  c                   $    e Zd Z ed          ZdS )ComplexTrait     X@     XN)rM   rN   rO   r   rl   rP   rA   r?   r  r    s        GL!!EEErA   r  c                   F    e Zd Z e            ZdZg dZddddgddiddgZdS )	TestComplexr  )
rb   r/  r0  r1  y              $@y      $@      $@y      $@      $y        333333$@y333333$@333333$@y333333$@333333$r2  r3  r  rb   r  N)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r  r    sK        
,..C!N  L &%"r{E4HKKKrA   r  c                   $    e Zd Z ed          ZdS )
BytesTrait   stringN)rM   rN   rO   r   rl   rP   rA   r?   r  r  1          E)EEErA   r  c                   P    e Zd Z e            ZdZg dZddddddgdgddid	d
dgZd
S )	TestBytesr  )s   10s   -10s   10Ls   -10Ls   10.1s   -10.1r  rb   r/  r0  r1  r  r  r  Nstring)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r  r  6  sO        
*,,CNQQQLsD%bTE7UBKPTV^_KKKrA   r  c                   $    e Zd Z ed          ZdS )UnicodeTraitunicodeN)rM   rN   rO   r(   rl   rP   rA   r?   r  r  ?  s        GIEEErA   r  c            
       T    e Zd Z e            ZdZg dZddddddgdgddid	d
g
Zd Zd
S )TestUnicoder  )
r6  r7  r2  r3  r4  r5  r"  r     €s
   bytestringrb   r/  r0  r1  r  r  r  Nc                      t          |          S r{   r1   r  s     r?   r  zTestUnicode.coerceL  s    ArA   )	rM   rN   rO   r  r   r  r  r  r  rP   rA   r?   r  r  D  sa        
,..CNdddLsD%bTE7UBKPTUK    rA   r  c                   $    e Zd Z ed          ZdS )ObjectNameTraitabcN)rM   rN   rO   r   rl   rP   rA   r?   r  r  P  s        JuEEErA   r  c                       e Zd Z e            ZdZg dZddddddd	d
ddd e            egZe	                    d           dS )TestObjectNamer  )rZ   ghg9g__Ga345_r3   r"  r  9g!z#abczaj@a.bza()za[0]N   þ)
rM   rN   rO   r  r   r  r  rM  r  rU  rP   rA   r?   r  r  T  sw        
/

CN999L	
K rA   r  c                   $    e Zd Z ed          ZdS )DottedObjectNameTraitr  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  k  s        U##EEErA   r  c                   `    e Zd Z e            ZdZg dZg dZe                    d           dS )TestDottedObjectNamer  )r[   zy.tzy765.__repr__zos.path.join)r3   u   abc.€z_.@.z.abczabc.z.abc.Nu   t.þN)	rM   rN   rO   r  r   r  r  r  rU  rP   rA   r?   r  r  o  sM        


!
!CN@@@LKKKKrA   r  c                   "    e Zd Z e            ZdS )TCPAddressTraitN)rM   rN   rO   r!   rl   rP   rA   r?   r  r  y  s        JLLEEErA   r  c                   6    e Zd Z e            ZdZg dZg dZdS )TestTCPAddress)	127.0.0.1r   ))	localhostr   )z192.168.0.1r  )zwww.google.comP   ))r   r   )r  rc  )r  rj   NN)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r  r  }  s6        
/

C%NTTTLHHHKKKrA   r  c                   4    e Zd Z e e                      ZdS )	ListTraitNrM   rN   rO   r   r   rl   rP   rA   r?   r  r    s!        DKKEEErA   r  c                       e Zd ZU  e            Zg Zej        ej                 e	d<   g dg e
 ed                    dgZdddgdgZd ZdS )TestListr  r3   rb   r3   r   rZ   c                 (    |t          |          }|S r{   listr  s     r?   r  zTestList.coerce       	 KKErA   N)rM   rN   rO   r  r   r  r  r   r   r  r  ranger  r  r  rP   rA   r?   r  r    sx         
)++C$&NAF15M&&&TT%%))__f5L3x%K    rA   r  c                       e Zd ZdS )r   NrE  rP   rA   r?   r   r             DrA   r   c                   6    e Zd Z e ee                    ZdS )NoneInstanceListTraitN)rM   rN   rO   r   r   r   rl   rP   rA   r?   r  r    s%        D#EEErA   r  c                       e Zd ZU  e            Zg Zej        ej                 e	d<    e
             e
            gg gZdg e
            dggZdS )TestNoneInstanceListr  N)rM   rN   rO   r  r   r  r  r   r   r  r   r  r  rP   rA   r?   r  r    sf         


!
!C$&NAF15M&&&SUUCCEENB'L6CCEE4=)KKKrA   r  c                   <    e Zd Z e ee dz                       ZdS )InstanceListTraitz.FooN)rM   rN   rO   r   r   rl   rP   rA   r?   r  r    s,        D(V+,,--EEErA   r  c                       e Zd ZU  e            Zd Zg Zej        ej	                 e
d<    e             e            gg gZddgdegdgZdS )TestInstanceListc                     |                      | j                                        d         j        j        t
                     dS z2Test that the instance klass is properly assigned.rl   N)r]  r   r  _traitrL  r   r   s    r?   
test_klasszTestInstanceList.test_klass  s3    dhoo''07=sCCCCCrA   r  r   r   N)rM   rN   rO   r  r   r  r  r  r   r   r  r   r  r  rP   rA   r?   r  r    s         



CD D D %'NAF15M&&&SUUCCEENB'L 	
 		KKKrA   r  c                   J    e Zd Z e e             e            z            ZdS )UnionListTraitN)rM   rN   rO   r   r   r   rl   rP   rA   r?   r  r    s-        D  EEErA   r  c                   n    e Zd ZU  e            Zg Zej        ej                 e	d<   ddgddggZ
ddgdgZdS )TestUnionListTraitr  Tr3   FTrueN)rM   rN   rO   r  r   r  r  r   r   r  r  r  rP   rA   r?   r  r    sU         
.

C$&NAF15M&&&1It}-Lv;&KKKrA   r  c                   >    e Zd Z e e            dgdd          ZdS )LenListTraitr   r3   r   )minlenmaxlenNr  rP   rA   r?   r  r    s.        DAa000EEErA   r  c            	       t    e Zd Z e            ZdgZdgddgdgZdddgdg  e ed                    gZ	d Z
d	S )
TestLenListr   r3   r   r  rb   rZ   r   c                 (    |t          |          }|S r{   r  r  s     r?   r  zTestLenList.coerce  r  rA   N)rM   rN   rO   r  r   r  r  r  r  r  r  rP   rA   r?   r  r    sk        
,..CSNC!Q(L3xb$$uuQxx..9K    rA   r  c                   <    e Zd Z e ed          d          ZdS )
TupleTraitTrI  r3   r   N)rM   rN   rO   r%   r   rl   rP   rA   r?   r  r    s/        E##&&&d;;;EEErA   r  c                   F    e Zd Z e            ZdZdddggZg dZd Zd Z	dS )TestTupleTraitr  r  r3   )rb   r  rZ   rP   Nc                 (    |t          |          }|S r{   tupler  s     r?   r  zTestTupleTrait.coerce       	!%LLErA   c                     |                      t          t          d           |                      t          t          d           t          t                      t	                      d          }d S Nr   hellor   )r3   r   r   r>  r%   r   r
   rJ   r  s     r?   test_invalid_argsz TestTupleTrait.test_invalid_args  U    )UA...)U'BBB#%%888rA   N)
rM   rN   rO   r  r   r  r  r  r  r  rP   rA   r?   r  r    s[        
*,,CN$$L///K  
9 9 9 9 9rA   r  c                   $    e Zd Z ed          ZdS )LooseTupleTraitr3   r   r   N)rM   rN   rO   r%   rl   rP   rA   r?   r  r    r  rA   r  c                       e Zd Z e            ZdZddgd e ed                     ed          ddgZd	di d
gZ	d Z
d Zd
S )TestLooseTupleTraitr  r  r3   r  r   r  )rZ   r   rP   rb   Nc                 (    |t          |          }|S r{   r  r  s     r?   r  zTestLooseTupleTrait.coerce  r  rA   c                     |                      t          t          d           |                      t          t          d           t          t                      t	                      d          }d S r  r  r  s     r?   r  z%TestLooseTupleTrait.test_invalid_args  r  rA   )rM   rN   rO   r  r   r  r  r  r  r  r  r  rP   rA   r?   r  r    s        
/

CN1#tUU5588__eeGnnhPRSLwD)K  
9 9 9 9 9rA   r  c                   N    e Zd Z e e             e            ddg          ZdS )MultiTupleTraitr)     bottlesr   N)rM   rN   rO   r%   r   r   rl   rP   rA   r?   r  r    s5        E##%%Z0@AAAEEErA   r  c                   2    e Zd Z e            ZdZddgZdZdS )TestMultiTuple)r)  r  )r3      a)r      b)rP   rb   r  )r3   r  r   )r  r3   )r3   rZ   N)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r  r    s/        
/

C%Ny)LCKKKrA   r  Traitc                       G  fddt                     } |            }|j        J  |d           }|j        J d S )Nc                   *    e Zd Z  dd          ZdS )(test_allow_none_default_value.<locals>.CNT)r   rJ  rM   rN   rO   r  r  s   r?   r   r  0  s#        E666rA   r   r  )r   r  )r  r   r   s   `  r?   test_allow_none_default_valuer  $  sw    7 7 7 7 7 7 7I 7 7 7 	
A3 	
D			A3rA   zTrait, default_valuerP   r"  c                       G  fddt                     } |            }t          |j                  t          |          u sJ |j        |k    sJ d S )Nc                   $    e Zd Z              ZdS )test_default_value.<locals>.CNr  r  s   r?   r   r  A  s        EGGrA   r   r   r:   r  )r  r   r   r   s   `   r?   r  r  <  s~    
      I    	
A99]++++++3-rA   c                      G d d|            G fddt                     } |            }t          |j                  t          |          u sJ |j        |k    sJ dS )zITest deprecated default_value=None behavior for Container subclass traitsc                         e Zd Zd fd	Z xZS )2test_subclass_default_value.<locals>.SubclassTraitNc                 L    t                                          |           d S )Nr   )rB  r  )rJ   r   r+  s     r?   r  z;test_subclass_default_value.<locals>.SubclassTrait.__init__R  s$    GG=99999rA   r{   )rM   rN   rO   r  rG  r  s   @r?   SubclassTraitr  Q  s=        	: 	: 	: 	: 	: 	: 	: 	: 	: 	:rA   r   c                   $    e Zd Z              ZdS )&test_subclass_default_value.<locals>.CNr  )r   s   r?   r   r  U  s        MOOrA   r   Nr  )r  r   r   r   r   s       @r?   test_subclass_default_valuer  J  s    : : : : : : : :      I    	
A99]++++++3-rA   c                   $    e Zd Z ed          ZdS )CRegExpTraitr"  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  ^  s        GCLLEEErA   r  c                   t    e Zd Zd Z e            Z ej        d          Zd ej        d          gZ	g dZ
dS )TestCRegExpc                 *    t          j        |          S r{   )recompiler  s     r?   r  zTestCRegExp.coerced  s    z%   rA   r"  z\d+)(NrP   N)rM   rN   rO   r  r  r   r	  r
  r  r  r  rP   rA   r?   r  r  c  sX        ! ! ! ,..CRZ__NJBJv../L!//KKKrA   r  c                   "    e Zd Z e            ZdS )	DictTraitN)rM   rN   rO   r   rl   rP   rA   r?   r  r  n  s        DFFEEErA   r  c                  n    i } t                      }| |_        d| d<   | |j        k    sJ |j        | u sJ d S )Nr   rZ   )r  rl   )r  r   s     r?   test_dict_assignmentr  r  sJ    AAAGAcF<7a<rA   c                   <    e Zd Z e e            ddi          ZdS ) UniformlyValueValidatedDictTraitr   r   )value_traitr   NrM   rN   rO   r   r(   rl   rP   rA   r?   r  r  {  s,        DWWYYuclCCCEEErA   r  c                   B    e Zd Z e            ZddiZdddgZdddgZdS )'TestInstanceUniformlyValueValidatedDictr   r   0r   r   r   N)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r  r    sE        
*
*
,
,CS\N,,-LS))*KKKrA   r  c                   @    e Zd Z ed e            iddi          ZdS )#NonuniformlyValueValidatedDictTraitr   r3   )per_key_traitsr   N)rM   rN   rO   r   r   rl   rP   rA   r?   r  r    s0        DuajIIIEEErA   r  c                   J    e Zd Z e            ZddiZddddddgZdddgZdS )*TestInstanceNonuniformlyValueValidatedDictr   r3   r   r   r  r  N)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r  r    sO        
-
-
/
/CQZNc**Aa,@,@ALs++,KKKrA   r  c                   <    e Zd Z e e            ddi          ZdS )KeyValidatedDictTraitr   r   )	key_traitr   Nr  rP   rA   r?   r  r    s,        D7799UCLAAAEEErA   r  c                   B    e Zd Z e            ZddiZdddgZdddgZdS )TestInstanceKeyValidatedDictr   r   r  r  r   r   N)rM   rN   rO   r  r   r  r  r  rP   rA   r?   r!  r!    sE        


!
!CS\N,,-L3''(KKKrA   r!  c                   d    e Zd Z e e             e            d e            iddi          ZdS )FullyValidatedDictTraitr   r3   )r  r  r  r   N)rM   rN   rO   r   r(   r   rl   rP   rA   r?   r$  r$    sJ        DGII'))ssuu~aj	  EEErA   r$  c                   Z    e Zd Z e            ZddiZddddddgZdddddddddgZd	S )
TestInstanceFullyValidatedDictr   r3   r   r   r  2r  r"  N)rM   rN   rO   r$  r   r  r  r  rP   rA   r?   r&  r&    sd        
!
!
#
#CQZNc**Ac,B,BCLQ''S)A)A1QTCUCUVKKKrA   r&  c                       G d dt                     }  |             }|j        i k    sJ |j        i k    sJ |j        |j        usJ dS )zZCheck that the `{}` default value of the Dict traitlet constructor is
    actually copied.c                   6    e Zd Z e            Z e            ZdS )$test_dict_default_value.<locals>.FooN)rM   rN   rO   r   d1d2rP   rA   r?   r   r*    s$        TVVTVVrA   r   N)r   r+  r,  )r   r   s     r?   test_dict_default_valuer-    sx        i    #%%C6R<6R<6rA   c                        e Zd Zd Zd Zd ZdS )TestValidationHookc                      G d dt                     } |            }d|_        d|_        |                     t                    5  d|_        ddd           n# 1 swxY w Y   d|_        d|_        dS )z2Verify that the early validation hook is effectivec                   j    e Zd Z ed          Z eddgd          Z ed          d             ZdS )4TestValidationHook.test_parity_trait.<locals>.Parityr   oddevenr   rl   c                     |d         }| j         dk    r|dz  rt          d          | j         dk    r|dz  dk    rt          d          |S )Nrl   r4  r   zExpected an even numberr3  r   zExpected an odd number)parityr#   )rJ   r   rl   s      r?   _value_validatezDTestValidationHook.test_parity_trait.<locals>.Parity._value_validate  si     );&( @UQY @$%>???;%' ?UQY!^ ?$%=>>>rA   N)	rM   rN   rO   r   rl   r   r6  r0   r7  rP   rA   r?   Parityr2    s]        CFFET5&/@@@FXg    rA   r8  r3  r3   r   Nr4  )r   r6  rl   r   r#   )rJ   r8  us      r?   test_parity_traitz$TestValidationHook.test_parity_trait  s    	 	 	 	 	Y 	 	 	 FHHz** 	 	AG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   AA!Ac                 B    G d dt                     } |            }d|_        |                     t                    5  d|_        ddd           n# 1 swxY w Y   d|_        |                     t                    5  d|_        ddd           dS # 1 swxY w Y   dS )z@Verify that we can register the same validator to multiple namesc                   d    e Zd Z ed          Z ed          Z edd          d             ZdS ):TestValidationHook.test_multiple_validate.<locals>.OddEvenr3   r   r3  r4  c                     |d         j         dk    r|d         dz  st          d          |d         j         dk    r|d         dz  rt          d          d S d S )Nr	  r3  rl   r   zodd should be oddr4  zeven should be even)r6   r#   r   s     r?   check_validzFTestValidationHook.test_multiple_validate.<locals>.OddEven.check_valid  s    G$)U2 :8G;Lq;P :$%8999G$)V3 <8IA8M <$%:;;;< < < <rA   N)rM   rN   rO   r   r3  r4  r0   r?  rP   rA   r?   OddEvenr=    sT        #a&&C3q66DXeV$$< < %$< < <rA   r@  r   r   N)r   r3  r   r#   r4  )rJ   r@  r9  s      r?   test_multiple_validatez)TestValidationHook.test_multiple_validate  s8   
	< 
	< 
	< 
	< 
	<i 
	< 
	< 
	< GIIz** 	 	AE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	AF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA?BBBc                      G d dt                     } |d          }|j        dk    sJ  |            }d|_        |j        dk    sJ dS )z,Verify that the validate value is being usedc                   L    e Zd Z ed          Z ed          d             ZdS )9TestValidationHook.test_validate_used.<locals>.FixedValuer   rl   c                     dS ri   rP   r   s     r?   r7  zITestValidationHook.test_validate_used.<locals>.FixedValue._value_validate  r   rA   N)rM   rN   rO   r   rl   r0   r7  rP   rA   r?   
FixedValuerD    sE        CFFEXg    rA   rF  r   r   rj   r   N)r   rl   )rJ   rF  r9  s      r?   test_validate_usedz%TestValidationHook.test_validate_used  s|    	 	 	 	 	 	 	 	 JQw"}JLLw"}rA   N)rM   rN   rO   r:  rA  rG  rP   rA   r?   r/  r/    sA          4  0    rA   r/  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestLinkc                 `    G d dt                     } |d          } |d          }t          |df|df          }|                     |j        |j                   d|_        |                     |j        |j                   d|_        |                     |j        |j                   d	S )
zHVerify two traitlets of the same type can be linked together using link.c                   "    e Zd Z e            ZdS )%TestLink.test_connect_same.<locals>.ANr,  rP   rA   r?   r[   rL            CEEEEErA   r[   	   r      rl   r      Nr   r,   rc   rl   rJ   r[   rZ   r   r   s        r?   test_connect_samezTestLink.test_connect_same  s    	 	 	 	 		 	 	 	 AAJJJAAJJJ !W7|,, 	!'*** !'***!'*****rA   c                     G d dt                     } G d dt                     } |d          } |d          }t          |d	f|d
f          }|                     |j        |j                   d|_        |                     |j        |j                   d|_        |                     |j        |j                   dS )JVerify two traitlets of different types can be linked together using link.c                   "    e Zd Z e            ZdS )'TestLink.test_link_different.<locals>.ANr,  rP   rA   r?   r[   rW  &  rM  rA   r[   c                   "    e Zd Z e            ZdS )'TestLink.test_link_different.<locals>.BNrM   rN   rO   r   countrP   rA   r?   r   rY  )  rM  rA   r   rN  r   rO  r[  rl   r[  r   r   N)r   r,   rc   rl   r[  rJ   r[   r   rZ   r   r   s         r?   test_link_differentzTestLink.test_link_different"  s    	 	 	 	 		 	 	 		 	 	 	 		 	 	 	 AAJJJAAJJJ !W7|,, 	!'*** !'***!'*****rA   c                     G d dt                     } |d          } |d          }t          |df|df          }d|_        |                                 d|_        |                     |j        |j                   |                                 |                     |j        |j                   |xj        d	z  c_        |                     |j        |j                   d
S )9Verify two linked traitlets can be unlinked and relinked.c                   "    e Zd Z e            ZdS )$TestLink.test_unlink_link.<locals>.ANr,  rP   rA   r?   r[   rb  ?  rM  rA   r[   rN  r   rO  rl   r   r   r3   N)r   r,   rl   unlinkassertNotEqualrc   rR  s        r?   test_unlink_linkzTestLink.test_unlink_link;  s    	 	 	 	 		 	 	 	 AAJJJAAJJJ !W7|,,	


 AGQW---	!'***	1!'*****rA   c                 L    G d dt                     } G d dt                     } |d          } |d          }g fd	}|                    |d
           fd}|                    |d           t          |d
f|df          }|                     d                              d           dd= d|_        |                     d                              d           dd= d|_        |                     d                              d           dd= dS )z=Verify two linked traitlets have their callbacks called once.c                   "    e Zd Z e            ZdS )"TestLink.test_callbacks.<locals>.ANr,  rP   rA   r?   r[   rh  V  rM  rA   r[   c                   "    e Zd Z e            ZdS )"TestLink.test_callbacks.<locals>.BNrZ  rP   rA   r?   r   rj  Y  rM  rA   r   rN  r   rO  r\  c                 2                         d           d S )NrZ   rU  r6   r7   r8   callback_counts      r?   
a_callbackz+TestLink.test_callbacks.<locals>.a_callbackb      !!#&&&&&rA   rl   c                 2                         d           d S )Nr   rl  rm  s      r?   
b_callbackz+TestLink.test_callbacks.<locals>.b_callbackg  rp  rA   r[  r"  r   Nr   bar   ab)r   ri  r,   rc   joinr[  rl   )	rJ   r[   r   rZ   r   ro  rr  r   rn  s	           @r?   test_callbackszTestLink.test_callbacksR  s   	 	 	 	 		 	 	 		 	 	 	 		 	 	 	 AAJJJAAJJJ 	' 	' 	' 	' 	' 	
*g...	' 	' 	' 	' 	' 	
*g... !W7|,, 	00#666111 00$777111 00$777111rA   c                 ^    G d dt                     } |d          } |d          }t          |df|dfd d f	          }|                     |j        d
|j        z             d|_        |                     |j        d           d|_        |                     |j        d           dS )Test transform link.c                   "    e Zd Z e            ZdS )!TestLink.test_tranform.<locals>.ANr,  rP   rA   r?   r[   rz    rM  rA   r[   rN  r   rO  rl   c                     d| z  S Nr   rP   r  s    r?   r-  z(TestLink.test_tranform.<locals>.<lambda>  s
    !a% rA   c                 &    t          | dz            S )Ng       @r@  r  s    r?   r-  z(TestLink.test_tranform.<locals>.<lambda>  s    SVWX[^W^S_S_ rA   )	transformr   r   rb   rP  r   NrQ  rR  s        r?   test_tranformzTestLink.test_tranform}  s    	 	 	 	 		 	 	 	 AAJJJAAJJJ !W7|I_I_7`aaa 	!ag+... "%%% !$$$$$rA   c                      G d dt                     } |            }t          |df|df          }|                     t          t          |dd           d S )Nc                   ^    e Zd Z e            Z e            Z ed          d             ZdS )4TestLink.test_link_broken_at_source.<locals>.MyClassr'  c                 $    |j         dz  | _        d S r|  )r8   r  rI   s     r?   another_updatezCTestLink.test_link_broken_at_source.<locals>.MyClass.another_update      arA   NrM   rN   rO   r   r  r'  r-   r  rP   rA   r?   MyClassr    K        AAWS\\( ( \( ( (rA   r  r  r'  r   r   r,   r   r#   rl  rJ   r  mcls       r?   test_link_broken_at_sourcez#TestLink.test_link_broken_at_source  r    	( 	( 	( 	( 	(i 	( 	( 	( WYY"cRI&&*gr3:::::rA   c                      G d dt                     } |            }t          |df|df          }|                     t          t          |dd           d S )Nc                   ^    e Zd Z e            Z e            Z ed          d             ZdS )4TestLink.test_link_broken_at_target.<locals>.MyClassr  c                 $    |j         dz  | _        d S r|  )r8   r'  rI   s     r?   r  zCTestLink.test_link_broken_at_target.<locals>.MyClass.another_update  r  rA   Nr  rP   rA   r?   r  r    r  rA   r  r  r'  r   r  r  s       r?   test_link_broken_at_targetz#TestLink.test_link_broken_at_target  r  rA   N)
rM   rN   rO   rS  r^  re  rv  r  r  r  rP   rA   r?   rI  rI    s~        + + +,+ + +2+ + +.) ) )V% % %0; ; ;; ; ; ; ;rA   rI  c                   &    e Zd Zd Zd Zd Zd ZdS )TestDirectionalLinkc                 L    G d dt                     } |d          } |d          }t          |df|df          }|                     |j        |j                   d|_        |                     |j        d           d|_        |                     |j        d           d	S )
zTVerify two traitlets of the same type can be linked together using directional_link.c                   "    e Zd Z e            ZdS )0TestDirectionalLink.test_connect_same.<locals>.ANr,  rP   rA   r?   r[   r    rM  rA   r[   rN  r   rO  rl   r   rP  Nr   r+   rc   rl   rR  s        r?   rS  z%TestDirectionalLink.test_connect_same  s    	 	 	 	 		 	 	 	 AAJJJAAJJJ a\Aw<88 	!'*** !$$$!$$$$$rA   c                 V    G d dt                     } |d          } |d          }t          |df|dfd           }|                     |j        d|j        z             d	|_        |                     |j        d
           d|_        |                     |j        d	           dS )rx  c                   "    e Zd Z e            ZdS ),TestDirectionalLink.test_tranform.<locals>.ANr,  rP   rA   r?   r[   r    rM  rA   r[   rN  r   rO  rl   c                     d| z  S r|  rP   r  s    r?   r-  z3TestDirectionalLink.test_tranform.<locals>.<lambda>  s
    1q5 rA   r   r   rb   rP  Nr  rR  s        r?   r  z!TestDirectionalLink.test_tranform  s    	 	 	 	 		 	 	 	 AAJJJAAJJJ a\Aw<II 	!ag+... "%%%!$$$$$rA   c                 r    G d dt                     } G d dt                     } |d          } |d          }t          |d	f|d
f          }|                     |j        |j                   d|_        |                     |j        d           d|_        |                     |j        d           dS )rU  c                   "    e Zd Z e            ZdS )2TestDirectionalLink.test_link_different.<locals>.ANr,  rP   rA   r?   r[   r    rM  rA   r[   c                   "    e Zd Z e            ZdS )2TestDirectionalLink.test_link_different.<locals>.BNrZ  rP   rA   r?   r   r    rM  rA   r   rN  r   rO  r\  rl   r[  r   rP  N)r   r+   rc   rl   r[  r]  s         r?   r^  z'TestDirectionalLink.test_link_different  s    	 	 	 	 		 	 	 		 	 	 	 		 	 	 	 AAJJJAAJJJ a\Aw<88 	!'*** !$$$!$$$$$rA   c                     G d dt                     } |d          } |d          }t          |df|df          }d|_        |                                 d|_        |                     |j        |j                   |                                 |                     |j        |j                   |xj        d	z  c_        |                     |j        |j                   d
S )r`  c                   "    e Zd Z e            ZdS )/TestDirectionalLink.test_unlink_link.<locals>.ANr,  rP   rA   r?   r[   r    rM  rA   r[   rN  r   rO  rl   r   r   r3   N)r   r+   rl   rc  rd  r,   rc   rR  s        r?   re  z$TestDirectionalLink.test_unlink_link  s    	 	 	 	 		 	 	 	 AAJJJAAJJJ a\Aw<88	


 AGQW---	!'***	1!'*****rA   N)rM   rN   rO   rS  r  r^  re  rP   rA   r?   r  r    sP        % % %.% % %.% % %4+ + + + +rA   r  c                       e Zd Z e            Z ed          d             Z ed          d             Z e            Z	d Z
dS )
Pickleabler  c                     d S r{   rP   rI   s     r?   
_i_changedzPickleable._i_changed	  s    rA   c                     |d         S )Nrl   rP   )rJ   commits     r?   _i_validatezPickleable._i_validate	  s    grA   c                     |                                  5  d| _        d d d            n# 1 swxY w Y   |                     | j        d           d S )Nr3   r  )hold_trait_notificationsr  ri  r  r   s    r?   r  zPickleable.__init__	  s    **,, 	 	DF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T_c22222s   )--N)rM   rN   rO   r   r  r-   r  r0   r  r'  r  rP   rA   r?   r  r  	  s        AWS\\  \ Xc]]  ] 	A3 3 3 3 3rA   r  c                     t                      } t          t          j        dz             D ]O}t          j        | |          }t          j        |          }|j        | j        k    sJ |j        | j        k    sJ Pd| _        t          t          j        dz             D ]O}t          j        | |          }t          j        |          }|j        | j        k    sJ |j        | j        k    sJ Pd S )Nr3   r   )r  r  pickleHIGHEST_PROTOCOLdumpsloadsr  r'  )r   protocolpc2s       r?   test_pickle_hastraitsr  %	  s    A&1A566  LH%%\!__tqs{tqs{
AC&1A566  LH%%\!__tqs{tqs{	 rA   c                     g  G fddt                     }  |             } |j                    5   |j                    5  d|_        |j        dk    sJ g k    sJ 	 d d d            n# 1 swxY w Y   d|_        |j        dk    sJ  |j                    5  d|_        |j        dk    sJ g k    sJ d|_        |j        dk    sJ g k    sJ 	 d d d            n# 1 swxY w Y   d|_        |j        dk    sJ g k    sJ 	 d d d            n# 1 swxY w Y   dgk    sJ 	  |j                    5  d|_        d d d            n# 1 swxY w Y   n# t          $ r Y nw xY w|j        dk    sJ d S )	Nc                   L    e Zd Z ed          Z ed          Z fdZd ZdS )+test_hold_trait_notifications.<locals>.Testr   c                 6                         ||f           d S r{   rl  )rJ   r6   r7   r8   changess       r?   r  z6test_hold_trait_notifications.<locals>.Test._a_changed<	  s    NNC:&&&&&rA   c                 0    |dk    rt          d          |S )Nr   zOnly 0 is a valid valuer#   rJ   rl   r	  s      r?   _b_validatez7test_hold_trait_notifications.<locals>.Test._b_validate?	  s"    z < !:;;;LrA   N)rM   rN   rO   r   rZ   r   r  r  )r  s   r?   Testr  8	  sW        GAJJGAJJ	' 	' 	' 	' 	'	 	 	 	 	rA   r  r3   r   r   r   )r   r   r   )r   r  rZ   r   	Exception)r  r  r  s     @r?   test_hold_trait_notificationsr  5	  s   G
 
 
 
 
 
 
y 
 
 
 	A	#	#	%	%  'Q')) 	! 	!AC3!8OOOb=    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! sax'Q')) 	! 	!AC3!8OOOb=   AC3!8OOOb=    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! sax"}!              $ vh'Q')) 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   3!8OOOOOs   DA, D,A0	0D3A0	4&D9C D C$	$D'C$	(DDD)E 8E E EE EE 
E%$E%c                   (    e Zd Z e            Zd ZdS )RollBackc                 (    |rt          d          |S )Nfoobarr  r  s      r?   _bar_validatezRollBack._bar_validatee	  s     	'X&&&rA   N)rM   rN   rO   r   r   r  rP   rA   r?   r  r  b	  s.        
#%%C    rA   r  c                       e Zd Zd ZdS )TestRollbackc                 B    d }|                      t          |           d S )Nc                  &    t          d           d S )Nr3   r   )r  rP   rA   r?   assign_rollbackz4TestRollback.test_roll_back.<locals>.assign_rollbackm	  s    OOOOOOrA   r  )rJ   r  s     r?   test_roll_backzTestRollback.test_roll_backl	  s/    	 	 	 	*o66666rA   N)rM   rN   rO   r  rP   rA   r?   r  r  k	  s#        7 7 7 7 7rA   r  c                   B    e Zd Z e            Z e            Zd Zd ZdS )CacheModificationc                     || _         |S r{   r;  r  s      r?   r  zCacheModification._bar_validatew	      rA   c                     || _         |S r{   r  r  s      r?   _foo_validatezCacheModification._foo_validate{	  r  rA   N)rM   rN   rO   r   r   r   r  r  rP   rA   r?   r  r  s	  sH        
#%%C
#%%C      rA   r  c                  F    t          d           t          d           d S )Nr3   r;  r  )r  rP   rA   r?   test_cache_modificationr  	  s*    !!rA   c                   (    e Zd Z e            Z e            Z e            Z e            Z e            Z	 e            Z
 e            Z e            Z e            Z e            Z e            Z e            Z e            Zd Z fdZ xZS )OrderTraitsc                 4      fddD              j         |<   dS )zcheck the value of all traits when each trait change is triggered

        This verifies that the values are not sensitive
        to dict ordering when loaded from kwargs
        c                 2    i | ]}|t          |          S rP   )r   ).0r   rJ   s     r?   
<dictcomp>z'OrderTraits._notify.<locals>.<dictcomp>	  s%    KKKqq'$"2"2KKKrA   abcdefghijklN)notifiedrV  s   `   r?   _notifyzOrderTraits._notify	  s,     LKKKNKKKdrA   c                 n    |                      | j                    t                      j        di | d S r  )ri  r  rB  r  r  s     r?   r  zOrderTraits.__init__	  s<    T\***""6"""""rA   )rM   rN   rO   r   r  r(   rZ   r   r   r  er  r  hr  r'  kr  r  r  rG  r  s   @r?   r  r  	  s        tvvH		A		A		A		A		A		A		A		A		A		A		A		AL L L# # # # # # # # #rA   r  c                      d dD             t                      } | j        i k    sJ t          di } fddD             }| j        |k    sJ d S )Nc                     i | ]}||S rP   rP   )r  r   s     r?   r  z+test_notification_order.<locals>.<dictcomp>	  s    &&&!A&&&rA   r  c                     i | ]}|S rP   rP   )r  r   r  s     r?   r  z+test_notification_order.<locals>.<dictcomp>	  s    222aQ222rA   rP   )r  r  )r   notificationsr  s     @r?   test_notification_orderr  	  sw    &&~&&&A
--C<2




C2222>222M<=((((((rA   c                   (    e Zd Z edd          ZdS )ForwardDeclaredInstanceTraitForwardDeclaredBarTrI  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  	  s$        ##$8TJJJEEErA   r  c                   (    e Zd Z edd          ZdS )ForwardDeclaredTypeTraitr  TrI  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  	  s$         4FFFEEErA   r  c                   6    e Zd Z e ed                    ZdS ) ForwardDeclaredInstanceListTraitr  N)rM   rN   rO   r   r   rl   rP   rA   r?   r  r  	  s*        D(()=>>??EEErA   r  c                   6    e Zd Z e ed                    ZdS )ForwardDeclaredTypeListTraitr  N)rM   rN   rO   r   r   rl   rP   rA   r?   r  r  	  s*        D$$%9::;;EEErA   r  c                       e Zd ZdS )r  NrE  rP   rA   r?   r  r  	  r  rA   r  c                       e Zd ZdS )ForwardDeclaredBarSubNrE  rP   rA   r?   r  r  	  r  rA   r  c                   \    e Zd Z e            ZdZd e             e            gZddeegZ	dS ) TestForwardDeclaredInstanceTraitNr   r   )
rM   rN   rO   r  r   r  r  r  r  r  rP   rA   r?   r  r  	  sQ        
&
&
(
(CN,,..0E0E0G0GHL!/1FGKKKrA   r  c                   \    e Zd Z e            ZdZdeegZdd e             e            gZ	dS )TestForwardDeclaredTypeTraitNr   r   )
rM   rN   rO   r  r   r  r  r  r  r  rP   rA   r?   r  r  	  sQ        
"
"
$
$CN,.CDL!//113H3H3J3JKKKKrA   r  c                       e Zd ZU  e            Zd Zg Zej        ej	                 e
d<    e             e            gg gZ e             e            ddgdegdgdgZdS )TestForwardDeclaredInstanceListc                     |                      | j                                        d         j        j        t
                     dS r  r]  r   r  r  rL  r  r   s    r?   r  z*TestForwardDeclaredInstanceList.test_klass	  4    dhoo''07=?QRRRRRrA   r  r   Nr   )rM   rN   rO   r  r   r  r  r  r   r   r  r  r  r  r  rP   rA   r?   r  r  	  s         
*
*
,
,CS S S %'NAF15M&&&				44667
L
 					q$'		KKKrA   r  c                       e Zd ZU  e            Zd Zg Zej        ej	                 e
d<   eegg gZeedgd e            gdgdgZdS )TestForwardDeclaredTypeListc                     |                      | j                                        d         j        j        t
                     dS r  r  r   s    r?   r  z&TestForwardDeclaredTypeList.test_klass
  r  rA   r  r   r   N)rM   rN   rO   r  r   r  r  r  r   r   r  r  r  r  r  rP   rA   r?   r   r   
  s         
&
&
(
(CS S S %'NAF15M&&&	23
L
 		Q					KKKrA   r   c                   :    e Zd Zd Zd Zej        d             ZdS )TestDynamicTraitsc                     g | _         d S r{   )rO  r   s    r?   rQ  zTestDynamicTraits.setUp 
  s    rA   c                 @    | j                             |||f           d S r{   rT  rV  s       r?   rW  zTestDynamicTraits.notify1#
  rX  rA   c                     G d dt                     } |            }|                     t          |d                      |                     t          |d                      |                    t	                                 |                     t          |d                     |                     t          ||f                     |                    t                                 |                     t          |d                     |                     t          ||f                     |                     |j        j	        |j	                    |            }|                     t          |d                      |                     t          |d                      |
                    | j                   d|_        |                     t          | j                  d           d|_        |                     t          | j                  d           d	|_        |                     d
| j        v            d|_        |                     d| j        v            |                     t"          t$          |dd           |                     t"          t$          |dd           g | _        |
                    | j        d           d|_        d|_        |                     t          | j                  d           d S )Nc                       e Zd ZdS ),TestDynamicTraits.test_notify_all.<locals>.ANrE  rP   rA   r?   r[   r  (
  rF  rA   r[   r   yr  )r	  r   ra  rb   )r   r   rb   rc  )r	  ra  rc  re  Trf  r   rh  )r   rk  r  
add_traitsr   r|   r   rc   r+  rM   ri  rW  r   rj  rO  r	  r   r#   rl  )rJ   r[   rZ   r   s       r?   rm  z!TestDynamicTraits.test_notify_all&
  s   	 	 	 	 		 	 	 	 ACCGAsOO+,,,GAsOO+,,, 	
suu3(((
1qd++,,, 	
uww3(((
1qd++,,,-qz::: ACCGAsOO+,,,GAsOO+,,, 	
$,'''T]++Q///T]++Q///5666(DM9:::*gq#|DDD*gq#|DDD	$,t444T]++Q/////rA   N)rM   rN   rO   rQ  rW  r  no_type_checkrm  rP   rA   r?   r  r  
  sO          / / / _)0 )0 _)0 )0 )0rA   r  c                      G d dt                     }  |             }d|_        |j        dk    sJ  |             }t          j        t                    5  |j        }d d d            n# 1 swxY w Y    | d          }|j        dk    sJ d S )Nc                   (    e Zd Z eddg          ZdS )test_enum_no_default.<locals>.CrZ   r   N)rM   rN   rO   r   r  rP   rA   r?   r   r  T
  s!        D#srA   r   rZ   r   r  )r   r  pytestraisesr#   )r   r   r  s      r?   test_enum_no_defaultr  S
  s        I    	
A
AC3#:	A	z	"	"  C               	
CA3#:s   A))A-0A-c                  b    G d dt                     } | j                                        dk    sJ | j                                        dk    sJ | j                                        dk    sJ | j                                        dk    sJ | j                                        dk    sJ d S )Nc                   x    e Zd Z ed          Z ee          Z ed          Z e	            Z
 e            ZdS )"test_default_value_repr.<locals>.Cztraitlets.HasTraitsr   N)rM   rN   rO   r&   r  r   t2r   rB  r   lisr   r  rP   rA   r?   r   r  e
  sN        D&''T)__GAJJdffDFFrA   r   z'traitlets.HasTraits'z'traitlets.traitlets.HasTraits'r  []{})r   r  default_value_reprr  rB  r  r  )r   s    r?   test_default_value_reprr  d
  s        I    3!!##'>>>>>4""$$(IIIII3!!##s****5##%%----3!!##t++++++rA   c                      e Zd Z e            Z ed          d             ZdZ ed          Z	 ed          d             Z
 ed          ed                         ZdZ ed          Z ed          ed	                         Zd
S )TransitionalClassr  c                     t           S r{   )r  r   s    r?   
_d_defaultzTransitionalClass._d_defaultw
  s      rA   Fr   calls_superc                     dS ri   rP   r   s    r?   _calls_super_defaultz&TransitionalClass._calls_super_default~
  s    rrA   c                     || _         d S r{   )parent_superrI   s     r?   _calls_super_changedz&TransitionalClass._calls_super_changed
  s     #rA   	overridesc                     || _         d S r{   )parent_overriderI   s     r?   _overrides_changedz$TransitionalClass._overrides_changed
  s      &rA   N)rM   rN   rO   r   r  r*   r  r#  r   r  r!  r-   r.   r$  r'  r%  r(  rP   rA   r?   r  r  s
  s        AWS\\! ! \! L'!**KW]   W]# # ^ # O

IW[& & ^ & & &rA   r  c                   2     e Zd Zd ZdZ fdZdZd Z xZS )SubClassc                     t           S r{   )r*  r   s    r?   r  zSubClass._d_default
  s    rA   Fc                 \    d| _         t                                          |||           d S r+  )subclass_superrB  r$  )rJ   r6   r7   r8   r+  s       r?   r$  zSubClass._calls_super_changed
  s-    "$$T344444rA   c                     d| _         d S r+  )subclass_overriderV  s       r?   r(  zSubClass._overrides_changed
  s    !%rA   )	rM   rN   rO   r  r-  r$  r/  r(  rG  r  s   @r?   r*  r*  
  se           N5 5 5 5 5 & & & & & & &rA   r*  c                      t                      } d| _        | j        sJ | j        sJ d| _        | j        sJ | j        rJ | j        t           u sJ d S Nr   )r*  r  r#  r-  r%  r/  r'  r  r   s    r?   test_subclass_compatr3  
  sn    
**CCOCM    """"5HrA   c                   N    e Zd ZdZ e            Z ed          d             ZdS )DefinesHandlerFr	  c                     d| _         d S r+  )parent_calledrI   s     r?   handlerzDefinesHandler.handler
  s    !rA   N)rM   rN   rO   r7  r   r	  r-   r8  rP   rA   r?   r5  r5  
  sH        MGIIEWW" " " " "rA   r5  c                   :    e Zd ZdZ ed          d             ZdS )OverridesHandlerFr	  c                     d| _         d S r+  child_calledrI   s     r?   r8  zOverridesHandler.handler
       rA   N)rM   rN   rO   r=  r-   r8  rP   rA   r?   r:  r:  
  =        LWW! ! ! ! !rA   r:  c                  T    t                      } d| _        | j        sJ | j        rJ d S r1  )r:  r	  r=  r7  r2  s    r?   test_subclass_override_observerrA  
  s8    


CCI      rA   c                       e Zd ZdZd ZdS )DoesntRegisterHandlerFc                     d| _         d S r+  r<  rI   s     r?   r8  zDoesntRegisterHandler.handler
  s     rA   N)rM   rN   rO   r=  r8  rP   rA   r?   rC  rC  
  s(        L! ! ! ! !rA   rC  c                  T    t                      } d| _        | j        rJ | j        rJ dS )zISubclass that overrides observer and doesn't re-register unregisters bothr   N)rC  r	  r=  r7  r2  s    r?   %test_subclass_override_not_registeredrF  
  s8    

!
!CCI      rA   c                   :    e Zd ZdZ ed          d             ZdS )AddsHandlerFr	  c                     d| _         d S r+  r<  rI   s     r?   child_handlerzAddsHandler.child_handler
  r>  rA   N)rM   rN   rO   r=  r-   rJ  rP   rA   r?   rH  rH  
  r?  rA   rH  c                  T    t                      } d| _        | j        sJ | j        sJ d S r1  )rH  r	  r=  r7  r2  s    r?   test_subclass_add_observerrL  
  s6    
--CCIrA   c                  H    G d dt                     }  |             }i fd}|                    |ddh           d|_        d         j        dk    sJ d         j        dk    sJ d	|_        d         j        dk    sJ d         j        d	k    sJ  G d
 d          }|                    | |ddh                     d|_        d         j        dk    sJ d         j        dk    sJ d|_        d         j        dk    sJ d         j        dk    sJ d S )Nc                   6    e Zd Z e            Z e            ZdS )!test_observe_iterables.<locals>.CN)rM   rN   rO   r   r  r(   srP   rA   r?   r   rO  
  s$        GIIGIIrA   r   c                     | d<   d S )NrK   rP   )rK   recordeds    r?   recordz&test_observe_iterables.<locals>.record
  s    #rA   r  rP  )namesr   rK   hic                        e Zd Zd Zd Zd ZdS )+test_observe_iterables.<locals>.MyContainerc                     || _         d S r{   	container)rJ   rZ  s     r?   r  z4test_observe_iterables.<locals>.MyContainer.__init__
  s    &DNNNrA   c                 *    t          | j                  S r{   )iterrZ  r   s    r?   __iter__z4test_observe_iterables.<locals>.MyContainer.__iter__
  s    '''rA   c                     || j         v S r{   rY  )rJ   r  s     r?   __contains__z8test_observe_iterables.<locals>.MyContainer.__contains__
  s    $.((rA   N)rM   rN   rO   r  r]  r_  rP   rA   r?   MyContainerrW  
  sA        	' 	' 	'	( 	( 	(	) 	) 	) 	) 	)rA   r`  rb   ok)r   r-   r  r6   r8   rP  )r   r   rS  r`  rR  s       @r?   test_observe_iterablesrb  
  s       I    	
AH$ $ $ $ $ IIfS#JI'''
ACH"c))))H!Q&&&&
ACH"c))))H!T))))) ) ) ) ) ) ) ) IIfKKc
33I444
ACH"c))))H!R''''
ACH"c))))H!T))))))rA   c                      G d d          }  G d dt           |           } |ddddd	
          }|j        dk    sJ t          |d          rJ t          |d          rJ |j        dk    sJ |j        dd	dk    sJ d S )Nc                       e Zd Zd ZdS )&test_super_args.<locals>.SuperRecorderc                 "    || _         || _        d S r{   )
super_argssuper_kwargs)rJ   rD  rE  s      r?   r  z/test_super_args.<locals>.SuperRecorder.__init__  s    "DO &DrA   Nr  rP   rA   r?   SuperRecorderre    s#        	' 	' 	' 	' 	'rA   ri  c                   "    e Zd Z e            ZdS )'test_super_args.<locals>.SuperHasTraitsN)rM   rN   rO   r   r  rP   rA   r?   SuperHasTraitsrk            GIIrA   rl  a1a2rb   r   r   )r   r  r   r   r   )rn  ro  r   )r   r  r  rg  rh  )ri  rl  r   s      r?   test_super_argsrp  
  s    ' ' ' ' ' ' ' '
    M    .trQ#
6
6
6C5A:sC     sC     >\))))Rc22222222rA   c                       G d dt                     } dg}t          |          5   | dd          }d d d            n# 1 swxY w Y   |j        dk    sJ t          |d          rJ d S )Nc                   "    e Zd Z e            ZdS )+test_super_bad_args.<locals>.SuperHasTraitsN)rM   rN   rO   r   rZ   rP   rA   r?   rl  rs    rm  rA   rl  zPassing unrecognized argumentsr3   r   r   r   )r   r4   rZ   r  )rl  r   r   s      r?   test_super_bad_argsrt    s            
**A	1		 ' 'nqA&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '5A:sC       s   A  AAc                      G d dt                     }  G d d|           } G d d|           } G d d||          } G d	 d
||          } |            j        dk    sJ  |            j        dk    sJ  |            j        dk    sJ  |            j        dk    sJ  |            j        dk    sJ  |            j        dk    sJ dS )z%Verify that default values follow mroc                   (    e Zd Z ed          ZdZdS )test_default_mro.<locals>.BasebaseNrM   rN   rO   r(   r	  attrrP   rA   r?   Baserw  )  s         rA   r{  c                       e Zd ZdS )test_default_mro.<locals>.ANrE  rP   rA   r?   r[   r}  -          rA   r[   c                   (    e Zd Z ed          ZdZdS )test_default_mro.<locals>.Br   Nry  rP   rA   r?   r   r  0  s         rA   r   c                       e Zd ZdS )test_default_mro.<locals>.ABNrE  rP   rA   r?   ABr  4  r~  rA   r  c                       e Zd ZdS )test_default_mro.<locals>.BANrE  rP   rA   r?   BAr  7  r~  rA   r  rx  N)r   r	  rz  )r{  r[   r   r  r  s        r?   test_default_mror  &  sv       y       D       D       Q       Q    13391338v244:2449244:2449rA   c                  F     G d dt                     }  | d d           }d S )Nc                       e Zd Zd ZdS )!test_cls_self_argument.<locals>.Xc                     d S r{   rP   )_X__selfclsrJ   s      r?   r  z*test_cls_self_argument.<locals>.X.__init__D  s    DrA   Nr  rP   rA   r?   Xr  C  s#        	 	 	 	 	rA   r  )r  rJ   r  )r  r   s     r?   test_cls_self_argumentr  B  sF        I    	
dAAArA   c                  j     G d dt                     } d | _         |             }|j        dk    sJ d S )Nc                   *    e Zd Z ed          Zd ZdS ) test_override_default.<locals>.Chard defaultc                     dS Nzdefault methodrP   r   s    r?   
_a_defaultz+test_override_default.<locals>.C._a_defaultN  s    ##rA   N)rM   rN   rO   r(   rZ   r  rP   rA   r?   r   r  K  s2        GN##	$ 	$ 	$ 	$ 	$rA   r   c                     dS N
overriddenrP   r   s    r?   r-  z'test_override_default.<locals>.<lambda>Q       rA   r  r   r  rZ   r   r   s     r?   test_override_defaultr  J  s\    $ $ $ $ $I $ $ $ -,AL	A3,rA   c                  j     G d dt                     } d | _         |             }|j        dk    sJ d S )Nc                   L    e Zd Z ed          Z ed          d             ZdS )*test_override_default_decorator.<locals>.Cr  rZ   c                     dS r  rP   r   s    r?   r  z5test_override_default_decorator.<locals>.C._a_defaultZ      ##rA   NrM   rN   rO   r(   rZ   r*   r  rP   rA   r?   r   r  W  D        GN##		$ 	$ 
	$ 	$ 	$rA   r   c                     dS r  rP   r   s    r?   r-  z1test_override_default_decorator.<locals>.<lambda>^  r  rA   r  r  r  s     r?   test_override_default_decoratorr  V  s\    $ $ $ $ $I $ $ $ -,AL	A3,rA   c                  j     G d dt                     }  |             }d |_        |j        dk    sJ d S )Nc                   L    e Zd Z ed          Z ed          d             ZdS ))test_override_default_instance.<locals>.Cr  rZ   c                     dS r  rP   r   s    r?   r  z4test_override_default_instance.<locals>.C._a_defaultg  r  rA   Nr  rP   rA   r?   r   r  d  r  rA   r   c                     dS r  rP   r   s    r?   r-  z0test_override_default_instance.<locals>.<lambda>l  r  rA   r  r  r  s     r?   test_override_default_instancer  c  s\    $ $ $ $ $I $ $ $ 	
A,,AL3,rA   c                      ddl m }   G d dt                    } |d          }|j        dk    sJ  | |          }d|_        |j        dk    sJ |j        dk    sJ d S )Nr   )copyc                   "    e Zd Z e            ZdS )test_copy_HasTraits.<locals>.CNr$  rP   rA   r?   r   r  s  s        CEErA   r   r3   r  r   )r  r   rZ   )r  r   r   ccs       r?   test_copy_HasTraitsr  p  s        I    	
AA3!8OOO	aBBD4193!8OOOOOrA   c                    t          | t                    r| }n | d          }t          |t                    r|j        }n|j        }t          |          t
          u rqt          |t                    r\t          j	        |          5   ||          }|
                    t                      |           ddd           dS # 1 swxY w Y   dS  ||          }||k    sJ dS )zRun a test of trait.from_stringTrI  N)r|   r$   r  from_string_listfrom_stringr:   
issubclassr  r  r  r0   rR   )	traittyperP  expectedr	  castrl   s         r?   _from_string_testr    s7   )Y'' +	T***!T !% H~~ !*Xy"A"A !]8$$ 	9 	9DGGENN.00%888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 Q      s   .CC
Czs, expected))xyzr  r   r   )z"xx"xx)z'abc'r  NoneNc                 2    t          t          | |           d S r{   )r  r(   rP  r  s     r?   test_unicode_from_stringr        
 gq(+++++rA   c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_cunicode_from_stringr    s    
 h8,,,,,rA   ))r  s   xyz)r      1)zb"xx"s   xx)zb'abc's   abcr  c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_bytes_from_stringr        
 eQ)))))rA   c                 2    t          t          | |           d S r{   )r  r
   r  s     r?   test_cbytes_from_stringr    s    
 fa*****rA   r   )r   r3   )123{   z2.0r  c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_int_from_stringr    r  rA   )r   g      ?)z123.5g     ^@)z2.5g      @c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_float_from_stringr    r  rA   )z1+2jy      ?       @c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_complex_from_stringr    s     gq(+++++rA   )trueT)TRUET)r   T)r  F)FalseF)falseFz1.0c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_bool_from_stringr    s     dAx(((((rA   r  r   z{1: 2}r   z{"key": "value"}r  rl   c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_dict_from_stringr    s     dAx(((((rA   r  [1, 2, "x"]r3   r   r   r  c                 2    t          t          | |           d S r{   r  r   r  s     r?   test_list_from_stringr    s     dAx(((((rA   zs, expected, value_trait)r   r'  rH  r  TrI  Fc                 B    t          t          |          | |           d S r{   r  rP  r  r  s      r?   test_list_items_from_stringr    s$     d;''H55555rA   >   r   r3   r   z{1, 2, "x"}c                 2    t          t          | |           d S r{   r  r    r  s     r?   test_set_from_stringr    s     c1h'''''rA   >   r3   r   r   c                 B    t          t          |          | |           d S r{   r  r  s      r?   test_set_items_from_stringr    s$     c+&&844444rA   )r  rP   )z()rP   )r  r  )z(1, 2, "x")r  )r   r   c                 2    t          t          | |           d S r{   r  r%   r  s     r?   test_tuple_from_stringr  '  s     eQ)))))rA   zs, expected, value_traits)r  r{   c                 6    t          t          | | |           d S r{   r  )rP  r  value_traitss      r?   test_tuple_items_from_stringr  6  s!     e\*Ax88888rA   )r   r   )
mod.submodr  znot an identifierr  c                 2    t          t          | |           d S r{   )r  r   r  s     r?   test_object_from_stringr  D  s     &844444rA   )z127.0.0.1:8000)r  i@  )zhost.tld:80)zhost.tldr  zhost:notaportr  c                 2    t          t          | |           d S r{   )r  r!   r  s     r?   test_tcp_from_stringr  R  s     j!X.....rA   )r  r  c                 v    t          t          t                      t                      g          | |           d S r{   )r  r)   r   r(   r  s     r?   *test_union_of_list_and_unicode_from_stringr  `  s1    
 eTVVWYY/00!X>>>>>rA   )z1.5g      ?c                 v    t          t          t                      t                      g          | |           d S r{   )r  r)   r   r   r  s     r?   'test_union_of_int_and_float_from_stringr  h  s1    
 eSUUEGG,--q(;;;;;rA   zs, expected, allow_none)r  NTc                 z    t          t          t                      t                      g|          | |           d S )NrI  )r  r)   r   r   )rP  r  rJ  s      r?   'test_union_of_list_and_dict_from_stringr  p  s6    
 eTVVTVV,DDDaRRRRRrA   c                  j   t          t                    } | D ]v}t          t          |          }|                    d          sJt	          |t
                    r5t          |t                    r |t          j        vrt          | d          wt          j        D ]}|| vrt          | d          dS )z7Verify all trait types are added to `traitlets.__all__`r   z not in __all__z should be removed from __all__N)
dirr/   r   
startswithr|   r:   r  r$   __all__
ValueError)rT  r6   rl   s      r?   test_all_attributer  x  s    	NNE ; ;	4((s## 	;
5$(?(? 	;JuV_D`D` 	;9,, ; D!9!9!9:::! G Gu 	GEEEFFF	GG GrA   )r  r  r	  typingr  unittestr   r  r/   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r0   traitlets.utilsr2   	_warningsr4   r@   rC   rR   rU   r   r6  rL  r  r  rA  r  r  r  r  r  r  r  r  r  r$  r&  r(  r.  r9  r=  rE  rG  rK  rN  rP  rR  rT  rX  r[  r^  ra  rc  rf  ri  rl  ro  rq  rs  ru  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  markparametrizer  setr  r  r  r  r  r  r  r  r  r  r  r!  r$  r&  r-  r/  rI  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r*  r3  r5  r:  rA  rC  rF  rH  rL  rb  rp  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rP   rA   r?   <module>r     s   $ $  				           . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .^ ) ( ( ( ( ( ( ( ( ( ( (3 3 3+ + + + +I + + +# # # # #) # # #M M M M MH M M M`). ). ). ). ).X ). ). ).X+ + + + + + + +"@# @# @# @# @#( @# @# @#F}# }# }# }# }#8 }# }# }#@p( p( p( p( p(H p( p( p(pA* A* A* A* A*x A* A* A*Hp- p- p- p- p-8 p- p- p-f7! 7! 7! 7! 7!x 7! 7! 7!t21 21 21 21 21H 21 21 21j    y   
    =   $ $ $ $ $ $ $ $
! ! ! ! !] ! ! !    I   
           i   
! ! ! ! !- ! ! !    y   
    m   0    	       }       	   % % % % %x % % %    	   
    }   0    	       }       	       }                            	       9       (       9       -       9       -   # # # # # # # #
       .& & & & &) & & &
	 	 	 	 	 	 	 	" " " " "9 " " "
I I I I I- I I I(       
` ` ` ` ` ` ` `    9   
	 	 	 	 	- 	 	 	    i       ]   .$ $ $ $ $I $ $ $         =          i   I I I I I] I I I    	   
    }   	 	 	 	 	 	 	 	         I      
* * * * *= * * *. . . . .	 . . .
    }   *! ! ! ! !Y ! ! !
' ' ' ' ' ' ' '1 1 1 1 19 1 1 1
    -   < < < < < < < <
9 9 9 9 9] 9 9 9&    i   
9 9 9 9 9- 9 9 9&B B B B Bi B B B
D D D D D] D D D 
 

 

 

 
BZ%sCCEElT2J!wPRmT    	   
BZ%sCCEEl+    	       9   
" " " " "- " " "    	     D D D D Dy D D D
+ + + + +m + + +J J J J J) J J J
- - - - - - - -B B B B BI B B B
) ) ) ) )= ) ) )    i   W W W W W] W W W     B B B B B B B BJb; b; b; b; b;x b; b; b;J^+ ^+ ^+ ^+ ^+( ^+ ^+ ^+B3 3 3 3 3 3 3 3(   * * *Z    y   7 7 7 7 78 7 7 7
 
 
 
 
	 
 
 
  
# # # # #) # # #>) ) )K K K K K9 K K K
G G G G Gy G G G
@ @ @ @ @y @ @ @
< < < < <9 < < <	 	 	 	 	 	 	 		 	 	 	 	. 	 	 	H H H H H} H H HL L L L L= L L L    m   0    -   :10 10 10 10 10 10 10 10h  ", , ,& & & & &	 & & &:& & & & &  & & &   " " " " "Y " " "! ! ! ! !~ ! ! !! ! !! ! ! ! !N ! ! !! ! !! ! ! ! !. ! ! !  %* %* %*P3 3 3"! ! !  8  	 	 	
 
 

 
 
  ! ! !& RRR , ,	 , RRR - -	 - XXX * *	 * XXX + +	 + 	:,
0C^T , ,	 , 	:
$4lNS * *	 * 	j
 
, ,
 
, 	
	 ) ) ) 	r
	j	Aq6	eW-.	j
 
) )
 
) 	r
	$
sc3Z 
4	 ) ) ) 	)))WWYY/

GGII&
sc3Z+
D677d3334
F8WW6667	 	6 6	 	6 	ssuu	$	$
sc3Z 
4	 	( (	 	( 	)))WWYY/

GGII&
sc3Z+
D677d3334	 5 5 5 $$
sZ 
4
 
* *
 
* 	)ggiiGGII%FG

WWYYK(
sZ''))-
9ww%8889:
7WW55567	 	9 9	 	9 $	j)	 	5 5	 	5 /)	*%	j!	 	/ /	 	/ 
BZ ? ?	 ? | < <	 < 
Br5)FJ+FH\] S S	 SG G G G GrA   