
    gedJ                        d Z ddlmZ 	 ddlmZ n# e$ r	 ddlmZ Y nw xY wddlZddlm	Z	 ddl
Z
ddlZddlmZ ddlmZmZmZmZmZ ddlmZ d	d
lmZmZ d Zg a e
j                    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  Z0d! Z1d" Z2d# Z3d$ Z4d% Z5d& Z6d' Z7d( Z8d) Z9d* Z:d+ Z;d, Z<d- Z=d. Z>d/ Z?d0 Z@d1 ZAd2 ZBd3 ZCd4 ZDd5 ZEd6 ZFd7 ZGdS )8zTest interact and interactive.    )print_function)patchNOrderedDict)
TraitError)interactinteract_manualinteractiveinteractionOutput)annotate   )setupteardownc                      d S N )kwargss    Ilib/python3.11/site-packages/ipywidgets/widgets/tests/test_interaction.pyfr      s    D    c                  
    g a d S r   )	displayedr   r   r   clear_displayr   "   s     IIIr   c                  :    t                               |            d S r   )r   extend)argss    r   record_displayr   '   s    Tr   c           
         |                                 D ]\  }}|dk    r| j        |u sJ t          | |          }||k    sJ | j        j        d|d|d|            t	          |t
          t          f          rBt          |          }t          |          }||u s J d| j        j        d|d|d|            dS )z$Check a single widget against a dictcls.z = z != ztype(z) = N)items	__class__getattr__name__
isinstanceintfloattype)wdattrexpectedvaluetvtes          r   check_widgetr1   .   s   '')) a ah5==;(*****At$$EH$$$AK<P<P<PRVRVRVX]X]X]_g_g&h$$$ %#u.. a%[[(^^RxxxxQ[=Q=Q=QSWSWSWY[Y[Y[]_]_!`xxxa ar   c                     i }| j         D ]!}t          |t                    s
|||j        <   "|                                D ]\  }}||v sJ t          ||         fi | dS )z*Check that widgets are created as expectedN)childrenr&   r   descriptionr"   r1   )	containerto_checkwidgetsr*   keyr+   s         r   check_widgetsr9   =   s     G ' '!V$$ 	'%&GAM".."" ( (Qg~~~~WS\''Q''''( (r   c                      d} t          t          |           }|j        d         }t          |t          j        d|            d S Nhelloar   r>   r    r4   r.   r
   r   r3   r1   r7   Textr>   cr*   s      r   test_single_value_stringrD   J   sR    AAA	
1AL     r   c                      dD ]B} t          t          |           }|j        d         }t          |t          j        d|            Cd S )N)TFr=   r   r>   r?   )r
   r   r3   r1   r7   CheckboxrB   s      r   test_single_value_boolrG   T   sb     
 
QJqMQ 	
 	
 	
 	
 	

 
r   c                      dD ]d} | sd}d}n| dk    r	|  }d| z  }nd| z  }|  }t          t          |           }|j        d         }t          |t          j        d| ||dd	
           ed S )N)g      @      ?g              rJ   rI   r      r=   r>   皙?Tr    r4   r.   minmaxstepreadout)r
   r   r3   r1   r7   FloatSliderr>   expected_minexpected_maxrC   r*   s        r   test_single_value_floatrV   ^   s    # 
 
 	LLLUU2LQ3LLQ3L2LQJqMQ#	
 	
 	
 	
 	

 
r   c                     dD ]~} | sd}d}n| dk    r	|  }d| z  }nd| z  }|  }t          t          |           }t          |j                  dk    sJ |j        d         }t	          |t
          j        d| ||dd	           d S )
N)r      r   r   r   rK   r=      r>   TrM   )r
   r   lenr3   r1   r7   	IntSliderrS   s        r   test_single_value_intr]   u   s     
 
 	LLLUU2LQ3LLQ3L2LQ1:!####JqMQ!	
 	
 	
 	
 	

 
r   c            	      *   g d} | d         }t          t          |           }t          |j                  dk    sJ t	          t
          j        |t          |           t          |           t          |                     }t          ||           d S )N)r<   thereguyr   lisrZ   r    r.   options_options_labels_options_values	r
   r   r[   r3   dictr7   Dropdowntupler9   valuesfirstrC   r+   s       r   test_list_strrn      s    &&&F1IEA6"""Aqz??afff	 	 	A !r   c            	      >   g d} | d         }t          t          |           }t          |j                  dk    sJ t	          t
          j        |t          |           t          d | D                       t          |                     }t          ||           d S )NrK   r   rZ   r   ra   rZ   c              3   4   K   | ]}t          |          V  d S r   )str).0vs     r   	<genexpr>z test_list_int.<locals>.<genexpr>   s(      55c!ff555555r   rc   rg   rk   s       r   test_list_intrv      s    YYF1IEA6"""Aqz??af55f55555f	 	 	A !r   c                     g d} | d         d         }t          t          |           }t          |j                  dk    sJ t	          t
          j        |t          |           dd          }t          ||           d S 	N)rK   ,  )r   d   )rZ      r   r   ra   rZ   312rz   r{   r|   rc   rg   rk   s       r   test_list_tupler      s    +++F1IaLEA6"""Aqz??af''	 	 	A !r   c                      dD ]X} t          j        t                    5  t          |            t	          t
          |           }d d d            n# 1 swxY w Y   Yd S )N)r   )tup)pytestraises
ValueErrorprintr
   r   )badrC   s     r   test_list_tuple_invalidr      s     ( ( ]:&& 	( 	(#JJJA3'''A	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(( (s   &AA	A	c                     t          d          t          ddt                     fD ]} t          t          |           }|j        d         }t          t          j        dt          t          |                                                     | t          | 
                                          t          |                                                     }t          |fi | d S )	NrX   r=   b)r>   r   rC   )r+   r   r+   )r    r4   r.   rd   re   rf   )rh   r
   r   r3   r7   ri   nextiterrl   rj   keysr1   )r+   rC   r*   checks       r   	test_dictr      s    q			qC4    ! ! QJqM tAHHJJ''((!!&&((OO!!((**--
 
 
 	Q  %    ! !r   c                  
   ddl m}  g d}|d         d         } | |          }t          t          |          }t	          |j                  dk    sJ t          t          j        ||dd	          }t          ||           d S )
Nr   r   ry   r   ra   rZ   r}   r   rc   )
collectionsr   r
   r   r[   r3   rh   r7   ri   r9   )r   r"   rm   rl   rC   r+   s         r   test_ordereddictr      s    ''''''***E!HQKE[FA6"""Aqz??a''	 	 	A !r   c                     d } t           |                       }t          t           |                       }t          |j                  dk    sJ t          t          j        |ddd          }t          ||           d S )Nc               3   "   K   dV  dV  dV  d S )NrK   r   rZ   r   r   r   r   yield_valuesz#test_iterable.<locals>.yield_values   s%      r   ra   rZ   rp   r}   rc   )	r   r
   r   r[   r3   rh   r7   ri   r9   )r   rm   rC   r+   s       r   test_iterabler      s         EA<<>>***Aqz??a'!	 	 	A !r   c                     g d} | d         d         }t          t          t          |                     }t          |j                  dk    sJ t          t          j        |t          |           dd          }t          ||           d S rx   )
r
   r   r   r[   r3   rh   r7   ri   rj   r9   rk   s       r   test_iterable_tupler      s    +++F1IaLEA4<<(((Aqz??af''	 	 	A !r   c                  D   ddl m} m}  G d d|           }g d}|d         d         } ||          }t          t          |          }t          |j                  dk    sJ t          t          j	        |t          |          d	d
          }t          ||           d S )Nr   )Mappingr   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )!test_mapping.<locals>.TestMappingc                     || _         d S r   rl   )selfrl   s     r   __init__z*test_mapping.<locals>.TestMapping.__init__  s     DKKKr   c                     t           r   NotImplementedErrorr   s    r   __getitem__z-test_mapping.<locals>.TestMapping.__getitem__      %%r   c                     t           r   r   r   s    r   __len__z)test_mapping.<locals>.TestMapping.__len__  r   r   c                     t           r   r   r   s    r   __iter__z*test_mapping.<locals>.TestMapping.__iter__	  r   r   c                     | j         S r   r   r   s    r   r"   z'test_mapping.<locals>.TestMapping.items  s
    ;r   N)r%   
__module____qualname__r   r   r   r   r"   r   r   r   TestMappingr     s_        	! 	! 	!	& 	& 	&	& 	& 	&	& 	& 	&	 	 	 	 	r   r   ry   r   ra   rZ   r}   r   rc   )r   r   r   r
   r   r[   r3   rh   r7   ri   rj   r9   )r   r   r   r"   rm   rl   rC   r+   s           r   test_mappingr      s    00000000
 
 
 
 
g 
 
 
 +**E!HQKE[FA6"""Aqz??ae''	 	 	A !r   c            	         t          d          dd            } t          |           }t          |t          t          j        d          t          t          j        d          t          t          j        d                     d S )	N
   )n      @r   c                     d S r   r   r   r   gs      r   r   ztest_defaults.<locals>.f      r   r    r.   r   )r   r   )r   r
   r9   rh   r7   r\   rR   r   rC   s     r   test_defaultsr     s    ^^^   ^ 	AA!
!
 
 
 #
 
 
 !
 
 
     r   c                     t          dddt          ddg          ddg          dd            } t          |           }t          |t	          t
          j        d          t	          t
          j        d	          t	          t
          j        d          t	          t
          j        t          ddg          d          t	          t
          j        dd                     d S )Nr   r   g      $@rX   )r>   r   )r   rZ   hir_   r   r   r   hjr   r   rZ   c                     d S r   r   r   s        r   r   ztest_default_values.<locals>.f3  r   r   r   r    rd   r.   r   r_   )r   r   rZ   r_   )	r   r   r
   r9   rh   r7   r\   rR   ri   r   s     r   test_default_valuesr   2  s   h!{GW3E'F'F4QX/ZZZ   [Z 	AA!
!
 
 
 #
 
 
 !
 
 
  ' 233
 
 

  #
 
 
%     r   c            
      (   t          dddiddg          dd	            } t          |           }t          |t          t          j        d
          t          t          j        ddid          t          t          j        dd                     d S )Nr   r>   r   r   r_   r   r   r   rX   otherc                     d S r   r   r   s      r   r   z%test_default_out_of_bounds.<locals>.fR  r   r   g      @r   r   r   )r   rX   r   )r   r
   r9   rh   r7   rR   ri   r   s     r   test_default_out_of_boundsr   Q  s    S!Hw888   98 	AA!
#
 
 
  !H
 
 

  #
 
 
     r   c                      t          dt          j                              d             } t          |           }t	          |t          t          j        d          t          t          j                             d S )Nr   r   r   c                     d S r   r   r   s     r   r   ztest_annotations.<locals>.fi  r   r   r   r    )r   r7   	FloatTextr
   r9   rh   r\   r   s     r   test_annotationsr   h  s    g'))***  +* 	AA!
!
 
 
 !
 
 
     r   c                      t          dd          d	d            } t          | d          }t          |t          t          j        d          t          t          j        d                     d S )
Nr   )r   kwargdefaultc                     d S r   r   )r   r   r   s      r   r   ztest_priority.<locals>.fy  r   r   r   )r   r   )r   r   )r   r   r   )r   r
   r9   rh   r7   rA   r   s     r   test_priorityr   x  s    z444   54 	AW%%%A!
 
 
 
 
 
	 	 	 	 	 	r   c                 D   t          j        t          dt                    5  t	          d          d             }d d d            n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d           d S )NdisplayrX   r=   c                     d S r   r   r=   s    r   fooz!test_decorator_kwarg.<locals>.foo      Dr   r   r   r   r   objectr   r   r   r[   r   r3   r1   r7   r\   r   r   r*   s      r   test_decorator_kwargr     s    	k9n	=	=  	A	 	 
	               y>>Q!a A     s   AAAc                 x    G d dt                     } |            }t          j         t          dt                    5  t	          |j        d          }d d d            n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j        d	           d S )
Nc                       e Zd Zd ZdS ))test_interact_instancemethod.<locals>.Fooc                 $    t          |           d S r   )r   )r   xs     r   showz.test_interact_instancemethod.<locals>.Foo.show  s    !HHHHHr   N)r%   r   r   r   r   r   r   Foor     s#        	 	 	 	 	r   r   r   )r   r   r   r   r   rX   r   )r   r   r   r   r   r   r[   r   r3   r1   r7   r\   )r   r   r   r   r*   s        r   test_interact_instancemethodr     s
       f    	A	k9n	=	= ' 'QVv&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' 'y>>Q!a A     s   A!!A%(A%c                 4   t          j        t          dt                    5  t          dd            }d d d            n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d           d S )Nr   r   c                     d S r   r   r=   s    r   r   z#test_decorator_no_call.<locals>.foo  r   r   r   r   r   r   r   r   r   r   r   r[   r   r3   r1   r7   rA   r   s      r   test_decorator_no_callr     s    	k9n	=	=  		 	 	 
	               y>>Q!a AL     s   ?AAc                 8   dd}t          j        t          dt                    5  t	          |          }d d d            n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d           d S )Nr   c                     d S r   r   r=   s    r   r   ztest_call_interact.<locals>.foo      r   r   r   r   r   r   r   r   r   ifoor*   s       r   test_call_interactr     s       	k9n	=	=  }}              y>>Q!a AL     s   AAAc                    dd}t          j        t          dt                    5  t	          |          }d d d            n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d           t          j        t          dt                    5  d|_        d d d            n# 1 swxY w Y   t          t                    dk    sJ d S )	Nr   c                     d S r   r   r=   s    r   r   z<test_call_interact_on_trait_changed_none_return.<locals>.foo  r   r   r   r   r   r   calledr   r   r   r   r   r   r[   r   r3   r1   r7   rA   r.   r   s       r   /test_call_interact_on_trait_changed_none_returnr     sb      	k9n	=	=  }}              y>>Q!a AL    
k9n	=	=                y>>Qs#   AAA:CCCc                 <   d	d}t          j        t          dt                    5  t	          |d          }d d d            n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d           d S )
Nr   c                     d S r   r   r=   s    r   r   z&test_call_interact_kwargs.<locals>.foo  r   r   r   r   r=   r   r   r   r   r   r   s       r   test_call_interact_kwargsr     s       	k9n	=	= # #r"""# # # # # # # # # # # # # # #y>>Q!a A     s   AA
Ac                 ~   i t          j        t          dt                    5  t          dfd	            }ddd           n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d            |d          }|dk    sJ d	         dk    sJ t          j        t          dt                    5  d
|_        ddd           n# 1 swxY w Y   d	         d
k    sJ t          t                    dk    sJ |j        t          d         k    sJ dS )z*test calling @interact decorated functionsr   r   c                     | d<   | S Nr>   r   r>   r+   s    r   r   z0test_call_decorated_on_trait_change.<locals>.foo      AcFHr   Nr   r   r   r<   r>   r   rZ   r   r   r   r   r*   r>   r+   s       @r   #test_call_decorated_on_trait_changer    s   
A	k9n	=	=  		 	 	 	 	 
	              
 y>>Q!a AL   
 	GA<<<<S6W 
k9n	=	=                S6Xy>>Q7im######s#   AAAC22C69C6c                    i t          j        t          dt                    5  t	          d          dfd	            }ddd           n# 1 swxY w Y   t          t                    dk    sJ t          d         j        d         }t          |t          j
        d	            |d
          }|d
k    sJ d         d
k    sJ t          j        t          dt                    5  d|_        ddd           n# 1 swxY w Y   d         dk    sJ t          t                    dk    sJ |j        t          d         k    sJ dS )z3test calling @interact(foo=bar) decorated functionsr   r   r=   r   c                     | d<   | S r   r   r   s    r   r   z7test_call_decorated_kwargs_on_trait_change.<locals>.foo  r   r   Nr   r   r   r<   r>   r   rZ   r  r   r   r  s       @r   *test_call_decorated_kwargs_on_trait_changer    s   
A	k9n	=	=  	G				 	 	 	 	 
		              
 y>>Q!a AL   
 	GA<<<<S6W 
k9n	=	=                S6Xy>>Q7im######s#   AAA'C;;C?C?c                      t          t          t          j        d          d          } t	          | j                  dk    sJ | j        d         }t          |t          j        dd           d S )NrX   text)r>   r   rZ   r   r   r    r.   r4   )r
   r   r7   fixedr[   r3   r1   rA   rC   r*   s     r   
test_fixedr    sr    Aq))V444Aqz??a	
1AL     r   c                      t          t          d          } | j        d         }t          |t          j        dd           d S )Nr  r   r   r   r	  r@   r  s     r   test_default_descriptionr    sM    A   A	
1AL     r   c                      i fd} t          | t          j        dd                    }|j        d         }t	          |t          j        dd           d|_        d	dik    sJ d S )
Nc                  Z                                                          |            d S r   )clearupdate)r   r+   s    r   record_kwargsz.test_custom_description.<locals>.record_kwargs#  s(    					r   r  r   )r.   r4   r  r   r	  zdifferent textr   )r
   r7   rA   r3   r1   r.   )r  rC   r*   r+   s      @r   test_custom_descriptionr  !  s    
A     	MW\E%R%R%RSSSA	
1AL   
 AG&'''''''r   c                      t          j        d                              t                    } | j        d         }t          |t          j                   d S )NTmanualr   r   )r   rd   widgetr   r3   r1   r7   Buttonr  s     r   test_interact_manual_buttonr  1  sI    %%%,,Q//A	
1A''''''r   c                      d} d } t          j        d          |d          j        }d|j        d         _        | dk    sJ d S )Nr   c                     |dz  }d S )Nr   r   )testarg	callcounts     r   calltestz-test_interact_manual_nocall.<locals>.calltest8  s    Q			r   Tr  rX   )r  r   )r   rd   r  r3   r.   )r  r   rC   s      r   test_interact_manual_nocallr!  6  sZ    I  %%%%h:::AAAJqM>>>>>>r   c                      t          j        t                    } |                                  t	          j        t                    } |                                  d S r   )r   r  r   r  r	   )r*   s    r   test_interact_callr#  >  s?    AHHJJJq!!AHHJJJJJr   c                     d }  t          j        d                              d          | d          j        }|j        dk    sJ  t	          j        d                                          d                              |           }|j        dk    sJ   t          d                                          d          |           j        }|j        dk    sJ d S )Nc                     | S r   r   r   s    r   r   z test_interact_options.<locals>.fF  s    r   Fr  T   r   )r   rd   r  r  r	   )r   r*   s     r   test_interact_optionsr'  E  s      ;&&&..d.;;ADDDKA8t7u---5577"===DDQGGA8u-2   --a007A8tr   c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr   )r   )r   r   r   r   rd   r   r   r   test_interact_options_badr)  Q  s    	z	"	" $ $U####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   =AAc                     t           j        }  | ddd          }t          || ddd           d|_        d|_        t          || ddd           d|_        d|_        d|_        d	|_        t          || ddd           d
|_        t          || d
dd           d|_        t          || ddd           d|_        t          || ddd           t          j	        t                    5  d|_        d d d            n# 1 swxY w Y   t          j	        t                    5  d|_        d d d            n# 1 swxY w Y    | ddd          }t          |ddd            | ddd          }t          |d           t          j	        t                    5   | dd           d d d            d S # 1 swxY w Y   d S )N)rZ      r      r.   rN   rO   r    r.   rN   rO   rK   )rZ   rK   rZ   r+  )r   r   )rX   r,  )rZ   r,     r  rN   rO   r.   r{   r|   )}      r.   r   rN   rO   )r7   IntRangeSliderr1   upperrO   rN   lowerr.   r   r   r   )irswr*   s     r   test_int_range_logicr9  U  s   !D6qa(((AFq9999AGAEFq9999AEAEAGAGFq9999AGFq9999AGFq9999AGFq9999	z	"	"                	z	"	"                 	(((Aq////#Z000A*%%%%	z	"	"                   s6   +C??DD#D77D;>D;F66F:=F:c                     t           j        }  | ddd          }t          || ddd           d|_        d|_        d|_        d|_        t          || ddd           d|_        t          || ddd           d	|_        t          || d	dd           d|_        t          || d
dd           t          j	        t                    5  d|_        d d d            n# 1 swxY w Y   t          j	        t                    5  d|_        d d d            n# 1 swxY w Y    | ddd          }t          |dd           t          j	        t                    5   | dd           d d d            d S # 1 swxY w Y   d S )N)皙?皙?rJ   333333?r-  r.  r;  r<  )rJ   rL   )g      ?r=  )r;  r=  gffffff?grZ   rK   )g@g      @r0  g       @g      @r4  rL   )r7   FloatRangeSliderr1   rN   rO   r7  r6  r.   r   r   r   )frswr*   s     r   test_float_range_logicr@  w  s\   #D8,,,AH""====AEAEAGAGH""====AGH""====AGH""====AGH""====	z	"	"                	z	"	"                 	,,,A####	z	"	"                   s6   	CC!$C!DDDE44E8;E8c                  <   t           j        }  |             }t          |t                                 t	          j        t                    5  d|_        d d d            n# 1 swxY w Y   t          |t                                  | dgdg          }t          || dd           t	          j        t                    5  |j        dz   |_        d d d            n# 1 swxY w Y   t          |d           |j        d	z   |_        t          |d
d           d|_        t          |d           ddi|_        t          |ddi           t	          j        t                    5  d|_        d d d            n# 1 swxY w Y   t          |ddi           d S )Nr3  )rZ   r   r   r   )rd   r.   )r   )rB  )r    r.   rd   )rZ   rZ   )rB  rC  r   )r   rZ   )rd   )	r7   SelectMultipler1   rj   r   r   r   r.   rd   )smwr*   s     r   test_multiple_selectionrF    s[   

 C 	A%''"""" 
z	"	"                %''"""" 	VHQC(((A4;;;; 
z	"	" ! !'D.! ! ! ! ! ! ! ! ! ! ! ! ! ! !$ 	I%AIO26666 AG&!!!! AAIQqE"""" 
z	"	"                QqE""""""s6   A!!A%(A%C  C$'C$*E>>FFc                      d} t          t          |           }|j        d         }t          |t          j        d|            d S r;   )r
   r   r3   r1   r7   rA   rB   s      r   test_interact_noinspectrH    sR    AEQA	
1AL     r   c                      ddl m}  ddlm  G fdd|           } |            }t	          d |          }|                                 |j        dk    sJ d S )	Nr   )ValueWidgetUnicodec                   @    e Zd Z  d          Z              Zd ZdS )*test_get_interact_value.<locals>.TheAnswer	TheAnswerc                     dS )N*   r   r   s    r   get_interact_valuez=test_get_interact_value.<locals>.TheAnswer.get_interact_value  s    2r   N)r%   r   r   _model_namer4   rR  rK  s   r   rO  rN    s>        gk**gii	 	 	 	 	r   rO  c                     | S r   r   rt   s    r   <lambda>z)test_get_interact_value.<locals>.<lambda>  s    a r   rU  rQ  )ipywidgets.widgetsrJ  	traitletsrL  r
   r  result)rJ  rO  r*   rC   rL  s       @r   test_get_interact_valuerZ    s    ......!!!!!!      K   
 		AKK1%%%AHHJJJ8r>>>>>>r   c            	         ddl m} m} dd l}dd l} |             }|                    d          }t          t          j        	                    t          j        
                    t          j                            t                              dd                    5 }|                    |          }d d d            n# 1 swxY w Y   |                    ||           d S )Nr   )r\   WidgetT)drop_defaultsz../../zstate.schema.json)rW  r\   r\  json
jsonschemaget_manager_stateopenospathjoindirnamerealpath__file__loadvalidate)r\   r\  r^  r_  sstater   schemas           r   test_state_schemarm    s   44444444KKK	A$$4$88E	bgll27??27+;+;H+E+EFFReff	g	g kl1              v&&&&&s   C  CC)H__doc__
__future__r   unittest.mockr   ImportErrormockrb  r   r   r   
ipywidgetsr7   rX  r   r   r	   r
   r   r   ipython_genutils.py3compatr   utilsr   r   r   r   fixturer   r   r1   r9   rD   rG   rV   r]   rn   rv   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)  r9  r@  rF  rH  rZ  rm  r   r   r   <module>rw     s   % $ % % % % % %#######    
			 # # # # # #                               / / / / / / # " " " " " " "	 	 	 	    a a a
( 
( 
(  
 
 

 
 
.
 
 
0      ( ( (! ! !$     "    :  *  >  .     "
 
 
   
 
 

 
 
  
 
 
$ $ $4$ $ $8    ( ( ( ( ( (
    
 
 
$ $ $  D  :$# $# $#N    ' ' ' ' 's    