
    _d4                       d 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-m.Z.m/Z/m0Z0m1Z1mZm2Z2 ddl3m4Z4 ddl5m6Z6 d Z7 G d	 d
e      Z8 G d de      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$eC      ZE G d% d&e      ZF G d' d(eC      ZG G d) d*e      ZH G d+ d,eC      ZI G d- d.e      ZJ G d/ d0eC      ZK G d1 d2e      ZL G d3 d4eC      ZM G d5 d6e      ZN G d7 d8eC      ZO G d9 d:e      ZP G d; d<eO      ZQ G d= d>e      ZR G d? d@eC      ZS G dA dBe      ZT G dC dDeC      ZU G dE dFe      ZV G dG dHeC      ZW G dI dJe      ZX G dK dLeC      ZY G dM dNe      ZZ G dO dPeY      Z[ G dQ dRe      Z\ G dS dTeS      Z] G dU dVe      Z^ G dW dXeC      Z_ G dY dZe      Z` G d[ d\eC      Za G d] d^e      Zb G d_ d`eC      Zc G da dbe      Zd G dc ddeC      Ze G de dfe      Zf G dg dheC      Zg G di dje      Zh G dk dleC      Zi G dm dne      Zj G do dpeC      Zk G dq dre      Zl G ds dteC      Zm G du dve      Zn G dw dxeC      Zo G dy dze      Zp G d{ d|eC      Zq G d} d~e      Zr G d deC      Zs G d d      Zt G d de      Zu G d deC      Zv G d de      Zw G d deC      Zx G d de      Zy G d deC      Zz G d de      Z{ G d deC      Z| G d de      Z} G d deC      Z~ G d de      Z G d deC      Z G d de      Z G d deC      Zej                  j	                  dee(e#eee+f      d        Zej                  j	                  deg fe(dfe# e       fei fedfe+dff      d        Zej                  j	                  deg fe(dfe# e       ff      d        Z G d de      Z G d deC      Z G d de      Zd Z G d de      Z G d deC      Z G d de      Z G d deC      Z G d de      Z G d deC      Z G d de      Z G d deC      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ބ deC      Z G d deC      Z G d deC      Z G d deC      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                  j	                  dg d      d        Zej                  j	                  dg d      d        Zej                  j	                  dg d      d	        Zej                  j	                  dg d      d
        Zej                  j	                  ddefdddefdg      d        Zej                  j	                  ddefddddg      d        Zej                  j	                  ddefdddddg      d        Zej                  j	                  ddddddddefdg      d        Zej                  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                  j	                  dd'g fd(g d)fd dgd dgfd*gdfg      d+        Zej                  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                  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                  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                  j	                  dd8d9d:d;d dgd<fd*gdfg      d=        Zej                  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                  j	                  ddBdCdDe&fdEdg      dF        Zej                  j	                  ddGdHdIefdJefdg      dK        Zej                  j	                  dd'g fdLg      dM        Zej                  j	                  dddNg      dO        Zej                  j	                  dPd'g d1fdi d1fd*e&d1fdQg      dR        ZאdS Zy(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                  0    d}t        t        ||             S )N)nameoldnewownertype)dictzip)ordered_valueschange_namess     @/usr/lib/python3/dist-packages/traitlets/tests/test_traitlets.pychange_dictr@   C   s    :LL.122    c                       e Zd Zd Zy)HasTraitsStubc                 T    |d   | _         |d   | _        |d   | _        |d   | _        y )Nr6   r7   r8   r:   )_notify_name_notify_old_notify_new_notify_typeselfchanges     r?   notify_changezHasTraitsStub.notify_changeN   s2    "6N!%=!%="6NrA   N)__name__
__module____qualname__rL    rA   r?   rC   rC   M   s    +rA   rC   c                       e Zd ZdZy)CrossValidationStubFN)rM   rN   rO   _cross_validation_lockrP   rA   r?   rR   rR   U   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y)TestTraitTypec                 X     G d dt               } |       }|j                  t        u sJ y )Nc                       e Zd ZeZy)+TestTraitType.test_get_undefined.<locals>.ANrM   rN   rO   r$   arP   rA   r?   ArX   `       ArA   r[   )r   rZ   r'   rJ   r[   rZ   s      r?   test_get_undefinedz TestTraitType.test_get_undefined_   s)    		 	 CssirA   c                 &    G d dt               } |       }d|_        | j                  |j                  d       | j                  |j                  d       | j                  |j                  t
               | j                  |j                  d       y )Nc                       e Zd ZeZy)!TestTraitType.test_set.<locals>.ANrY   rP   rA   r?   r[   ra   g   r\   rA   r[   
   rZ   )rC   rZ   assertEqualrE   rF   r'   rG   r]   s      r?   test_setzTestTraitType.test_setf   sn    	 	 Cb!-	2+rA   c                      G d dt                G fddt              } |       }d|_        | j                  |j                  d       y )Nc                       e Zd Zd Zy))TestTraitType.test_validate.<locals>.MyTTc                      yNrP   )rJ   instvalues      r?   r0   z2TestTraitType.test_validate.<locals>.MyTT.validates       rA   NrM   rN   rO   r0   rP   rA   r?   MyTTrg   r       rA   ro   c                       e Zd ZW  Zy)&TestTraitType.test_validate.<locals>.ANrM   rN   rO   tt)ro   s   r?   r[   rr   v   s    BrA   r[   rb   rj   )r$   rC   rt   rc   )rJ   r[   rZ   ro   s      @r?   test_validatezTestTraitType.test_validateq   s?    	9 		 	 Cr"rA   c                      G d dt                G fddt              } |       }| j                  |j                  d        G fddt              }| j	                  t
        t         |       d       y )	Nc                       e Zd Zd Zy)4TestTraitType.test_default_validate.<locals>.MyIntTTc                 L    t        |t              r|S | j                  ||       y N)
isinstanceinterror)rJ   objrl   s      r?   r0   z=TestTraitType.test_default_validate.<locals>.MyIntTT.validate   s    eS) L

3&rA   Nrn   rP   rA   r?   MyIntTTrx   ~   s    'rA   r   c                        e Zd Z W  d      Zy).TestTraitType.test_default_validate.<locals>.Arb   Nrs   r   s   r?   r[   r      s    BrA   r[   rb   c                        e Zd Z W  d      Zy).TestTraitType.test_default_validate.<locals>.Bbad defaultNrs   r   s   r?   Br      s    'BrA   r   rt   )r$   r   rc   rt   assertRaisesr#   getattr)rJ   r[   rZ   r   r   s       @r?   test_default_validatez#TestTraitType.test_default_validate}   s\    	'i 	'		 	 Cr"	(	 	( 	*gqsD9rA   c                      G d dt               } |       }| j                  |j                  j                         d       y )Nc                       e Zd ZeZy)"TestTraitType.test_info.<locals>.ANrM   rN   rO   r$   rt   rP   rA   r?   r[   r      s    BrA   r[   z	any value)r   rc   rt   infor]   s      r?   	test_infozTestTraitType.test_info   s1    		 	 Ck2rA   c                      G d dt               } |       }| j                  t        |j                  j                  |d       y )Nc                       e Zd Z e       Zy)#TestTraitType.test_error.<locals>.ANr   rP   rA   r?   r[   r      s	    BrA   r[   rb   )r   r   r#   rt   r}   r]   s      r?   
test_errorzTestTraitType.test_error   s3    		 	 C*addjj!R8rA   c                     G d dt               } G d d|      } G d d|      } |       }| j                  |j                  i        | j                  |j                  d       | j                  |j                  ddi        |       }| j                  |j                  d	       | j                  |j                  dd	i        |       }| j                  |j                  i        | j                  |j                  d
       | j                  |j                  dd
i        |       } |       }| j                  |j                  i        | j                  |j                  d       | j                  |j                  ddi       y )Nc                   "    e Zd Z ed      Zd Zy)<TestTraitType.test_deprecated_dynamic_initializer.<locals>.Arb   c                      yN   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      s    BArA   r[   c                       e Zd Z ed      Zy)<TestTraitType.test_deprecated_dynamic_initializer.<locals>.B   NrM   rN   rO   r   r   rP   rA   r?   r   r          BArA   r   c                       e Zd Zd Zy)<TestTraitType.test_deprecated_dynamic_initializer.<locals>.Cc                      y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   r   r   r   r   r   rc   _trait_valuesr   rJ   r[   r   r   rZ   bcs          r?   #test_deprecated_dynamic_initializerz1TestTraitType.test_deprecated_dynamic_initializer   s9   		 		 		 	 C"-b!3)4Cb!3)4C"-b!3)4 CC"-b!3)4rA   c                 @   t        g       5   G d dt              } |       }d|_        d d d        j                  dk(  sJ t        ddg      5 } G d dt              } |       }d|_        d d d        |j                  dk(  sJ y # 1 sw Y   _xY w# 1 sw Y   'xY w)Nc                   n    e Zd Z e       Z ed      d        Z ed      d        Z e	d      d        Z
y)CTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarnr   c                      yNrb   rP   r   s    r?   r   zNTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarn._x_default   s    rA   c                     |j                   S rz   rl   rJ   proposals     r?   _x_validatezOTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarn._x_validate   s    #>>)rA   c                      y rz   rP   rI   s     r?   
_x_changedzNTestTraitType.test_deprecated_method_warnings.<locals>.ShouldntWarn._x_changed   s    rA   N)rM   rN   rO   r   r   r*   r   r0   r   r-   r   rP   rA   r?   ShouldntWarnr      sO    I  #* *  rA   r      z	@validatez@observec                   ,    e Zd Z e       Zd Zd Zd Zy)ATestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarnc                      yr   rP   r   s    r?   r   zLTestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarn._x_default   s    rA   c                     |S rz   rP   )rJ   rl   _s      r?   r   zMTestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarn._x_validate   s     LrA   c                      y rz   rP   r   s    r?   r   zLTestTraitType.test_deprecated_method_warnings.<locals>.ShouldWarn._x_changed   s    rA   N)rM   rN   rO   r   r   r   r   r   rP   rA   r?   
ShouldWarnr      s    I!rA   r   )r4   r   r   )rJ   r   r~   wr   s        r?   test_deprecated_method_warningsz-TestTraitType.test_deprecated_method_warnings   s    r" 	y  .CCE%	( uuzzZ89 	Q
Y 
 ,CCE	" uuzzO	 	,	 	s   BBBBc                     G d dt               } G d d|      } G d d|      } |       }| j                  |j                  i        | j                  |j                  d       | j                  |j                  ddi        |       }| j                  |j                  d	       | j                  |j                  dd	i        |       }| j                  |j                  i        | j                  |j                  d
       | j                  |j                  dd
i        |       } |       }| j                  |j                  i        | j                  |j                  d       | j                  |j                  ddi       y )Nc                   8    e Zd Z ed      Z ed      d        Zy)1TestTraitType.test_dynamic_initializer.<locals>.Arb   r   c                      yr   rP   r   s    r?   
_default_xz<TestTraitType.test_dynamic_initializer.<locals>.A._default_x       rA   N)rM   rN   rO   r   r   r*   r   rP   rA   r?   r[   r      s!    BAS\ rA   r[   c                       e Zd Z ed      Zy)1TestTraitType.test_dynamic_initializer.<locals>.Br   Nr   rP   rA   r?   r   r      r   rA   r   c                   (    e Zd Z ed      d        Zy)1TestTraitType.test_dynamic_initializer.<locals>.Cr   c                      y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      s    S\ rA   r   r   r   r   r   r   r   s          r?   test_dynamic_initializerz&TestTraitType.test_dynamic_initializer   s9   		 		 		 	
 C"-b!3)4Cb!3)4C"-b!3)4 CC"-b!3)4rA   c                      G d dt               } |d      j                  dd      }| j                  |j                  dddd       y )	Nc                       e Zd ZdddZy)0TestTraitType.test_tag_metadata.<locals>.MyIntTTr3      rZ   r   NrM   rN   rO   metadatarP   rA   r?   r   r         Q'HrA   r   rb         r   r   r3   )rZ   r   r   )r$   tagrc   r   )rJ   r   rZ   s      r?   test_tag_metadatazTestTraitType.test_tag_metadata  sA    	(i 	( BKOOa1O%111%=>rA   c                      G d dt               } |d      } |d      }d|j                  d<   | j                  d|j                         y )Nc                       e Zd ZdddZy)?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  sC    	(i 	( BKBK

3ajj)rA   c                     G d dt               } |       }| j                  |j                  dd      d        | j                  |j                  dd      d       i |_        | j                  |j                  dd      d       | j                  |j                  dd      d       d	|_        | j                  |j                  dd      d	       | j                  |j                  dd      d       y )
Nc                       e Zd Z e       j	                  d       e       j	                  dd      z  j	                  d      Zy)	.TestTraitType.test_union_metadata.<locals>.Foor3   )tar   r   )r   tirZ   )r   N)rM   rN   rO   r   r   r   barrP   rA   r?   Foor     s5    5999?TVZZ1Z%==BBcBJCrA   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 e 	++E48$?++E48#>++E48!<++E48#>++E48!<++E48#>rA   c                 h     G d dt               } |       }| j                  |j                  d       y )Nc                   8    e Zd Z e e        e       gd      Zy)3TestTraitType.test_union_default_value.<locals>.Foor3   default_valueNrM   rN   rO   r)   r   r   r   rP   rA   r?   r   r   /  s    q9CrA   r   r3   r   rc   r   r   s      r?   test_union_default_valuez&TestTraitType.test_union_default_value.  s+    	:) 	: e!$rA   c                 v     G d dt               } |       }d|_        | j                  |j                  d       y )Nc                   4    e Zd Z e e        e       g      Zy)9TestTraitType.test_union_validation_priority.<locals>.FooN)rM   rN   rO   r)   r   r(   r   rP   rA   r?   r   r   6  s    +,CrA   r   1r3   )r   r   rc   r   s      r?   test_union_validation_priorityz,TestTraitType.test_union_validation_priority5  s2    	-) 	- e!$rA   c                 d     G d dt               }| j                   |       j                  i        y )Nc                   4    e Zd Z e e        e       g      Zy)9TestTraitType.test_union_trait_default_value.<locals>.FooNr   rP   rA   r?   r   r   ?  s    (CrA   r   r   )rJ   r   s     r?   test_union_trait_default_valuez,TestTraitType.test_union_trait_default_value>  s&    	)) 	) 	B'rA   c                     G d dt               } |d      }t        dgdz        5  |j                  dd       |j                  d      }d d d        | j	                  d       t        dgdz        5  |j                  d	d
       |j                  d	      }d d d        | j	                  |d
       y # 1 sw Y   ixY w# 1 sw Y   (xY w)Nc                       e Zd ZdddZy)>TestTraitType.test_deprecated_metadata_access.<locals>.MyIntTTr3   r   r   Nr   rP   rA   r?   r   r  E  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_accessD  s    	(i 	( BK PQTUUV 	&NN5'*u%A	& 	G$ HIAMN 	'NN6;/v&A	' 	K(	& 	&	' 	's   $B34$B?3B<?Cc                 d    t        dg      5   G d dt              }d d d        y # 1 sw Y   y xY w)N#Traits should be given as instancesc                       e Zd ZeZy)4TestTraitType.test_trait_types_deprecated.<locals>.CN)rM   rN   rO   r   trP   rA   r?   r   r  U  s    rA   r   r4   r   rJ   r   s     r?   test_trait_types_deprecatedz)TestTraitType.test_trait_types_deprecatedR  s/     EFG 	I 	 	 	   &/c                 d    t        dg      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr	  c                       e Zd Z ee      Zy)9TestTraitType.test_trait_types_list_deprecated.<locals>.CN)rM   rN   rO   r   r   r  rP   rA   r?   r   r  [      IrA   r   r  r  s     r?    test_trait_types_list_deprecatedz.TestTraitType.test_trait_types_list_deprecatedX  /     EFG 	I 	 	 	r  c                 d    t        dg      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr	  c                       e Zd Z ee      Zy):TestTraitType.test_trait_types_tuple_deprecated.<locals>.CN)rM   rN   rO   r%   r   r  rP   rA   r?   r   r  a  s    #JrA   r   r  r  s     r?   !test_trait_types_tuple_deprecatedz/TestTraitType.test_trait_types_tuple_deprecated^  s/     EFG 	I 	 	 	r  c                 d    t        dg      5   G d dt              }d d d        y # 1 sw Y   y xY w)Nr	  c                       e Zd Z ee      Zy)9TestTraitType.test_trait_types_dict_deprecated.<locals>.CN)rM   rN   rO   r   r   r  rP   rA   r?   r   r  g  r  rA   r   r  r  s     r?    test_trait_types_dict_deprecatedz.TestTraitType.test_trait_types_dict_deprecatedd  r  r  N)rM   rN   rO   r^   rd   ru   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  rP   rA   r?   rU   rU   ^   si     	,
#:&395B)V!5F?*? %%()rA   rU   c                       e Zd Zd Zd Zy)TestHasDescriptorsMetac                    | j                  t        t              t                G d dt              } |       }| j                  t        |j                        t               | j                  |j
                  d       d|_        | j                  |j
                  d        G d dt              } |       }| j                  |j                  d       d|_        | j                  |j                  d        G d dt              } |       }| j                  |j                  d	       d|_        | j                  |j                  d       y )
Nc                       e Zd Z e       Zy)0TestHasDescriptorsMeta.test_metaclass.<locals>.ANrM   rN   rO   r   rZ   rP   rA   r?   r[   r#  o  	    ArA   r[   r   rb   c                       e Zd Z e       Zy)0TestHasDescriptorsMeta.test_metaclass.<locals>.BN)rM   rN   rO   r   r   rP   rA   r?   r   r'  x  r%  rA   r   c                       e Zd Z ed      Zy)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_metaclassl  s    i-8		 	 Cakk*M:a b!		 	 Ca b!		 	 Cb!b!rA   c                 h    G d dt               } G d d|      }| j                  |j                  j                  |       | j                  |j                  j                  |       | j                  |j                  j                  |       | j                  |j
                  j                  |       y )Nc                   (    e Zd Z e       Z e       Zy)1TestHasDescriptorsMeta.test_this_class.<locals>.AN)rM   rN   rO   r"   r  rt   rP   rA   r?   r[   r/    s    ABrA   r[   c                   (    e Zd Z e       Z e       Zy)1TestHasDescriptorsMeta.test_this_class.<locals>.BN)rM   rN   rO   r"   rt   tttrP   rA   r?   r   r1    s    B&CrA   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   k  s    "8.rA   r   c                       e Zd Zd Zy)TestHasDescriptorsc                 X     G d dt                G fddt              } |d      }y )Nc                       e Zd Zd Zy)=TestHasDescriptors.test_setup_instance.<locals>.FooDescriptorc                     |j                   }y rz   r   )rJ   rk   r   s      r?   instance_initzKTestHasDescriptors.test_setup_instance.<locals>.FooDescriptor.instance_init  s    hhrA   N)rM   rN   rO   r<  rP   rA   r?   FooDescriptorr9    s    rA   r=  c                   0     e Zd Z W        Z fdZ xZS )ATestHasDescriptors.test_setup_instance.<locals>.HasFooDescriptorsc                 R    |j                  dd       | _        t        |   |i | y )Nr   )getr   supersetup_instance)rJ   argskwargsr+  s      r?   rC  zPTestHasDescriptors.test_setup_instance.<locals>.HasFooDescriptors.setup_instance  s'    !::eT2&77rA   )rM   rN   rO   fdrC  __classcell__)r+  r=  s   @r?   HasFooDescriptorsr?    s    B8 8rA   rH  r   r;  )r   r   )rJ   rH  hfdr=  s      @r?   test_setup_instancez&TestHasDescriptors.test_setup_instance  s'    	N 		8 	8  E*rA   N)rM   rN   rO   rJ  rP   rA   r?   r6  r6    s    +rA   r6  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestHasTraitsNotifyc                      g | _         g | _        y rz   _notify1_notify2r   s    r?   setUpzTestHasTraitsNotify.setUp      rA   c                 @    | j                   j                  |||f       y rz   rO  appendrJ   r6   r7   r8   s       r?   notify1zTestHasTraitsNotify.notify1      dC-.rA   c                 @    | j                   j                  |||f       y rz   rP  rU  rV  s       r?   notify2zTestHasTraitsNotify.notify2  rX  rA   c                     G d dt               } |       }|j                  | j                         d|_        | j	                  t        | j                        d       d|_        | j	                  t        | j                        d       d|_        | j                  d| j                  v        d|_        | j                  d| j                  v        | j                  t        t        |d	d
       | j                  t        t        |dd
       g | _        |j                  | j                  d       d|_        d|_        | j	                  t        | j                        d       y )Nc                   (    e Zd Z e       Z e       Zy).TestHasTraitsNotify.test_notify_all.<locals>.ANrM   rN   rO   r   rZ   r   r   rP   rA   r?   r[   r^        AArA   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  s   		 	 C	$,,'T]]+Q/T]]+Q/56(DMM9:*gq#|D*gq#|D	$,,t4T]]+Q/rA   c                 B    G d dt               } |       }|j                  | j                  d       d|_        | j	                  t        | j                        d       d|_        | j                  d| j                  v        | j                  t        t        |dd       y )Nc                   (    e Zd Z e       Z e       Zy).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}    		 	 C	$,,,T]]+Q/56*gq#|DrA   c                 B    G d dt               } G d d|      } |       }| j                  |j                  d       | j                  |j                  d       d|_        d|_        | j                  |j                  d       | j                  |j                  d       y )	Nc                       e Zd Z e       Zy),TestHasTraitsNotify.test_subclass.<locals>.ANr$  rP   rA   r?   r[   rt    r%  rA   r[   c                       e Zd Z e       Zy),TestHasTraitsNotify.test_subclass.<locals>.BNrM   rN   rO   r   r   rP   rA   r?   r   rv    	    ArA   r   r   ra  d         Y@r   rc   rZ   r   rJ   r[   r   r   s       r?   test_subclassz!TestHasTraitsNotify.test_subclass      		 		 	 Ca c"c"e$rA   c                     G d dt               } G d d|      } |       }|j                  | j                  d       |j                  | j                  d       d|_        d|_        | j                  t        | j                        d       | j                  t        | j                        d       d	|_        d
|_        | j                  d| j                  v        | j                  d| j                  v        y )Nc                       e Zd Z e       Zy)3TestHasTraitsNotify.test_notify_subclass.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   c                       e Zd Z e       Zy)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    		 		 	 C	$,,,	$,,,T]]+Q/T]]+Q/56(DMM9:rA   c                     G d dt               } |       }d|_        | j                  t        |j                        d       d|_        | j                  d|j                  v         G d d|      } |       }d|_        d|_        | j                  d|j                  v        | j                  d	|j                  v        y )
Nc                   $    e Zd Z e       Zg Zd Zy)1TestHasTraitsNotify.test_static_notify.<locals>.Ac                 @    | j                   j                  |||f       y rz   rT  rV  s       r?   
_a_changedz<TestHasTraitsNotify.test_static_notify.<locals>.A._a_changed      $$dC%56rA   N)rM   rN   rO   r   rZ   rO  r  rP   rA   r?   r[   r    s    AH7rA   r[   r   rb   rb  c                   $    e Zd Z e       Zg Zd Zy)1TestHasTraitsNotify.test_static_notify.<locals>.Bc                 @    | j                   j                  |||f       y rz   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    s    AH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 CQZZ!,

23	7 	7 C

23(AJJ67rA   c                      fd} fd} fd} fd} fd} G d dt               } |       }|j                  |d       d	|_         j                   j                  d
       |j                  |dd       |j                  |d       d|_         j                   j                  d       |j                  |dd       |j                  |d       d|_         j                   j                  d       |j                  |dd       |j                  |d       d|_         j                   j                  d       |j                  |dd       |j                  |d       d|_         j                   j                  ddd|f        j                  t        |j                  d   d         d       |j                  |dd        j                  t        |j                  d   d         d       y )Nc                      d _         y NrP   cbr   s   r?   	callback0z7TestHasTraitsNotify.test_notify_args.<locals>.callback0  
    DGrA   c                     | f_         y rz   r  )r6   rJ   s    r?   	callback1z7TestHasTraitsNotify.test_notify_args.<locals>.callback1  s    gDGrA   c                     | |f_         y rz   r  )r6   r8   rJ   s     r?   	callback2z7TestHasTraitsNotify.test_notify_args.<locals>.callback2  s    SkDGrA   c                     | ||f_         y rz   r  )r6   r7   r8   rJ   s      r?   	callback3z7TestHasTraitsNotify.test_notify_args.<locals>.callback3  s    S#&DGrA   c                     | |||f_         y rz   r  )r6   r7   r8   r~   rJ   s       r?   	callback4z7TestHasTraitsNotify.test_notify_args.<locals>.callback4"  s    S#s+DGrA   c                       e Zd Z e       Zy)/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   			"	'	,		 	 C	)S)"%	)S6	)S)&)	)S6	)S)+.	)S6	)S)"45	)S6	)S)3vq"9:Q//4X>?C	)S6Q//4X>?CrA   c                     G d dt               } G d d|      } |       }|xj                  dz  c_        | j                  |j                  |j                         | j                  |j                  |j
                         |xj                  dz  c_        | j                  |j                  |j                         | j                  |j                  |j
                         y )Nc                   >     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                 ^    t        |   di | | j                  | j                  dg       y NrZ   rP   )rB  __init__ri  	listener1rJ   rE  r+  s     r?   r  z=TestHasTraitsNotify.test_notify_only_once.<locals>.A.__init__L  s)     *6*$$T^^cU;rA   c                 .    | xj                   dz  c_         y Nr3   r   rV  s       r?   r  z>TestHasTraitsNotify.test_notify_only_once.<locals>.A.listener1P      !rA   
rM   rN   rO   	listen_tor   rZ   r   r  r  rG  r+  s   @r?   r[   r  F  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                 Z    t        |   di | | j                  | j                         y r  )rB  r  ri  	listener2r  s     r?   r  z=TestHasTraitsNotify.test_notify_only_once.<locals>.B.__init__X  s%     *6*$$T^^4rA   c                 .    | xj                   dz  c_         y r  r   rV  s       r?   r  z>TestHasTraitsNotify.test_notify_only_once.<locals>.B.listener2\  r  rA   c                 .    | xj                   dz  c_         y r  drV  s       r?   r  z?TestHasTraitsNotify.test_notify_only_once.<locals>.B._a_changed_  r  rA   )	rM   rN   rO   r   r  r  r  r  rG  r  s   @r?   r   r  S  s    AA5rA   r   r3   r   rZ   rc   r   r   r  r|  s       r?   test_notify_only_oncez)TestHasTraitsNotify.test_notify_only_onceE  s    		 		 	 C	qacc"acc"	qacc"acc"rA   NrM   rN   rO   rQ  rW  r[  rm  rq  r}  r  r  r  r  rP   rA   r?   rL  rL    s7    //0.E%;&88.D`##rA   rL  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestObserveDecoratorc                      g | _         g | _        y rz   rN  r   s    r?   rQ  zTestObserveDecorator.setUpl  rR  rA   c                 :    | j                   j                  |       y rz   rT  rI   s     r?   rW  zTestObserveDecorator.notify1p      V$rA   c                 :    | j                   j                  |       y rz   rZ  rI   s     r?   r[  zTestObserveDecorator.notify2s  r  rA   c                      G d dt               } |       }|j                  | j                         d|_        | j	                  t        | j                        d       d|_        | j	                  t        | j                        d       d|_        t        ddd|d      }| j                  || j                  v        d|_        t        d	dd|d      }| j                  || j                  v        | j                  t        t        |dd
       | j                  t        t        |d	d
       g | _        |j                  | j                         d|_        d|_        | j	                  t        | j                        d       y )Nc                   (    e Zd Z e       Z e       Zy)/TestObserveDecorator.test_notify_all.<locals>.ANr_  rP   rA   r?   r[   r  w  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_allv  s-   		 	 C			$,,T]]+Q/T]]+Q/S!RH5$--/0S#tQ9$--/0*gq#|D*gq#|D	DLL!T]]+Q/rA   c                 `    G d dt               } |       }|j                  | j                  d       d|_        | j	                  t        | j                        d       d|_        t        ddd|d      }| j                  || j                  v        | j                  t        t        |dd       y )Nc                   (    e Zd Z e       Z e       Zy)/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    		 	 C			$,,$T]]+Q/S!RH5$--/0*gq#|DrA   c                 B    G d dt               } G d d|      } |       }| j                  |j                  d       | j                  |j                  d       d|_        d|_        | j                  |j                  d       | j                  |j                  d       y )	Nc                       e Zd Z e       Zy)-TestObserveDecorator.test_subclass.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   c                       e Zd Z e       Zy)-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                 2    G d dt               } G d d|      } |       }|j                  | j                  d       |j                  | j                  d       d|_        d|_        | j                  t        | j                        d       | j                  t        | j                        d       d	|_        d
|_        t        ddd	|d      }| j                  || j                  v        t        ddd
|d      }| j                  || j                  v        y )Nc                       e Zd Z e       Zy)4TestObserveDecorator.test_notify_subclass.<locals>.ANr$  rP   rA   r?   r[   r    r%  rA   r[   c                       e Zd Z e       Zy)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  s    		 		 	 C			$,,$			$,,$T]]+Q/T]]+Q/S!RH5$--/0S#tQ9$--/0rA   c                     G d dt               } |       }d|_        | j                  t        |j                        d       d|_        t        ddd|d      }| j                  ||j                  v        d|_        | j                  t        |j                        d       t        d	dd|d      }| j                  ||j                  v         G d
 d|      } |       }d|_        d|_        t        ddd|d      }| j                  ||j                  v        t        d	dd|d      }| j                  ||j                  v        y )Nc                   h    e Zd Z e       Z e       Zg Zg Z ed      d        Z	 ee
      d        Zy)2TestObserveDecorator.test_static_notify.<locals>.ArZ   c                 :    | j                   j                  |       y rz   rT  rI   s     r?   r  z=TestObserveDecorator.test_static_notify.<locals>.A._a_changed      $$V,rA   c                 :    | j                   j                  |       y rz   )_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    sH    AAHKS\- - S\0 0rA   r[   r   rb   rZ   rK   r3   r   r   c                   :    e Zd Z e       Zg Z ed      d        Zy)2TestObserveDecorator.test_static_notify.<locals>.Br   c                 :    | j                   j                  |       y rz   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    s$    AHS\- -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 CQZZ!,S!RH5!**,-Q]]+Q/S!Q84!--/0	- 	- CS!RH5!**,-S#tQ9!**,-rA   c                 ,     fd} fd} G d dt               } |       }|j                  |d       d|_         j                   j                  d       |j                  |d       |j                  |d       d|_        t        ddd|d	      } j                   j                  |        j                  t        |j                  d   d	         d
       |j                  |d        j                  t        |j                  d   d	         d       y )Nc                      d _         y r  r  r   s   r?   r  z8TestObserveDecorator.test_notify_args.<locals>.callback0  r  rA   c                     | _         y rz   r  )rK   rJ   s    r?   r  z8TestObserveDecorator.test_notify_args.<locals>.callback1  s
    DGrA   c                       e Zd Z e       Zy)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  s    				 	 C	)S)"%	Is#			)S!S"c1h7&)Q//4X>?C	Is#Q//4X>?CrA   c                     G d dt               } G d d|      } |       }|xj                  dz  c_        | j                  |j                  |j                         | j                  |j                  |j
                         |xj                  dz  c_        | j                  |j                  |j                         | j                  |j                  |j
                         y )Nc                   >     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                 ^    t        |   di | | j                  | j                  dg       y r  )rB  r  r-   r  r  s     r?   r  z>TestObserveDecorator.test_notify_only_once.<locals>.A.__init__  s'     *6*T^^cU3rA   c                 .    | xj                   dz  c_         y 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rA   r[   c                   H     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                 Z    t        |   di | | j                  | j                         y 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_         y r  r  rI   s     r?   r  z?TestObserveDecorator.test_notify_only_once.<locals>.B.listener2  r  rA   rZ   c                 .    | xj                   dz  c_         y 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    s/    AA- S\ rA   r   r3   r  r|  s       r?   r  z*TestObserveDecorator.test_notify_only_once  s    		 		 	  C	qacc"acc"	qacc"acc"rA   Nr  rP   rA   r?   r  r  k  s7    %%02E%1*(.TD2$#rA   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestHasTraitsc                 \    G d dt               } |       }| j                  t        |j                               ddg       | j                  t        |j	                               ddg       | j                  |j                  d             | j                  |j                  d             y )Nc                   (    e Zd Z e       Z e       Zy))TestHasTraits.test_trait_names.<locals>.ANrM   rN   rO   r   ir   frP   rA   r?   r[   r  -  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_names,  s    		 	 C03*= 3 3 56c
CC()S)*rA   c                 V    G d dt               } |       }| j                  |j                  d             | j                  |j                  d             d|_        |j                   | j                  |j                  d             | j                  |j                  d             y )Nc                   (    e Zd Z e       Z e       Zy)-TestHasTraits.test_trait_has_value.<locals>.ANr  rP   rA   r?   r[   r  8  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_value7  s    		 	 C**3/0**3/0	))#./))#./rA   c                     t        dg      5   G d dt              }d d d                }| j                  |j                  dd      d       y # 1 sw Y   3xY w)N1metadata should be set using the \.tag\(\) methodc                       e Zd Z ed      Zy)7TestHasTraits.test_trait_metadata_deprecated.<locals>.AMY_VALUE
config_keyNrM   rN   rO   r   r  rP   rA   r?   r[   r
  G  s    :.rA   r[   r  r  r  )r4   r   rc   r   r]   s      r?   test_trait_metadata_deprecatedz,TestHasTraits.test_trait_metadata_deprecatedD  sU     TUV 	//I /	/
 C))#|<jI	/ 	/s   AAc                 t     G d dt               } |       }| j                  |j                  dd      d       y )Nc                   :    e Zd Z e       j	                  d      Zy),TestHasTraits.test_trait_metadata.<locals>.Ar  r  N)rM   rN   rO   r   r   r  rP   rA   r?   r[   r  N  s    		Z	0ArA   r[   r  r  r  r   rc   r   r]   s      r?   test_trait_metadataz!TestHasTraits.test_trait_metadataM  s4    	1	 	1 C))#|<jIrA   c                      G d dt               } |       }| j                  |j                  dd      d        | j                  |j                  ddd      d       y )Nc                       e Zd Z e       Zy)4TestHasTraits.test_trait_metadata_default.<locals>.ANr  rP   rA   r?   r[   r  U  r%  rA   r[   r  r  r*   r  r]   s      r?   test_trait_metadata_defaultz)TestHasTraits.test_trait_metadata_defaultT  sS    		 	 C))#|<dC))#|YGSrA   c                 ,    G d dt               } |       }| j                  |j                         t        |j                  |j
                               | j                  |j                         t        |j                  |j
                               y )Nc                   (    e Zd Z e       Z e       Zy)$TestHasTraits.test_traits.<locals>.ANr  rP   rA   r?   r[   r  ]  r`  rA   r[   )r  r  )r   rc   traitsr;   r  r  class_traitsr]   s      r?   test_traitszTestHasTraits.test_traits\  sb    		 	 CTACC133%78)4!##+=>rA   c                     G d dt               } |       }| j                  |j                         t        |j                  |j
                  |j                               |j                  dd      }| j                  |t        |j                               |j                  d 	      }| j                  |t        |j                  |j
                  |j                               y )
Nc                   |    e Zd Z e       j	                  dd      Z e       j	                  dd      Z ed      Zy)-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!  f  s3    		X8	DAxXFAAArA   r[   r  r  r'  r"  r#  r$  r  c                      yNTrP   r  s    r?   <lambda>z4TestHasTraits.test_traits_metadata.<locals>.<lambda>r      rA   r  )r   rc   r  r;   r  r  r'  rJ   r[   rZ   r  s       r?   test_traits_metadataz"TestHasTraits.test_traits_metadatae  s    		 	
 CTACC133!##%>?X8D- ^4qssacc!:;rA   c                    t        dgdz        5   G d dt              }d d d                }| j                  |j                         t	        |j
                  |j                  |j                               |j                  dd      }| j                  |t	        |j
                  	             |j                  d
       }| j                  |t	        |j
                  |j                  |j                               y # 1 sw Y   xY w)Nr  r   c                   D    e Zd Z edd      Z edd      Z ed      Zy)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  x  s#    8BX8DFrA   r[   r(  r"  r#  r$  r)  c                      y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_deprecatedu  s     TUXYYZ 	I 	 CTACC133!##%>?X8D- ^4qssacc!:;	 	s   DDc                      G d dt               } |dd      }| j                  |j                  d       | j                  |j                  d       y )Nc                   (    e Zd Z e       Z e       Zy)"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  sC    		 	 TNa d#rA   c                      G d dt               } |d      }| j                  |j                  d       | j                  t        |       y )Nc                   .     e Zd Z ed      Z fdZ xZS )-TestHasTraits.test_positional_args.<locals>.Ar   c                 0    t         |           || _        y rz   )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<    s    AA rA   r[   r   )r   rc   r  r   	TypeErrorr]   s      r?   test_positional_argsz"TestHasTraits.test_positional_args  s=    		 	 aDa )Q'rA   N)rM   rN   rO   r  r  r  r  r  r  r0  r5  r9  r?  rP   rA   r?   r  r  +  s7    	+0JJT?< <$$(rA   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestTypec                     G d d      } G d dt               } |       }| j                  |j                  t               ||_        | j                  |j                  |       | j	                  t
        t        |dd       y )Nc                       e Zd Zy) TestType.test_default.<locals>.BNrM   rN   rO   rP   rA   r?   r   rD        rA   r   c                       e Zd Z ed      Zy) TestType.test_default.<locals>.AT
allow_noneNrM   rN   rO   r&   klassrP   rA   r?   r[   rH    s    D)ErA   r[   rL  rb   )r   rc   rL  objectr   r#   rl  )rJ   r   r[   rZ   s       r?   test_defaultzTestType.test_default  sf    	 		*	 	* C&)!$*gq'2>rA   c                 d    G d d       G d d       G fddt               }| j                  |j                  j                  t               | j                  |j                  j
                  t               | j                  |j                  j                  d        | j                  |j                  j
                  t               | j                  |j                  j                         | j                  |j                  j
                         | j                  |j                  j                         | j                  |j                  j
                         | j                  |j                  j                  d        | j                  |j                  j
                         | j                  |j                  j                         | j                  |j                  j
                          |       }| j                  |j                  t               | j                  |j                  d        | j                  |j                         | j                  |j                         | j                  |j                  d        | j                  |j                         y )Nc                       e Zd Zy)(TestType.test_default_options.<locals>.BNrE  rP   rA   r?   r   rQ    rF  rA   r   c                       e Zd Zy)(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W        Z eW        Z edW  d      Z eW W        Z	y)(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    sD     Bdt,BaBABDdCBAQ/BrA   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  s   	 		 		0	 	0 	add((&1addjj&)add(($/addjj&)add((!,addjj!$add((!,addjj!$add(($/addjj!$add((!,addjj!$CaddF#addD!addAaddAaddD!addArA   c                      G d d       G d d      } G fddt               } |       }| j                  |j                         | j                  t        t
        |d|       | j                  t        t
        |dt               |_        y )Nc                       e Zd Zy)TestType.test_value.<locals>.BNrE  rP   rA   r?   r   ra    rF  rA   r   c                       e Zd Zy)TestType.test_value.<locals>.CNrE  rP   rA   r?   r   rc    rF  rA   r   c                        e Zd Z eW        Zy)TestType.test_value.<locals>.ANrK  r   s   r?   r[   re        GErA   r[   rL  )r   rc   rL  r   r#   rl  rM  rJ   r   r[   rZ   r   s       @r?   
test_valuezTestType.test_value  ss    	 		 			 	 C!$*gq'1=*gq'6BrA   c                     G d d       G d d      } G fddt               } |       }| j                  |j                         | j                  t        t
        |dd        ||_        | j                  |j                  |       y )Nc                       e Zd Zy)#TestType.test_allow_none.<locals>.BNrE  rP   rA   r?   r   rl    rF  rA   r   c                       e Zd Zy)#TestType.test_allow_none.<locals>.CNrE  rP   rA   r?   r   rn    rF  rA   r   c                        e Zd Z eW        Zy)#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  ss    	 		 			 	 C!$*gq'4@!$rA   c                      G d dt               }| j                  t        |        G d dt               }| j                  t        |       y )Nc                       e Zd Z ed      Zy)'TestType.test_validate_klass.<locals>.Azno strings allowedNrK  rP   rA   r?   r[   rt    s    -.ErA   r[   c                       e Zd Z ed      Zy)rt  zrub.adub.DuckNrK  rP   rA   r?   r[   z'TestType.test_validate_klass.<locals>.A  s    )ErA   )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               }| j                  t        |        G fddt               }| j                  t        t         |       d       y )Nc                       e Zd Zy))TestType.test_validate_default.<locals>.BNrE  rP   rA   r?   r   rz    rF  rA   r   c                   "    e Zd Z edW        Zy))TestType.test_validate_default.<locals>.Ar   NrK  rf  s   r?   r[   r|    s    *ErA   r[   c                   "    e Zd Z edW        Zy))TestType.test_validate_default.<locals>.CNrK  rf  s   r?   r   r~    s    qMErA   r   rL  )r   r   rv  r#   r   )rJ   r[   r   r   s      @r?   test_validate_defaultzTestType.test_validate_default  sO    	 		+	 	+ 	+q)	"	 	" 	*gqsG<rA   c                      G d dt               }ddlm}  |       }||_        | j	                  |j                  |       | j                  t        t        |dd       y )Nc                       e Zd Z ed      Zy)"TestType.test_str_klass.<locals>.Atraitlets.config.ConfigNrK  rP   rA   r?   r[   r    s    23ErA   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  sK    	4	 	4 	,C&)*gq'2>rA   c                 x     G d dt               } |d      }ddlm} | j                  |j                  |       y )Nc                       e Zd Z e       Zy)&TestType.test_set_str_klass.<locals>.ANrK  rP   rA   r?   r[   r    s	    FErA   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  s2    		 	 -.+&)rA   N)rM   rN   rO   rN  r^  ri  rq  rw  r  r  r  rP   rA   r?   rA  rA    s+    ?$L % 	*=
?*rA   rA  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestInstancec                 *    G d d       G d d      } G d d      } G fddt               } |       }| j                  |j                  d u                |_        | j                  t        |j                                |       |_        | j                  t        |j                               | j	                  t
        t        |d	       | j	                  t
        t        |d	|       | j	                  t
        t        |d	 |              y )
Nc                       e Zd Zy)$TestInstance.test_basic.<locals>.FooNrE  rP   rA   r?   r   r  )  rF  rA   r   c                       e Zd Zy)$TestInstance.test_basic.<locals>.BarNrE  rP   rA   r?   Barr  ,  rF  rA   r  c                       e Zd Zy)$TestInstance.test_basic.<locals>.BahNrE  rP   rA   r?   Bahr  /  rF  rA   r  c                   $    e Zd Z eW  d      Zy)"TestInstance.test_basic.<locals>.ATrI  NrM   rN   rO   r   rk   r   s   r?   r[   r  2      CD1DrA   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 C$'
1663/0
1663/0*gq&#>*gq&#>*gq&#%@rA   c                 N    G d d       G d d      } G d d      } G fddt                G fd	d
t              } |       }| j                  |j                  d u                |_        | j                  t	        |j                                |       |_        | j                  t	        |j                               | j                  t        t        |d       | j                  t        t        |d|       | j                  t        t        |d |              y )Nc                       e Zd Zy),TestInstance.test_default_klass.<locals>.FooNrE  rP   rA   r?   r   r  @  rF  rA   r   c                       e Zd Zy),TestInstance.test_default_klass.<locals>.BarNrE  rP   rA   r?   r  r  C  rF  rA   r  c                       e Zd Zy),TestInstance.test_default_klass.<locals>.BahNrE  rP   rA   r?   r  r  F  rF  rA   r  c                       e Zd ZW  Zy)4TestInstance.test_default_klass.<locals>.FooInstanceN)rM   rN   rO   rL  r  s   r?   FooInstancer  I  s    ErA   r  c                   "    e Zd Z W  d      Zy)*TestInstance.test_default_klass.<locals>.ATrI  N)rM   rN   rO   rk   )r  s   r?   r[   r  L  s    $/DrA   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_klass?  s    	 		# 		 		( 		0	 	0 C$'
1663/0
1663/0*gq&#>*gq&#>*gq&#%@rA   c                      G d d       G fddt               } |       } |       }| j                  |j                  |j                  u       y )Nc                       e Zd Zy)3TestInstance.test_unique_default_value.<locals>.FooNrE  rP   rA   r?   r   r  Z  rF  rA   r   c                   $    e Zd Z eW  di       Zy)1TestInstance.test_unique_default_value.<locals>.ArP   Nr  r  s   r?   r[   r  ]  s    CR(DrA   r[   )r   rk  rk   )rJ   r[   rZ   r   r   s       @r?   test_unique_default_valuez&TestInstance.test_unique_default_valueY  sB    	 		)	 	) CCaff,-rA   c                   	  G d d      	 G d d      } G d d       G 	fddt               } |       }| j                  |j                  j                  d	        G fd
dt               } |       }| j                  |j                  j                  d	       | j                  |j                  j                  d        G 	fddt               } |       }| j                  |j                  d u        y )Nc                       e Zd Zd Zy)&TestInstance.test_args_kw.<locals>.Fooc                     || _         y rz   r  )rJ   r   s     r?   r  z/TestInstance.test_args_kw.<locals>.Foo.__init__f  s	    rA   NrM   rN   rO   r  rP   rA   r?   r   r  e  s    rA   r   c                       e Zd Zy)&TestInstance.test_args_kw.<locals>.BarNrE  rP   rA   r?   r  r  i  rF  rA   r  c                       e Zd Zd Zy)&TestInstance.test_args_kw.<locals>.Bahc                      || _         || _        y rz   )r   r  )rJ   r   r  s      r?   r  z/TestInstance.test_args_kw.<locals>.Bah.__init__m  s    rA   Nr  rP   rA   r?   r  r  l  s    rA   r  c                   "    e Zd Z eW  d      Zy)$TestInstance.test_args_kw.<locals>.Arb   Nr  r  s   r?   r[   r  q  s    C'DrA   r[   rb   c                   4    e Zd Z eW  d ed            Zy)$TestInstance.test_args_kw.<locals>.Br  r   r  )rD  kwN)rM   rN   rO   r   r;   rk   )r  s   r?   r   r  w  s    Cer
;DrA   r   r   c                   $    e Zd Z eW  d      Zy)$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_kwd  s    	 		 		 	
	(	 	( C2&	<	 	< C2&2&	2	 	2 C$'rA   c                      G d d       G fddt               } |       }| j                  t              5  |j                   d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy)*TestInstance.test_bad_default.<locals>.FooNrE  rP   rA   r?   r   r    rF  rA   r   c                        e Zd Z eW        Zy)(TestInstance.test_bad_default.<locals>.ANr  r  s   r?   r[   r    s    C=DrA   r[   )r   r   r#   rk   )rJ   r[   rZ   r   s      @r?   test_bad_defaultzTestInstance.test_bad_default  sL    	 		!	 	! Cz* 	FF	 	 	s   AAc                 P     G d d      fd}| j                  t        |       y )Nc                       e Zd Zy)'TestInstance.test_instance.<locals>.FooNrE  rP   rA   r?   r   r    rF  rA   r   c                  (     G fddt               } y )Nc                   *    e Zd Z e W               Zy)4TestInstance.test_instance.<locals>.inner.<locals>.ANr  r  s   r?   r[   r    s    rA   r[   r   )r[   r   s    r?   innerz)TestInstance.test_instance.<locals>.inner  s    'I 'rA   r   r#   )rJ   r  r   s     @r?   test_instancezTestInstance.test_instance  s$    	 		' 	*e,rA   N)	rM   rN   rO   r  r  r  r  r  r  rP   rA   r?   r  r  '  s#    A.A4	.(@	-rA   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestThisc                      G d dt               } |       }| j                  |j                  d         |       }||_        | j                  |j                  |       | j                  t        t
        |dd       y )Nc                       e Zd Z e       Zy)%TestThis.test_this_class.<locals>.FooNrM   rN   rO   r"   thisrP   rA   r?   r   r    	    6DrA   r   r  rb   )r   rc   r  r   r#   rl  )rJ   r   r  r  s       r?   r4  zTestThis.test_this_class  sc    	) 	 E&E#*gq&"=rA   c                      G d dt               } |       } |       |_        | j                  t        |j                  |             y )Nc                       e Zd Z e       Zy)$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  s7    	) 	 E
1663/0rA   c                      G d dt               } G d d|      } |       } |       }||_        ||_        | j                  |j                  |       | j                  |j                  |       y )Nc                       e Zd Z e       Zy)#TestThis.test_subclass.<locals>.FooNrM   rN   rO   r"   r  rP   rA   r?   r   r    	    ArA   r   c                       e Zd Zy)#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`    	) 		# 	 EEa a rA   c                      G d dt               } G d d|      } |       } |       }||_        | j                  |j                  |       | j                  t        t
        |d|       y )Nc                       e Zd Z e       Zy),TestThis.test_subclass_override.<locals>.FooNr  rP   rA   r?   r   r    r  rA   r   c                       e Zd Z e       Zy),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[    	) 		# 	 EEa *gq#q9rA   c                      G d dt               } |d |d       |d      g      }| j                  t              5  dd	g|_        d d d        y # 1 sw Y   y xY w)
Nc                   4    e Zd Z e       Z e e             Zy)-TestThis.test_this_in_container.<locals>.TreeN)rM   rN   rO   r(   rl   r   r"   leavesrP   rA   r?   Treer    s    IE$&\FrA   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  sY    	"9 	" %E):Dv<N(OPz* 	!a&DK	! 	! 	!s   
AAN)rM   rN   rO   r4  r  r}  r  r  rP   rA   r?   r  r    s    	>1!:!rA   r  c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
TraitTestBasez+A best testing class for basic trait types.c                 &    || j                   _        y rz   )r~   rl   rJ   rl   s     r?   assignzTraitTestBase.assign  s    rA   c                     |S rz   rP   r  s     r?   coercezTraitTestBase.coerce  s    rA   c                     t        | d      rX| j                  D ]H  }| j                  |       | j                  | j                  j
                  | j                  |             J y y )N_good_values)hasattrr  r  rc   r~   rl   r  r  s     r?   test_good_valueszTraitTestBase.test_good_values  sU    4(** EE"  U1CDE )rA   c                     t        | d      r4| j                  D ]$  }	 | j                  t        | j                  |       & y y # t
        $ r J |       w xY w)N_bad_values)r  r  r   r#   r  AssertionErrorr  s     r?   test_bad_valueszTraitTestBase.test_bad_values  s\    4')) ((%%j$++uE( ( & ('%'5(s   !AAc                 ~    t        | d      r1| j                  | j                  | j                  j                         y y N_default_value)r  rc   r  r~   rl   r   s    r?   test_default_valuez TraitTestBase.test_default_value  s0    4)*T00$((..A +rA   c                    t        | d      rt        | d      rd | j                  v r| j                  j                         d   }	 d|_        | j                  j                  d        | j                  d        | j                  | j                  j                  d        | j                          | j                          d|_        | j                  j                  d        y y y y # d|_        | j                  j                  d        w xY w)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  s    D-(n-(((HHOO%g.E.#'   ''-D!  6%%'$$& $)   ''- ) . ) $)   ''-s   A9C$ $$Dc                 T    t        | d      r| j                  | j                  _        y y r  )r  r  r~   rl   r   s    r?   tearDownzTraitTestBase.tearDown  s#    4)*!00DHHN +rA   N)rM   rN   rO   __doc__r  r  r  r  r  rq  r  rP   rA   r?   r  r    s*    5E(B.(1rA   r  c                       e Zd Z e       Zy)AnyTraitN)rM   rN   rO   r   rl   rP   rA   r?   r  r  	  s	    EErA   r  c                   :    e Zd Z e       ZdZdddgddidddgZg Zy)AnyTraitTestNrc  tenrb   r                ?)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r  r    s-    
*CN%"r{E4DLKrA   r  c                   4    e Zd Z e e        e       g      Zy)
UnionTraitN)rM   rN   rO   r)   r&   r   rl   rP   rA   r?   r  r    s    4646"#ErA   r  c                   2    e Zd Z ed      ZeedgZg ddgZy)UnionTraitTestr  r   Tr   r  N)	rM   rN   rO   r  r~   r|   floatr  r  rP   rA   r?   r  r    s$    
4
5C%LtR.KrA   r  c                       e Zd Z e       Zy)CallableTraitN)rM   rN   rO   r	   rl   rP   rA   r?   r  r  #  s	    JErA   r  c                   6    e Zd Z ed       Zeed gZg ddgZy)CallableTraitTestc                     t        |       S rz   )r:   r   s    r?   r-  zCallableTraitTest.<lambda>*  s
    Q rA   r   c                     t        |       S rz   )printr  s    r?   r-  zCallableTraitTest.<lambda>+  s
    58 rA   r3    N)	rM   rN   rO   r  r~   r|   r  r  r  rP   rA   r?   r  r  (  s%    
/
0C!34Lq"+KrA   r  c                   *    e Zd Z e        e       z  Zy)OrTraitN)rM   rN   rO   r   r(   rl   rP   rA   r?   r#  r#  /  s    FWYErA   r#  c                   ,    e Zd Z e       Zg dZg ddgZy)OrTraitTest)TFr  r  r  N)rM   rN   rO   r#  r~   r  r  rP   rA   r?   r%  r%  4  s    
)C'LtR.KrA   r%  c                        e Zd Z edd      Zy)IntTraitc   iminNrM   rN   rO   r   rl   rP   rA   r?   r'  r'  ;  s    ErA   r'  c                   N    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y)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-  @  sQ    
*CN9L		
KrA   r-  c                       e Zd Z ed      Zy)	CIntTrait5NrM   rN   rO   r   rl   rP   rA   r?   r8  r8  X  s    IErA   r8  c                   D    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y)
TestCIntr   r5  r6  rb   rc  g      $r/  r  rb   r  Nr  r3  c                     t        |      S rz   r|   rJ   ns     r?   r  zTestCInt.coercec      1vrA   )	rM   rN   rO   r8  r~   r  r  r  r  rP   rA   r?   r<  r<  \  s2    
+CN7L2$UD"fEKrA   r<  c                        e Zd Z edd      Zy)MinBoundCIntTraitr9  r   r)  Nr:  rP   rA   r?   rD  rD  g  s    !ErA   rD  c                   .    e Zd Z e       ZdZg dZg dZy)TestMinBoundCIntr   )r   g      @3)g@r   g      N)rM   rN   rO   rD  r~   r  r  r  rP   rA   r?   rF  rF  k  s    

CN L$KrA   rF  c                       e Zd Z ed      Zy)	LongTraitr(  NrM   rN   rO   r   rl   rP   rA   r?   rJ  rJ  s  s    HErA   rJ  c                   L    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y)TestLongr(  rb   r.  r  r  Nr  r/  r0  r5  r6  r1  r2  r3  r4  )rM   rN   rO   rJ  r~   r  r  r  rP   rA   r?   rM  rM  x  sN    
+CN9L		
KrA   rM  c                        e Zd Z edd      Zy)MinBoundLongTraitr(  r   r)  NrK  rP   rA   r?   rO  rO    s    OErA   rO  c                   .    e Zd Z e       ZdZddgZddgZy)TestMinBoundLongr(  r   rb   r   r.  N)rM   rN   rO   rO  r~   r  r  r  rP   rA   r?   rQ  rQ    s!    

CNr7Lc(KrA   rQ  c                        e Zd Z edd      Zy)MaxBoundLongTraitr   rb   maxNrK  rP   rA   r?   rS  rS    s    OErA   rS  c                   .    e Zd Z e       ZdZddgZddgZy)TestMaxBoundLongr   rb   r   r   N)rM   rN   rO   rS  r~   r  r  r  rP   rA   r?   rW  rW    s!    

CN8Lr(KrA   rW  c                       e Zd Z ed      Zy)
CLongTraitr9  NrM   rN   rO   r   rl   rP   rA   r?   rZ  rZ    s    #JErA   rZ  c                   D    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y)
	TestCLongr   r=  r  rb   r  Nr  r3  c                     t        |      S rz   r?  r@  s     r?   r  zTestCLong.coerce  rB  rA   )	rM   rN   rO   rZ  r~   r  r  r  r  rP   rA   r?   r]  r]    s2    
,CN7L2$UD"fEKrA   r]  c                        e Zd Z edd      Zy)MaxBoundCLongTraitr9  rb   rT  Nr[  rP   rA   r?   r`  r`    s    #2ErA   r`  c                   .    e Zd Z e       ZdZg dZddgZy)TestMaxBoundCLongr   )rb   r5  g$@g      &@11N)rM   rN   rO   r`  r~   r  r  r  rP   rA   r?   rb  rb    s    

CN#L,KrA   rb  c                       e Zd Z ed      Zy)IntegerTraitr3   NrM   rN   rO   r   rl   rP   rA   r?   re  re    s    AJErA   re  c                   $    e Zd Z e       ZdZd Zy)TestIntegerr3   c                     t        |      S rz   r?  r@  s     r?   r  zTestInteger.coerce  rB  rA   N)rM   rN   rO   re  r~   r  r  rP   rA   r?   rh  rh    s    
.CNrA   rh  c                        e Zd Z edd      Zy)MinBoundIntegerTraitr   r   r)  Nrf  rP   rA   r?   rk  rk        A1ErA   rk  c                   *    e Zd Z e       ZdZdZddgZy)TestMinBoundIntegerr   )r   r   r   r.  N)rM   rN   rO   rk  r~   r  r  r  rP   rA   r?   rn  rn    s    

 CNLc(KrA   rn  c                        e Zd Z edd      Zy)MaxBoundIntegerTraitr3   r   rT  Nrf  rP   rA   r?   rp  rp    rl  rA   rp  c                   *    e Zd Z e       ZdZdZddgZy)TestMaxBoundIntegerr3   )r   rX  r   rb   N)rM   rN   rO   rp  r~   r  r  r  rP   rA   r?   rr  rr    s    

 CNLb'KrA   rr  c                        e Zd Z edd      Zy)
FloatTrait     X@      i@rT  N)rM   rN   rO   r   rl   rP   rA   r?   rt  rt    s    $E"ErA   rt  c                   J    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y)	TestFloatru  )rb   r.  r/  r0  r  rb   r  Nr  r5  r6  r1  r2  r3  r4  g      i@)rM   rN   rO   rt  r~   r  r  r  rP   rA   r?   rx  rx    sG    
,CN)L		
KrA   rx  c                        e Zd Z edd      Zy)CFloatTraitz99.0rv  rT  N)rM   rN   rO   r   rl   rP   rA   r?   rz  rz    s    6u%ErA   rz  c                   F    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y)
TestCFloatru  )rb   rc  g      %@z10.0r5  r6  r  rb   r  Nr  g33333i@z200.1c                     t        |      S rz   )r  rJ   r  s     r?   r  zTestCFloat.coerce  s    QxrA   )	rM   rN   rO   rz  r~   r  r  r  r  rP   rA   r?   r|  r|    s4    
-CN8L2$UD"eWMKrA   r|  c                       e Zd Z ed      Zy)ComplexTrait     X@     XN)rM   rN   rO   r   rl   rP   rA   r?   r  r    s    L!ErA   r  c                   >    e Zd Z e       ZdZg dZddddgddiddgZy)	TestComplexr  )
rb   r.  r/  r0  y              $@y      $@      $@y      $@      $y        333333$@y333333$@333333$@y333333$@333333$r1  r2  r  rb   r  N)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r  r    s1    
.C!NL &%"r{E4HKrA   r  c                       e Zd Z ed      Zy)
BytesTrait   stringN)rM   rN   rO   r   rl   rP   rA   r?   r  r  -      )ErA   r  c                   H    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y
)	TestBytesr  )s   10s   -10s   10Ls   -10Ls   10.1s   -10.1r  rb   r.  r/  r0  r  r  r  Nstring)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r  r  2  s9    
,CNQLsD%bTE7UBKPTV^_KrA   r  c                       e Zd Z ed      Zy)UnicodeTraitunicodeN)rM   rN   rO   r(   rl   rP   rA   r?   r  r  ;  s    IErA   r  c            
       L    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y
)TestUnicoder  )
r5  r6  r1  r2  r3  r4  r!  r     €s
   bytestringrb   r.  r/  r0  r  r  r  Nc                     t        |      S rz   r1   r~  s     r?   r  zTestUnicode.coerceH  s    ArA   )	rM   rN   rO   r  r~   r  r  r  r  rP   rA   r?   r  r  @  s;    
.CNdLsD%bTE7UBKPTUKrA   r  c                       e Zd Z ed      Zy)ObjectNameTraitabcN)rM   rN   rO   r   rl   rP   rA   r?   r  r  L  s    uErA   r  c                   p    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j                  d       y)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  P  sT    

CN9L	
K rA   r  c                       e Zd Z ed      Zy)DottedObjectNameTraitr  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  g  s    U#ErA   r  c                   P    e Zd Z e       ZdZg dZg dZej                  d       y)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  k  s'    

!CN@LKKrA   r  c                       e Zd Z e       Zy)TCPAddressTraitN)rM   rN   rO   r!   rl   rP   rA   r?   r  r  u  s	    LErA   r  c                   .    e Zd Z e       ZdZg dZg dZy)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  y  s    

C%NTLHKrA   r  c                   &    e Zd Z e e             Zy)	ListTraitNrM   rN   rO   r   r   rl   rP   rA   r?   r  r    s    KErA   r  c                   X    e Zd Z e       Zg Zg dg e ed            dgZdddgdgZ	d Z
y)TestListr3   rb   r3   r   rZ   c                      |t        |      }|S rz   listr  s     r?   r  zTestList.coerce      KErA   N)rM   rN   rO   r  r~   r  r  ranger  r  r  rP   rA   r?   r  r    s;    
+CNT%)_f5L3x%KrA   r  c                       e Zd Zy)r   NrE  rP   rA   r?   r   r         rA   r   c                   (    e Zd Z e ee            Zy)NoneInstanceListTraitN)rM   rN   rO   r   r   r   rl   rP   rA   r?   r  r    s    #ErA   r  c                   V    e Zd Z e       Zg Z e        e       gg gZdg e       dggZy)TestNoneInstanceListN)	rM   rN   rO   r  r~   r  r   r  r  rP   rA   r?   r  r    s3    

!CNUCENB'L6CE4=)KrA   r  c                   .    e Zd Z e ee dz               Zy)InstanceListTraitz.FooN)rM   rN   rO   r   r   rl   rP   rA   r?   r  r    s    (V+,-ErA   r  c                   V    e Zd Z e       Zd Zg Z e        e       gg gZddgdegdgZ	y)TestInstanceListc                     | j                  | j                  j                         d   j                  j                  t
               yz2Test that the instance klass is properly assigned.rl   N)r]  r~   r  _traitrL  r   r   s    r?   
test_klasszTestInstanceList.test_klass  s,    dhhoo'077==sCrA   r   r   N)
rM   rN   rO   r  r~   r  r  r   r  r  rP   rA   r?   r  r    sJ    

CD NUCENB'L 	
 		KrA   r  c                   6    e Zd Z e e        e       z        Zy)UnionListTraitN)rM   rN   rO   r   r   r   rl   rP   rA   r?   r  r    s     ErA   r  c                   :    e Zd Z e       Zg ZddgddggZddgdgZy)TestUnionListTraitTr3   FTrueN)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r  r    s/    

CN1It}-Lv;&KrA   r  c                   0    e Zd Z e e       dgdd      Zy)LenListTraitr   r3   r   )minlenmaxlenNr  rP   rA   r?   r  r    s    Aa0ErA   r  c            	       `    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
y	)
TestLenListr   r3   r   r  rb   rZ   r   c                      |t        |      }|S rz   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    sC    
.CSNC!Q(L3xb$uQx.9KrA   r  c                   .    e Zd Z e ed      d      Zy)
TupleTraitTrI  r3   r   N)rM   rN   rO   r%   r   rl   rP   rA   r?   r  r    s    #&d;ErA   r  c                   >    e Zd Z e       ZdZdddggZg dZd Zd Z	y)TestTupleTraitr  r  r3   )rb   r  rZ   rP   Nc                      |t        |      }|S rz   tupler  s     r?   r  zTestTupleTrait.coerce      %LErA   c                     | j                  t        t        d       | j                  t        t        d       t        t               t	               d      }y Nr   hellor   )r3   r   r   r>  r%   r   r
   rJ   r  s     r?   test_invalid_argsz TestTupleTrait.test_invalid_args  ;    )UA.)U'B#%8rA   N)
rM   rN   rO   r  r~   r  r  r  r  r  rP   rA   r?   r  r    s+    
,CN$$L/K
9rA   r  c                       e Zd Z ed      Zy)LooseTupleTraitr3   r   r   N)rM   rN   rO   r%   rl   rP   rA   r?   r  r    r  rA   r  c                   n    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y
)TestLooseTupleTraitr  r  r3   r  r   r  )rZ   r   rP   rb   Nc                      |t        |      }|S rz   r  r  s     r?   r  zTestLooseTupleTrait.coerce  r  rA   c                     | j                  t        t        d       | j                  t        t        d       t        t               t	               d      }y 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    sJ    

CN1#tU58_eGnhPRSLwD)K
9rA   r  c                   :    e Zd Z e e        e       ddg      Zy)MultiTupleTraitr(     bottlesr   N)rM   rN   rO   r%   r   r   rl   rP   rA   r?   r  r    s    #%Z0@AErA   r  c                   *    e Zd Z e       ZdZddgZdZy)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CKrA   r  Traitc                       G  fddt               } |       }|j                  J  |d       }|j                  J y )Nc                   $    e Zd Z W  dd      Zy)(test_allow_none_default_value.<locals>.CNT)r   rJ  rM   rN   rO   r  r  s   r?   r   r  ,  s    6rA   r   r  )r   r  )r  r   r   s   `  r?   test_allow_none_default_valuer     s?    7I 7 	
A33;; 	
D	A33;;rA   zTrait, default_valuerP   r!  c                       G  fddt               } |       }t        |j                        t        |      u sJ |j                  |k(  sJ y )Nc                       e Zd Z W         Zy)test_default_value.<locals>.CNr  r  s   r?   r   r  =  s
    GrA   r   r   r:   r  )r  r   r   r   s   `   r?   r  r  8  sE    
I  	
A9]++++33-rA   c                      G d d|        G fddt               } |       }t        |j                        t        |      u sJ |j                  |k(  sJ y)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>.SubclassTraitc                 &    t         |   |       y )Nr   )rB  r  )rJ   r   r+  s     r?   r  z;test_subclass_default_value.<locals>.SubclassTrait.__init__N  s    G=9rA   rz   )rM   rN   rO   r  rG  r  s   @r?   SubclassTraitr  M  s    	: 	:rA   r  c                       e Zd Z W         Zy)&test_subclass_default_value.<locals>.CNr  )r  s   r?   r   r  Q  s
    OrA   r   Nr  )r  r   r   r   r  s       @r?   test_subclass_default_valuer  F  sQ    : :I  	
A9]++++33-rA   c                       e Zd Z ed      Zy)CRegExpTraitr!  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  Z  s    CLErA   r  c                   t    e Zd Zd Z e       Z ej                  d      Zd ej                  d      gZ	g dZ
y)TestCRegExpc                 ,    t        j                  |      S rz   )recompiler  s     r?   r  zTestCRegExp.coerce`  s    zz%  rA   r!  z\d+)(NrP   N)rM   rN   rO   r  r  r~   r  r	  r  r  r  rP   rA   r?   r  r  _  s9    ! .CRZZ_NJBJJv./L!KrA   r  c                       e Zd Z e       Zy)	DictTraitN)rM   rN   rO   r   rl   rP   rA   r?   r  r  j  s	    FErA   r  c                  v    i } t               }| |_        d| d<   | |j                  k(  sJ |j                  | u sJ y )Nr   rZ   )r  rl   )r  r   s     r?   test_dict_assignmentr  n  s>    
AAAGAcF<<77a<<rA   c                   .    e Zd Z e e       ddi      Zy) UniformlyValueValidatedDictTraitr   r   )value_traitr   NrM   rN   rO   r   r(   rl   rP   rA   r?   r  r  w  s    WYuclCErA   r  c                   :    e Zd Z e       ZddiZdddgZdddgZy)'TestInstanceUniformlyValueValidatedDictr   r   0r   r   r   N)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r  r  |  s-    
*
,CS\N,-LS)*KrA   r  c                   2    e Zd Z ed e       iddi      Zy)#NonuniformlyValueValidatedDictTraitr   r3   )per_key_traitsr   N)rM   rN   rO   r   r   rl   rP   rA   r?   r  r    s    uajIErA   r  c                   B    e Zd Z e       ZddiZddddddgZdddgZy)*TestInstanceNonuniformlyValueValidatedDictr   r3   r   r   r  r  N)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r  r    s4    
-
/CQZNc*Aa,@ALs+,KrA   r  c                   .    e Zd Z e e       ddi      Zy)KeyValidatedDictTraitr   r   )	key_traitr   Nr  rP   rA   r?   r  r    s    79UCLAErA   r  c                   :    e Zd Z e       ZddiZdddgZdddgZy)TestInstanceKeyValidatedDictr   r   r  r  r   r   N)rM   rN   rO   r  r~   r  r  r  rP   rA   r?   r   r     s-    

!CS\N,-L3'(KrA   r   c                   J    e Zd Z e e        e       d e       iddi      Zy)FullyValidatedDictTraitr   r3   )r  r  r  r   N)rM   rN   rO   r   r(   r   rl   rP   rA   r?   r#  r#    s&    I)su~aj	ErA   r#  c                   R    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y	)
TestInstanceFullyValidatedDictr   r3   r   r   r  2r  r!  N)rM   rN   rO   r#  r~   r  r  r  rP   rA   r?   r%  r%    sC    
!
#CQZNc*Ac,BCLQ'S)A1QTCUVKrA   r%  c                       G d dt               }  |        }|j                  i k(  sJ |j                  i k(  sJ |j                  |j                  usJ y)zZCheck that the `{}` default value of the Dict traitlet constructor is
    actually copied.c                   (    e Zd Z e       Z e       Zy)$test_dict_default_value.<locals>.FooN)rM   rN   rO   r   d1d2rP   rA   r?   r   r)    s    VVrA   r   N)r   r*  r+  )r   r   s     r?   test_dict_default_valuer,    sM    i  %C66R<<66R<<66rA   c                       e Zd Zd Zd Zy)TestValidationHookc                      G d dt               } |       }d|_        d|_        | j                  t              5  d|_        ddd       d|_        d|_        y# 1 sw Y   xY w)z2Verify that the early validation hook is effectivec                   P    e Zd Z ed      Z eddgd      Z ed      d        Zy)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   r3  r   zExpected an even numberr2  r   zExpected an odd number)parityr#   )rJ   r   rl   s      r?   _value_validatezDTestValidationHook.test_parity_trait.<locals>.Parity._value_validate  sQ     );;&(UQY$%>??;;%'UQY!^$%=>>rA   N)	rM   rN   rO   r   rl   r   r5  r0   r6  rP   rA   r?   Parityr1    s2    FE5&/@Fg rA   r7  r2  r3   r   Nr3  )r   r5  rl   r   r#   )rJ   r7  us      r?   test_parity_traitz$TestValidationHook.test_parity_trait  s_    	Y 	 Hz* 	AG	 		 	s   AA"c                     G d dt               } |       }d|_        | j                  t              5  d|_        ddd       d|_        | j                  t              5  d|_        ddd       y# 1 sw Y   6xY w# 1 sw Y   yxY w)z@Verify that we can register the same validator to multiple namesc                   J    e Zd Z ed      Z ed      Z edd      d        Zy):TestValidationHook.test_multiple_validate.<locals>.OddEvenr3   r   r2  r3  c                     |d   j                   dk(  r|d   dz  st        d      |d   j                   dk(  r|d   dz  rt        d      y y )Nr	  r2  rl   r   zodd should be oddr3  zeven should be even)r6   r#   r   s     r?   check_validzFTestValidationHook.test_multiple_validate.<locals>.OddEven.check_valid  sa    G$))U28G;Lq;P$%899G$))V38IA8M$%:;; 9N3rA   N)rM   rN   rO   r   r2  r3  r0   r>  rP   rA   r?   OddEvenr<    s-    a&Cq6DeV$< %<rA   r?  r   r   N)r   r2  r   r#   r3  )rJ   r?  r8  s      r?   test_multiple_validatez)TestValidationHook.test_multiple_validate  s    
	<i 
	< Iz* 	AE	 z* 	AF	 			 		 	s   A0A<0A9<BN)rM   rN   rO   r9  r@  rP   rA   r?   r.  r.    s    4rA   r.  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestLinkc                 f    G d dt               } |d      } |d      }t        |df|df      }| j                  |j                  |j                         d|_        | j                  |j                  |j                         d|_        | j                  |j                  |j                         y	)
zHVerify two traitlets of the same type can be linked together using link.c                       e Zd Z e       Zy)%TestLink.test_connect_same.<locals>.ANr+  rP   rA   r?   r[   rE    	    EErA   r[   	   r      rl   r      Nr   r,   rc   rl   rJ   r[   rZ   r   r   s        r?   test_connect_samezTestLink.test_connect_same  s    		 	 AJAJ !W7|, 	!''* !''*!''*rA   c                     G d dt               } G d dt               } |d      } |d      }t        |d	f|d
f      }| j                  |j                  |j                         d|_        | j                  |j                  |j                         d|_        | j                  |j                  |j                         y)JVerify two traitlets of different types can be linked together using link.c                       e Zd Z e       Zy)'TestLink.test_link_different.<locals>.ANr+  rP   rA   r?   r[   rP    rF  rA   r[   c                       e Zd Z e       Zy)'TestLink.test_link_different.<locals>.BNrM   rN   rO   r   countrP   rA   r?   r   rR    rF  rA   r   rG  r   rH  rT  rl   rT  r   r   N)r   r,   rc   rl   rT  rJ   r[   r   rZ   r   r   s         r?   test_link_differentzTestLink.test_link_different  s    		 			 	 AJAJ !W7|, 	!''* !''*!''*rA   c                     G d dt               } |d      } |d      }t        |df|df      }d|_        |j                          d|_        | j	                  |j                  |j                         |j                          | j                  |j                  |j                         |xj                  d	z  c_        | j                  |j                  |j                         y
)9Verify two linked traitlets can be unlinked and relinked.c                       e Zd Z e       Zy)$TestLink.test_unlink_link.<locals>.ANr+  rP   rA   r?   r[   r[  *  rF  rA   r[   rG  r   rH  rl   r   r   r3   N)r   r,   rl   unlinkassertNotEqualrc   rK  s        r?   test_unlink_linkzTestLink.test_unlink_link&  s    		 	 AJAJ !W7|,	
 AGGQWW-	!''*	1!''*rA   c                     G d dt               } G d dt               } |d      } |d      }g fd	}|j                  |d
       fd}|j                  |d       t        |d
f|df      }| j                  dj	                        d       dd= d|_        | j                  dj	                        d       dd= d|_        | j                  dj	                        d       dd= y)z=Verify two linked traitlets have their callbacks called once.c                       e Zd Z e       Zy)"TestLink.test_callbacks.<locals>.ANr+  rP   rA   r?   r[   ra  A  rF  rA   r[   c                       e Zd Z e       Zy)"TestLink.test_callbacks.<locals>.BNrS  rP   rA   r?   r   rc  D  rF  rA   r   rG  r   rH  rU  c                 (    j                  d       y )NrZ   rU  r6   r7   r8   callback_counts      r?   
a_callbackz+TestLink.test_callbacks.<locals>.a_callbackM      !!#&rA   rl   c                 (    j                  d       y )Nr   re  rf  s      r?   
b_callbackz+TestLink.test_callbacks.<locals>.b_callbackR  ri  rA   rT  r!  r   Nr   bar   ab)r   ri  r,   rc   joinrT  rl   )	rJ   r[   r   rZ   r   rh  rk  r   rg  s	           @r?   test_callbackszTestLink.test_callbacks=  s    		 			 	 AJAJ 	' 	
*g.	' 	
*g. !W7|, 	0#61 0$71 0$71rA   c                 P    G d dt               } |d      } |d      }t        |df|dfd d f	      }| j                  |j                  d
|j                  z         d|_        | j                  |j                  d       d|_        | j                  |j                  d       y)Test transform link.c                       e Zd Z e       Zy)!TestLink.test_tranform.<locals>.ANr+  rP   rA   r?   r[   rs  l  rF  rA   r[   rG  r   rH  rl   c                     d| z  S Nr   rP   r  s    r?   r-  z(TestLink.test_tranform.<locals>.<lambda>s  s
    !a% rA   c                     t        | dz        S )Ng       @r?  r  s    r?   r-  z(TestLink.test_tranform.<locals>.<lambda>s  s    SVWX[^W^S_ rA   )	transformr   r   rb   rI  r   NrJ  rK  s        r?   test_tranformzTestLink.test_tranformh  s    		 	 AJAJ !W7|I_7`a 	!agg+. "% !$rA   c                      G d dt               } |       }t        |df|df      }| j                  t        t        |dd       y )Nc                   D    e Zd Z e       Z e       Z ed      d        Zy)4TestLink.test_link_broken_at_source.<locals>.MyClassr'  c                 ,    |j                   dz  | _        y ru  )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{    &    AAS\( (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  A    	(i 	( Y"cRI&*gr3:rA   c                      G d dt               } |       }t        |df|df      }| j                  t        t        |dd       y )Nc                   D    e Zd Z e       Z e       Z ed      d        Zy)4TestLink.test_link_broken_at_target.<locals>.MyClassr  c                 ,    |j                   dz  | _        y ru  )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   rL  rW  r^  ro  rx  r  r  rP   rA   r?   rB  rB    s&    +,+2+.)V%0;;rA   rB  c                   $    e Zd Zd Zd Zd Zd Zy)TestDirectionalLinkc                 >    G d dt               } |d      } |d      }t        |df|df      }| j                  |j                  |j                         d|_        | j                  |j                  d       d|_        | j                  |j                  d       y	)
zTVerify two traitlets of the same type can be linked together using directional_link.c                       e Zd Z e       Zy)0TestDirectionalLink.test_connect_same.<locals>.ANr+  rP   rA   r?   r[   r    rF  rA   r[   rG  r   rH  rl   r   rI  Nr   r+   rc   rl   rK  s        r?   rL  z%TestDirectionalLink.test_connect_same  s    		 	 AJAJ a\Aw<8 	!''* !$!$rA   c                 H    G d dt               } |d      } |d      }t        |df|dfd       }| j                  |j                  d|j                  z         d	|_        | j                  |j                  d
       d|_        | j                  |j                  d	       y)rq  c                       e Zd Z e       Zy),TestDirectionalLink.test_tranform.<locals>.ANr+  rP   rA   r?   r[   r    rF  rA   r[   rG  r   rH  rl   c                     d| z  S ru  rP   r  s    r?   r-  z3TestDirectionalLink.test_tranform.<locals>.<lambda>  s
    1q5 rA   r   r   rb   rI  Nr  rK  s        r?   rx  z!TestDirectionalLink.test_tranform  s    		 	 AJAJ a\Aw<I 	!agg+. "%!$rA   c                 \    G d dt               } G d dt               } |d      } |d      }t        |d	f|d
f      }| j                  |j                  |j                         d|_        | j                  |j                  d       d|_        | j                  |j                  d       y)rN  c                       e Zd Z e       Zy)2TestDirectionalLink.test_link_different.<locals>.ANr+  rP   rA   r?   r[   r    rF  rA   r[   c                       e Zd Z e       Zy)2TestDirectionalLink.test_link_different.<locals>.BNrS  rP   rA   r?   r   r    rF  rA   r   rG  r   rH  rU  rl   rT  r   rI  N)r   r+   rc   rl   rT  rV  s         r?   rW  z'TestDirectionalLink.test_link_different  s    		 			 	 AJAJ a\Aw<8 	!''* !$!$rA   c                     G d dt               } |d      } |d      }t        |df|df      }d|_        |j                          d|_        | j	                  |j                  |j                         |j                          | j                  |j                  |j                         |xj                  d	z  c_        | j                  |j                  |j                         y
)rY  c                       e Zd Z e       Zy)/TestDirectionalLink.test_unlink_link.<locals>.ANr+  rP   rA   r?   r[   r    rF  rA   r[   rG  r   rH  rl   r   r   r3   N)r   r+   rl   r\  r]  r,   rc   rK  s        r?   r^  z$TestDirectionalLink.test_unlink_link  s    		 	 AJAJ a\Aw<8	
 AGGQWW-	!''*	1!''*rA   N)rM   rN   rO   rL  rx  rW  r^  rP   rA   r?   r  r    s    %.%.%4+rA   r  c                   f    e Zd Z e       Z ed      d        Z ed      d        Z e       Z	d Z
y)
Pickleabler  c                      y rz   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                     | j                         5  d| _        d d d        | j                  | j                  d       y # 1 sw Y   &xY w)Nr3   r  )hold_trait_notificationsr  ri  r  r   s    r?   r  zPickleable.__init__
	  s>    **, 	DF	T__c2	 	s	   >AN)rM   rN   rO   r   r  r-   r  r0   r  r'  r  rP   rA   r?   r  r    sE    AS\  c]  	A3rA   r  c                  .   t               } t        t        j                  dz         D ]c  }t        j                  | |      }t        j
                  |      }|j                  | j                  k(  sJ |j                  | j                  k(  rcJ  d| _        t        t        j                  dz         D ]c  }t        j                  | |      }t        j
                  |      }|j                  | j                  k(  sJ |j                  | j                  k(  rcJ  y )Nr3   r   )r  r  pickleHIGHEST_PROTOCOLdumpsloadsr  r'  )r   protocolpc2s       r?   test_pickle_hastraitsr  	  s    A&11A56 LLH%\\!_ttqss{{ttqss{{	 AC&11A56 LLH%\\!_ttqss{{ttqss{{	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        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        d|_        |j                  dk(  sJ g k(  sJ 	 d d d        dgk(  sJ 	 |j                         5  d|_        d d d        |j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   \xY w# 1 sw Y   ?xY w# t        $ r Y Mw xY w)	Nc                   >    e Zd Z ed      Z ed      Z fdZd Zy)+test_hold_trait_notifications.<locals>.Testr   c                 ,    j                  ||f       y rz   re  )rJ   r6   r7   r8   changess       r?   r  z6test_hold_trait_notifications.<locals>.Test._a_changed'	  s    NNC:&rA   c                 &    |dk7  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  #	  s    AJAJ	'	rA   r  r3   r   r   r   )r   r   r   )r   r  rZ   r   	Exception)r  r  r  s     @r?   test_hold_trait_notificationsr   	  s   G
y 
 	A	
	#	#	% '') 	!AC33!8O8b= =	! ssaxx'') 	!AC33!8O8b= =AC33!8O8b= =	! ssaxx"}}!$ vh'') 	AC	 33!8O81	! 	!	! 	! *	 	 sd   E D90E?E'EE) EE) 9E	>EE	
EEE&"E) )	E54E5c                        e Zd Z e       Zd Zy)RollBackc                      |rt        d      |S )Nfoobarr  r  s      r?   _bar_validatezRollBack._bar_validateP	  s    X&&rA   N)rM   rN   rO   r   r   r  rP   rA   r?   r  r  M	  s    
%CrA   r  c                       e Zd Zd Zy)TestRollbackc                 6    d }| j                  t        |       y )Nc                      t        d       y )Nr3   r   )r  rP   rA   r?   assign_rollbackz4TestRollback.test_roll_back.<locals>.assign_rollbackX	  s	    OrA   r  )rJ   r  s     r?   test_roll_backzTestRollback.test_roll_backW	  s    	 	*o6rA   N)rM   rN   rO   r  rP   rA   r?   r  r  V	  s    7rA   r  c                   4    e Zd Z e       Z e       Zd Zd Zy)CacheModificationc                     || _         |S rz   r;  r  s      r?   r  zCacheModification._bar_validateb	      rA   c                     || _         |S rz   r  r  s      r?   _foo_validatezCacheModification._foo_validatef	  r  rA   N)rM   rN   rO   r   r   r   r  r  rP   rA   r?   r  r  ^	  s    
%C
%CrA   r  c                  4    t        d       t        d       y )Nr3   r;  r  )r  rP   rA   r?   test_cache_modificationr  k	  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                 ^    dD ci c]  }|t        | |       c}| j                  |<   yc c}w )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
        abcdefghijklN)r   notified)rJ   r6   r7   r8   r   s        r?   _notifyzOrderTraits._notify	  s-     =KKqq'$"22KdKs   *c                 Z    | j                  | j                         t        |   di | y 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  p	  sn    vH	A	A	A	A	A	A	A	A	A	A	A	AL# #rA   r  c                      dD  ci c]  } | |  }} t               }|j                  i k(  sJ t        di |}dD  ci c]  } | | }} |j                  |k(  sJ y c c} w c c} w )Nr  rP   )r  r  )r   r  r~   notificationss       r?   test_notification_orderr  	  sr    %&!A&A&
-C<<2


C#12aQT2M2<<=((( 	' 3s
   
A
Ac                        e Zd Z edd      Zy)ForwardDeclaredInstanceTraitForwardDeclaredBarTrI  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  	  s    #$8TJErA   r  c                        e Zd Z edd      Zy)ForwardDeclaredTypeTraitr  TrI  N)rM   rN   rO   r   rl   rP   rA   r?   r  r  	  s     4FErA   r  c                   (    e Zd Z e ed            Zy) ForwardDeclaredInstanceListTraitr  N)rM   rN   rO   r   r   rl   rP   rA   r?   r  r  	  s    ()=>?ErA   r  c                   (    e Zd Z e ed            Zy)ForwardDeclaredTypeListTraitr  N)rM   rN   rO   r   r   rl   rP   rA   r?   r  r  	  s    $%9:;ErA   r  c                       e Zd Zy)r  NrE  rP   rA   r?   r  r  	  r  rA   r  c                       e Zd Zy)ForwardDeclaredBarSubNrE  rP   rA   r?   r  r  	  r  rA   r  c                   H    e Zd Z e       ZdZd e        e       gZddeegZ	y) TestForwardDeclaredInstanceTraitNr   r   )
rM   rN   rO   r  r~   r  r  r  r  r  rP   rA   r?   r  r  	  s3    
&
(CN,.0E0GHL!/1FGKrA   r  c                   H    e Zd Z e       ZdZdeegZdd e        e       gZ	y)TestForwardDeclaredTypeTraitNr   r   )
rM   rN   rO   r  r~   r  r  r  r  r  rP   rA   r?   r  r  	  s3    
"
$CN,.CDL!/13H3JKKrA   r  c                   r    e Zd Z e       Zd Zg Z e        e       gg gZ	 e        e       ddgdegdgdgZ
y)TestForwardDeclaredInstanceListc                     | j                  | j                  j                         d   j                  j                  t
               yr  r]  r~   r  r  rL  r  r   s    r?   r  z*TestForwardDeclaredInstanceList.test_klass	  -    dhhoo'077==?QRrA   r   Nr   )rM   rN   rO   r  r~   r  r  r  r  r  r  rP   rA   r?   r  r  	  s]    
*
,CS N		467
L
 			q$'		KrA   r  c                   R    e Zd Z e       Zd Zg Zeegg gZ	eedgd e       gdgdgZ
y)TestForwardDeclaredTypeListc                     | j                  | j                  j                         d   j                  j                  t
               yr  r  r   s    r?   r  z&TestForwardDeclaredTypeList.test_klass	  r  rA   r   r   N)rM   rN   rO   r  r~   r  r  r  r  r  r  rP   rA   r?   r  r  	  sR    
&
(CS N	23
L
 		Q			KrA   r  c                       e Zd Zd Zd Zd Zy)TestDynamicTraitsc                     g | _         y rz   )rO  r   s    r?   rQ  zTestDynamicTraits.setUp
  s	    rA   c                 @    | j                   j                  |||f       y rz   rT  rV  s       r?   rW  zTestDynamicTraits.notify1
  rX  rA   c                 Z    G d dt               } |       }| j                  t        |d              | j                  t        |d              |j                  t	                      | j                  t        |d             | j                  t        ||f             |j                  t                      | j                  t        |d             | j                  t        ||f             | j                  |j                  j                  |j                          |       }| j                  t        |d              | j                  t        |d              |j                  | j                         d|_        | j                  t        | j                        d       d|_        | j                  t        | j                        d       d	|_        | j                  d
| j                  v        d|_        | j                  d| j                  v        | j!                  t"        t$        |dd       | j!                  t"        t$        |dd       g | _        |j                  | j                  d       d|_        d|_        | j                  t        | j                        d       y )Nc                       e Zd Zy),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   		 	 CGAsO+,GAsO+, 	
su3(
1qd+, 	
uw3(
1qd+,--qzz: CGAsO+,GAsO+, 	
$,,'T]]+Q/T]]+Q/56(DMM9:*gq#|D*gq#|D	$,,t4T]]+Q/rA   N)rM   rN   rO   rQ  rW  rm  rP   rA   r?   r  r  

  s    /)0rA   r  c                      G d dt               }  |        }d|_        |j                  dk(  sJ  |        }t        j                  t              5  |j                  }d d d         | d      }|j                  dk(  sJ y # 1 sw Y   $xY w)Nc                        e Zd Z eddg      Zy)test_enum_no_default.<locals>.CrZ   r   N)rM   rN   rO   r   r  rP   rA   r?   r   r  >
  s    #srA   r   rZ   r   r  )r   r  pytestraisesr#   )r   r   r  s      r?   test_enum_no_defaultr  =
  sz    I  	
A
AC33#::	A	z	" CC 	
CA33#::	 s   A??Bc                  X    G d dt               } | j                  j                         dk(  sJ | j                  j                         dk(  sJ | j                  j                         dk(  sJ | j
                  j                         dk(  sJ | j                  j                         dk(  sJ y )Nc                   X    e Zd Z ed      Z ee      Z ed      Z e	       Z
 e       Zy)"test_default_value_repr.<locals>.Cztraitlets.HasTraitsr   N)rM   rN   rO   r&   r  r   t2r   rA  r   lisr   r  rP   rA   r?   r   r  O
  s-    &')_AJfFrA   r   z'traitlets.HasTraits'z'traitlets.traitlets.HasTraits'r  []{})r   r  default_value_reprr  rA  r	  r  )r   s    r?   test_default_value_reprr  N
  s    I  33!!#'>>>>44""$(IIII33!!#s***55##%---33!!#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y
)TransitionalClassr  c                     t         S rz   )r  r   s    r?   
_d_defaultzTransitionalClass._d_defaulta
  s      rA   Fr   calls_superc                      yri   rP   r   s    r?   _calls_super_defaultz&TransitionalClass._calls_super_defaulth
  s    rA   c                     || _         y rz   )parent_superrI   s     r?   _calls_super_changedz&TransitionalClass._calls_super_changedl
  s     #rA   	overridesc                     || _         y rz   )parent_overriderI   s     r?   _overrides_changedz$TransitionalClass._overrides_changedt
  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    AS\! ! L!*K]  ]#  # O
I[&  &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 rz   )r  r   s    r?   r  zSubClass._d_default{
  s    rA   Fc                 6    d| _         t        | 	  |||       y r+  )subclass_superrB  r  )rJ   r6   r7   r8   r+  s       r?   r  zSubClass._calls_super_changed
  s    "$T34rA   c                     d| _         y 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  z
  s!     N5 &rA   r  c                      t               } d| _        | j                  sJ | j                  sJ d| _        | j
                  sJ | j                  rJ | j                  t         u sJ y Nr   )r  r  r  r   r  r"  r  r  r~   s    r?   test_subclass_compatr&  
  se    
*CCOCM    """"55HrA   c                   :    e Zd ZdZ e       Z ed      d        Zy)DefinesHandlerFr	  c                     d| _         y r+  )parent_calledrI   s     r?   handlerzDefinesHandler.handler
  s
    !rA   N)rM   rN   rO   r*  r   r	  r-   r+  rP   rA   r?   r(  r(  
  s%    MIEW" "rA   r(  c                   ,    e Zd ZdZ ed      d        Zy)OverridesHandlerFr	  c                     d| _         y r+  child_calledrI   s     r?   r+  zOverridesHandler.handler
  
     rA   N)rM   rN   rO   r0  r-   r+  rP   rA   r?   r-  r-  
      LW! !rA   r-  c                  ^    t               } d| _        | j                  sJ | j                  rJ y r$  )r-  r	  r0  r*  r%  s    r?   test_subclass_override_observerr4  
  s2    

CCI     rA   c                       e Zd ZdZd Zy)DoesntRegisterHandlerFc                     d| _         y r+  r/  rI   s     r?   r+  zDoesntRegisterHandler.handler
  s
     rA   N)rM   rN   rO   r0  r+  rP   rA   r?   r6  r6  
  s    L!rA   r6  c                  ^    t               } d| _        | j                  rJ | j                  rJ y)zISubclass that overrides observer and doesn't re-register unregisters bothr   N)r6  r	  r0  r*  r%  s    r?   %test_subclass_override_not_registeredr9  
  s2    

!CCI     rA   c                   ,    e Zd ZdZ ed      d        Zy)AddsHandlerFr	  c                     d| _         y r+  r/  rI   s     r?   child_handlerzAddsHandler.child_handler
  r1  rA   N)rM   rN   rO   r0  r-   r=  rP   rA   r?   r;  r;  
  r2  rA   r;  c                  ^    t               } d| _        | j                  sJ | j                  sJ y r$  )r;  r	  r0  r*  r%  s    r?   test_subclass_add_observerr?  
  s.    
-CCIrA   c                  ,    G d dt               }  |        }i fd}|j                  |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      }|j                  | |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 y )Nc                   (    e Zd Z e       Z e       Zy)!test_observe_iterables.<locals>.CN)rM   rN   rO   r   r  r(   srP   rA   r?   r   rB  
  s    IIrA   r   c                     | d<   y )NrK   rP   )rK   recordeds    r?   recordz&test_observe_iterables.<locals>.record
  s    #rA   r  rC  )namesr   rK   hic                       e Zd Zd Zd Zd Zy)+test_observe_iterables.<locals>.MyContainerc                     || _         y rz   	container)rJ   rM  s     r?   r  z4test_observe_iterables.<locals>.MyContainer.__init__
  s	    &DNrA   c                 ,    t        | j                        S rz   )iterrM  r   s    r?   __iter__z4test_observe_iterables.<locals>.MyContainer.__iter__
  s    ''rA   c                     || j                   v S rz   rL  )rJ   r  s     r?   __contains__z8test_observe_iterables.<locals>.MyContainer.__contains__
  s    $..((rA   N)rM   rN   rO   r  rP  rR  rP   rA   r?   MyContainerrJ  
  s    	'	(	)rA   rS  rb   ok)r   r-   r  r6   r8   rC  )r   r   rF  rS  rE  s       @r?   test_observe_iterablesrU  
  sA   I  	
AH$ IIfS#JI'
ACH""c)))H!!Q&&&
ACH""c)))H!!T)))) ) IIfKc
3I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 y )Nc                       e Zd Zd Zy)&test_super_args.<locals>.SuperRecorderc                      || _         || _        y rz   )
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?   SuperRecorderrX  
  s    	'rA   r\  c                       e Zd Z e       Zy)'test_super_args.<locals>.SuperHasTraitsN)rM   rN   rO   r   r  rP   rA   r?   SuperHasTraitsr^  
  	    IrA   r_  a1a2rb   r   r   )r   r  r   r   r   )ra  rb  r   )r   r  r  rZ  r[  )r\  r_  r~   s      r?   test_super_argsrc  
  s    ' '
M  trQ#
6C55A::sC   sC   >>\)))Rc2222rA   c                       G d dt               } dg}t        |      5   | dd      }d d d        j                  dk(  sJ t        |d      rJ y # 1 sw Y   )xY w)Nc                       e Zd Z e       Zy)+test_super_bad_args.<locals>.SuperHasTraitsN)rM   rN   rO   r   rZ   rP   rA   r?   r_  rf    r`  rA   r_  zPassing unrecognized argumentsr3   r   r   r   )r   r4   rZ   r  )r_  r   r~   s      r?   test_super_bad_argsrg    sd      
**A	1	 'qA&'55A::sC    ' 's   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 y)z%Verify that default values follow mroc                        e Zd Z ed      ZdZy)test_default_mro.<locals>.BasebaseNrM   rN   rO   r(   r	  attrrP   rA   r?   Baserj    s    rA   rn  c                       e Zd Zy)test_default_mro.<locals>.ANrE  rP   rA   r?   r[   rp        rA   r[   c                        e Zd Z ed      ZdZy)test_default_mro.<locals>.Br   Nrl  rP   rA   r?   r   rs    s    rA   r   c                       e Zd Zy)test_default_mro.<locals>.ABNrE  rP   rA   r?   ABru    rq  rA   rv  c                       e Zd Zy)test_default_mro.<locals>.BANrE  rP   rA   r?   BArx  !  rq  rA   ry  rk  N)r   r	  rm  )rn  r[   r   rv  ry  s        r?   test_default_mrorz    s    y D D Q Q  399388v4::4994::499rA   c                  6     G d dt               }  | d d       }y )Nc                       e Zd Zd Zy)!test_cls_self_argument.<locals>.Xc                      y rz   rP   )_X__selfclsrJ   s      r?   r  z*test_cls_self_argument.<locals>.X.__init__.  s    rA   Nr  rP   rA   r?   Xr}  -  s    	rA   r  )r  rJ   r  )r  r   s     r?   test_cls_self_argumentr  ,  s    I  	
dArA   c                  b     G d dt               } d | _         |        }|j                  dk(  sJ y )Nc                   "    e Zd Z ed      Zd Zy) test_override_default.<locals>.Chard defaultc                      yNzdefault methodrP   r   s    r?   
_a_defaultz+test_override_default.<locals>.C._a_default8  s    #rA   N)rM   rN   rO   r(   rZ   r  rP   rA   r?   r   r  5  s    N#	$rA   r   c                      yN
overriddenrP   r   s    r?   r-  z'test_override_default.<locals>.<lambda>;  r.  rA   r  r   r  rZ   r   r   s     r?   test_override_defaultr  4  s0    $I $ -AL	A33,rA   c                  b     G d dt               } d | _         |        }|j                  dk(  sJ y )Nc                   8    e Zd Z ed      Z ed      d        Zy)*test_override_default_decorator.<locals>.Cr  rZ   c                      yr  rP   r   s    r?   r  z5test_override_default_decorator.<locals>.C._a_defaultD      #rA   NrM   rN   rO   r(   rZ   r*   r  rP   rA   r?   r   r  A  "    N#		$ 
	$rA   r   c                      yr  rP   r   s    r?   r-  z1test_override_default_decorator.<locals>.<lambda>H  r.  rA   r  r  r  s     r?   test_override_default_decoratorr  @  s0    $I $ -AL	A33,rA   c                  b     G d dt               }  |        }d |_        |j                  dk(  sJ y )Nc                   8    e Zd Z ed      Z ed      d        Zy))test_override_default_instance.<locals>.Cr  rZ   c                      yr  rP   r   s    r?   r  z4test_override_default_instance.<locals>.C._a_defaultQ  r  rA   Nr  rP   rA   r?   r   r  N  r  rA   r   c                      yr  rP   r   s    r?   r-  z0test_override_default_instance.<locals>.<lambda>V  r.  rA   r  r  r  s     r?   test_override_default_instancer  M  s0    $I $ 	
A,AL33,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 y )Nr   )copyc                       e Zd Z e       Zy)test_copy_HasTraits.<locals>.CNr$  rP   rA   r?   r   r  ]  s	    ErA   r   r3   r  r   )r  r   rZ   )r  r   r   ccs       r?   test_copy_HasTraitsr  Z  sZ    I  	
AA33!8O8	aBBD4419933!8O8rA   c                    t        | t              r| }n	 | d      }t        |t              r|j                  }n|j                  }t        |      t
        u rQt        |t              rAt        j                  |      5   ||      }|j                  t               |       ddd       y ||      }||k(  sJ y# 1 sw Y   yxY w)zRun a test of trait.from_stringTrI  N)r{   r$   r  from_string_listfrom_stringr:   
issubclassr  r  r  r0   rR   )	traittyperC  expectedr	  castrl   s         r?   _from_string_testr  i  s    )Y'T*!T%%  H~*Xy"A]]8$ 	9GENN.0%8	9 	9 Q   	9 	9s   <#B88Czs, expected))xyzr  r   r   )z"xx"xx)z'abc'r  NoneNc                 &    t        t        | |       y rz   )r  r(   rC  r  s     r?   test_unicode_from_stringr  |      
 gq(+rA   c                 &    t        t        | |       y rz   )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                 &    t        t        | |       y rz   )r  r   r  s     r?   test_bytes_from_stringr        
 eQ)rA   c                 &    t        t        | |       y rz   )r  r
   r  s     r?   test_cbytes_from_stringr    s    
 fa*rA   r   )r   r3   )123{   z2.0r  c                 &    t        t        | |       y rz   )r  r   r  s     r?   test_int_from_stringr    r  rA   )r   g      ?)z123.5g     ^@)z2.5g      @c                 &    t        t        | |       y rz   )r  r   r  s     r?   test_float_from_stringr    r  rA   )z1+2jy      ?       @c                 &    t        t        | |       y rz   )r  r   r  s     r?   test_complex_from_stringr    s     gq(+rA   )trueT)TRUET)r   T)r  F)FalseF)falseFz1.0c                 &    t        t        | |       y rz   )r  r   r  s     r?   test_bool_from_stringr    s     dAx(rA   r  r   z{1: 2}r   z{"key": "value"}r  rl   c                 &    t        t        | |       y rz   )r  r   r  s     r?   test_dict_from_stringr    s     dAx(rA   r
  [1, 2, "x"]r3   r   r   r  c                 &    t        t        | |       y rz   r  r   r  s     r?   test_list_from_stringr    s     dAx(rA   zs, expected, value_trait)r   r&  rG  r  TrI  Fc                 0    t        t        |      | |       y rz   r  rC  r  r  s      r?   test_list_items_from_stringr    s     d;'H5rA   >   r   r3   r   z{1, 2, "x"}c                 &    t        t        | |       y rz   r  r    r  s     r?   test_set_from_stringr    s     c1h'rA   >   r3   r   r   c                 0    t        t        |      | |       y rz   r  r  s      r?   test_set_items_from_stringr    s     c+&84rA   )r
  rP   )z()rP   )r  r  )z(1, 2, "x")r  )r   r   c                 &    t        t        | |       y rz   r  r%   r  s     r?   test_tuple_from_stringr    s     eQ)rA   zs, expected, value_traits)r  rz   c                 *    t        t        | | |       y rz   r  )rC  r  value_traitss      r?   test_tuple_items_from_stringr     s     e\*Ax8rA   )r   r   )
mod.submodr  znot an identifierr  c                 &    t        t        | |       y rz   )r  r   r  s     r?   test_object_from_stringr  .  s     &84rA   )z127.0.0.1:8000)r  i@  )zhost.tld:80)zhost.tldr  zhost:notaportr  c                 &    t        t        | |       y rz   )r  r!   r  s     r?   test_tcp_from_stringr  <  s     j!X.rA   )r  r  c                 T    t        t        t               t               g      | |       y rz   )r  r)   r   r(   r  s     r?   *test_union_of_list_and_unicode_from_stringr  J  s    
 eTVWY/0!X>rA   )z1.5g      ?c                 T    t        t        t               t               g      | |       y rz   )r  r)   r   r   r  s     r?   'test_union_of_int_and_float_from_stringr  R  s    
 eSUEG,-q(;rA   zs, expected, allow_none)r  NTc                 X    t        t        t               t               g|      | |       y )NrI  )r  r)   r   r   )rC  r  rJ  s      r?   'test_union_of_list_and_dict_from_stringr  Z  s     
 eTVTV,DaRrA   c                  F   t        t              } | D ]f  }t        t        |      }|j                  d      r%t	        |t
              s6t        |t              sG|t        j                  vsZt        | d       t        j                  D ]  }|| vst        | d       y)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)rG  r6   rl   s      r?   test_all_attributer  b  s    	NE ;	4(s#
5$(?JuV_D`9,,, D6!9::	; !! Guv%DEFFGrA   )r  r  r  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-  r8  r<  rD  rF  rJ  rM  rO  rQ  rS  rW  rZ  r]  r`  rb  re  rh  rk  rn  rp  rr  rt  rx  rz  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.  rB  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-  r4  r6  r9  r;  r?  rU  rc  rg  rz  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+I +#) #JH JZ).X ).X+ +"@#( @#F}#8 }#@p(H p(pA*x A*Hp-8 p-f7!x 7!t21H 21jy 
= $ $
!] !I 
 i 
!- !y 
m 0	 } 	 %x %	 
} 0	 } 	 }    	 9 ( 9 - 9 - # #
 .&) &
	 	"9 "
I- I( 
` `9 
	- 	i ] .$I $ =  i I] I	 
} 	 	 I  
*= *.	 .
} *!Y !
' '19 1
- < <
9] 9&i 
9- 9&Bi B
D] D 



 
BZ%sCElT2J!wPRmT 	  
BZ%sCEl+ 	  9 
"- "	 Dy D
+m +J) J
- -BI B
)= )i W] W 1 1hb;x b;J^+( ^+B3 3( *Zy 78 7
	 

#) #>)K9 K
Gy G
@y @
<9 <	 		. 	H} HL= Lm 0- :00 00f",&	 &:&  & "Y "!~ !!!N !!!. !%*P3"!8	

!& R,	, R-	- X*	* X+	+ 	:,
0C^T,	, 	:
$4lNS*	* 	j
,
, 	
	)) 	r
	j	Aq6	eW-.	j
)
) 	r
	$
sc3Z 
4	)) 	)WY/

GI&
sc3Z+
D67d34
F8W67	6	6 	su	$	$
sc3Z 
4	(	( 	)WY/

GI&
sc3Z+
D67d34	55 $$
sZ 
4
*
* 	)giGI%FG

WYK(
sZ')-
9w%89:
7W567	9	9 $	j)	5	5 /)	*%	j!	/	/ 
BZ?	? |<	< 
Br5)FJ+FH\]S	SGrA   