Format: application/x-python-code
⬇ Download File (47.0 KB)
   1  o
   2  
   3  ��h+��@sPdZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
   4  Z
   5  ddlmZddlm
   6  Z
   7  ddlmZddlmZddlmZdd	lmZddlmZddlmZdd
   8  lmZmZddlZddlmZddlmZdd
   9  lmZddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)m*Z*m+Z+m,Z,ddl-m.Z/ddl-m0Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7m8Z8ddl9m:Z:ddl;m<Z<ddl=m>Z>ej$Gdd�dej!��Z?dd�Z@dd�ZAdd �ZBd!d"�ZCd#d$�ZDd%d&�ZEd'd(�ZFd)d*�ZGd+d,�ZHd-d.�ZId/d0�ZJd1d2�ZKd3d4�ZLd5d6�ZMd7d8�ZNd9d:�ZOd;d<�ZPd=d>�ZQe/jRd?d@��ZSdAdB�ZTdCdD�ZUdEdF�ZVdGdH�ZWGdIdJ�dJe�ZXdKdL�ZYdMdN�ZZdOdP�Z[dQdR�Z\e/j]dSdT��Z^dUdV�Z_dWdX�Z`dYdZ�Zad[d\�Zbd]d^�Zcd_d`�Zddadb�Zedcdd�Zfdedf�Zgdgdh�Zhdidj�Zidkdl�Zjdmdn�ZkGdodp�dpe1jl�Zmdqdr�Zndsdt�Zodudv�Zpdwdx�Zqdydz�Zrd{d|�Zsd}d~�Ztdd��Zud�d��Zvd�d��Zwd�d��Zxd�d��Zye/�ze)j{du�d�d���Z|e/�ze)j{du�d�d���Z}d�d��Z~d�d��ZGd�d��d�e�Z�Gd�d��d�e�Z�d�d��Z�e/j]d�d���Z�e/j]d�d���Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�e$Gd�d��d�e!��Z�d�d��Z�d�d„Z�d�dĄZ�d�dƄZ�d�dȄZ�d�dʄZ�		�		d�d�d̈́Z�d�dτZ�d�dфZ�d�dӄZ�d�dՄZ�d�dׄZ�d�dلZ�d�dۄZ�d�d݄Z�d�d߄Z�d�d�Z�d�d�Z�d�Z�d�d�Z�d�Z�d�d�Z�dS)�z"Tests for various magic functions.�N)�invalidate_caches)�StringIO)�Path)�sleep)�Thread)�CalledProcessError)�dedent)�TestCase�mock)�get_ipython)�magic)�
  10  UsageError)�Magics�
  11  cell_magic�
  12  line_magic�magics_class�register_cell_magic�register_line_magic)�code�	execution�logging�osm�script)�
  13  decorators)�tools)�capture_output)�find_cmd)�TemporaryDirectory�TemporaryWorkingDirectory)�prepended_to_syspath�)�PdbTestInput)�NamedTemporaryFilec@seZdZdS)�DummyMagicsN)�__name__�
  14  __module__�__qualname__�r'r'�Sc:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/tests/test_magic.pyr#0sr#cCs*d}gd�}tt�|��}||ksJ�dS)Nz#1 3 5-6 7-9 10:15 17: :10 10- -13 :)
  15  )rr )��)��)r,�	)r-�)�N)Nr-)r-N)N�
  16  )NN)�listrZextract_code_ranges)�instr�expected�actualr'r'r(�test_extract_code_ranges3sr5cCspd}gd�}gdgfdggfdggfddggfdgdgfgdgfg}t||�D]\}}t�||�|ks5J�q'dS)Nz;import foo
  17  a = 10
  18  def b():
  19      return 42
  20  
  21  
  22  class A: pass
  23  
  24  
  25  )�a�b�AzA,bzA,a�zr6zdef b():
  26      return 42
  27  zclass A: pass
  28  r9)�zipr�extract_symbols)�sourceZsymbols_argsr3�symbols�expr'r'r(�test_extract_symbolsDs
  29  
  30  ��r?cCs@d}t�t��t�|d�Wd�dS1swYdS)Nz==begin A Ruby program :)=end
  31  def hello
  32  puts 'Hello world'
  33  end�hello)�pytest�raises�SyntaxErrorrr;)r<r'r'r(�:test_extract_symbols_raises_exception_with_non_python_codeQs"�rDcCsTt�t��t�dd�Wd�n1swYt�d�}t|jt�s(J�dS)N�doesntexist�z%doesntexist)rArBr
  34  �_ip�run_line_magic�run_cell�
  35  isinstance�
  36  error_in_exec��resultr'r'r(�test_magic_not_foundZs
  37  �
  38  rNcCsVt�t��t�ddd�Wd�n1swYt�d�}t|jt�s)J�dS)NrE�line�cellz
  39  %%doesntexist)rArBr
  40  rG�run_cell_magicrIrJrKrLr'r'r(�test_cell_magic_not_foundds
  41  �
  42  rRcCs0dd�}t�|�t�d�}t|jt�sJ�dS)NcSsdddS)Nr rr'��shellr'r'r(�failosz%test_magic_error_status.<locals>.failz%fail)rG�register_magic_functionrIrJrK�ZeroDivisionError)rUrMr'r'r(�test_magic_error_statusns
  43  
  44  rXcC�t�dd�dS)z� test that config magic does not raise
  45      can happen if Configurable init is moved too early into
  46      Magics.__init__ as then a Config object will be registered as a
  47      magic.
  48      �configrFN�rGrHr'r'r'r(�test_configvsr\cCsft��}t�dd�Wd�n1swY|j}|���d�dd�}|tt|��ks1J�dS)zQ test that config magic prints available configs in unique and
  49      sorted order. rZrFN�
  50  r )rrGrH�stdout�strip�split�sorted�set)�capturedr^Zconfig_classesr'r'r(�test_config_available_configs�s�rdcCs^t��}t�dd�Wd�n1swY|j}t�d|��d�s-J|�d���dS)z? test that config with a classname prints the class's options. rZ�TerminalInteractiveShellNz"TerminalInteractiveShell.* optionsrzB
  51  
  52  1st line of stdout not like 'TerminalInteractiveShell.* options')rrGrHr^�re�match�
  53  splitlines)rcr^r'r'r(�test_config_print_class�s���ricCsntj��tjd=t�dd�ttjj�dksJ�tjjD]
  54  \}}d|vs'J�qtjd}t|�dks5J�dS)NZ
  55  syscmdlistZrehashxrF�
  56  �.)rGZ
  57  alias_managerZ
  58  clear_aliases�dbrH�len�aliases)�name�cmdZscomsr'r'r(�test_rehashx�s
  59  
  60  rqcCsNt�}d}t|�}|�d|d�d}tjdkrd}n|}|d|ks%J�dS)	z;Test that we don't mangle paths when parsing magic options.zc:\xz-f %szf:r�posixzc:x�fN)rr#�
  61  parse_options�osro)�ip�path�m�optsr3r'r'r(�test_magic_parse_options�s
  62  rzcCsNt�}t|�}|�dddd�\}}d|vsJ�d|vsJ�|ddks%J�dS)z5Magic.parse_options can handle --foo=bar long optionsz--foo --bar=bubbler6�foozbar=�barZbubbleN)rr#rt)rvrxry�_r'r'r(�test_magic_parse_long_options�sr~cC�dS)z�Test %hist -f with temporary filename.
  63  
  64      In [9]: import tempfile
  65  
  66      In [10]: tfile = tempfile.mktemp('.py','tmp-ipython-')
  67  
  68      In [11]: %hist -nl -f $tfile 3
  69  
  70      In [13]: import os; os.unlink(tfile)
  71      Nr'r'r'r'r(�doctest_hist_f��r�cCr)a�Test %hist -op
  72  
  73      In [1]: class b(float):
  74         ...:     pass
  75         ...:
  76  
  77      In [2]: class s(object):
  78         ...:     def __str__(self):
  79         ...:         return 's'
  80         ...:
  81  
  82      In [3]:
  83  
  84      In [4]: class r(b):
  85         ...:     def __repr__(self):
  86         ...:         return 'r'
  87         ...:
  88  
  89      In [5]: class sr(s,r): pass
  90         ...:
  91  
  92      In [6]:
  93  
  94      In [7]: bb=b()
  95  
  96      In [8]: ss=s()
  97  
  98      In [9]: rr=r()
  99  
 100      In [10]: ssrr=sr()
 101  
 102      In [11]: 4.5
 103      Out[11]: 4.5
 104  
 105      In [12]: str(ss)
 106      Out[12]: 's'
 107  
 108      In [13]:
 109  
 110      In [14]: %hist -op
 111      >>> class b:
 112      ...     pass
 113      ...
 114      >>> class s(b):
 115      ...     def __str__(self):
 116      ...         return 's'
 117      ...
 118      >>>
 119      >>> class r(b):
 120      ...     def __repr__(self):
 121      ...         return 'r'
 122      ...
 123      >>> class sr(s,r): pass
 124      >>>
 125      >>> bb=b()
 126      >>> ss=s()
 127      >>> rr=r()
 128      >>> ssrr=sr()
 129      >>> 4.5
 130      4.5
 131      >>> str(ss)
 132      's'
 133      >>>
 134      Nr'r'r'r'r(�doctest_hist_op�r�r�cCsnt�}|jddd�t�� }tj�|d�}|�dd|�tj�|�s%J�Wd�dS1s0wYdS)Nz1+2T�Z
 135  store_historyzhist.py�historyz-pof %s)rrIrrurw�joinrH�isfile)rv�td�tfr'r'r(�
 136  test_hist_pofs"�r�cCs~t�}|j��gd�}t|dd�D]\}}|j�||�q|�dd�|jdjd�|�dks3J�d|�dd�vs=J�dS)	N)�a=1�def b():
 137    return a**2zprint(a,b())r ��start�macroztest 1-3�testr]rF)	r�history_manager�reset�	enumerate�store_inputsrH�user_ns�valuer�)rv�cmds�irpr'r'r(�
 138  test_macros
 139  r�cCs�t�}|j��gd�}|D]	}|j|dd�q|jdjdks"J�t�d��
 140  |�d�Wd�n1s7wYt�d��|�d�Wd�dS1sRwYdS)	z5Test that we can run a multi-line macro successfully.)za=10za+=1zprint(a)z%macro test 2-3Tr�r�za+=1
 141  print(a)
 142  Z12N�13)rr�r�rIr�r��tt�AssertPrints)rvr�rpr'r'r(�test_macro_run&s
 143  �"�r�cCsft�}t��}|�dd�Wd�n1swY|j}d|vs%J�d|vs+J�d|vs1J�dS)zTest %magicrrFNz%magic�IPythonZ	Available)rrrHr^)rvrcr^r'r'r(�test_magic_magic4s�r�cCs@t�d�t�d�dtjvsJ�t�dd�dtjvsJ�dS)z!Test '%reset array' functionalityzimport numpy as npza = np.empty(2)r6r�z-f arrayN)rG�exr�rHr'r'r'r(�test_numpy_reset_array_undec@s
 144  
 145  
 146  r�cCsntjddd�tjddd�ddd�dD�vsJ�t�d	d
 147  �ddd�dD�vs*J�ttjd�d
 148  ks5J�dS)zTest '%reset out' magiczparrot = 'dead'Tr��parrotZdeadcS�g|]}tj|�qSr'�rGr���.0�xr'r'r(�
 149  <listcomp>O�z"test_reset_out.<locals>.<listcomp>)r}�__Z___r�z-f outcSr�r'r�r�r'r'r(r�Qr�ZOutrN)rGrIrHrmr�r'r'r'r(�test_reset_outJsr�cCsdtjddd�ddd�dD�vsJ�t�dd�dd	d�dD�vs#J�tttjd
 150  ��dks0J�dS)
 151  zTest '%reset in' magicr�Tr�cSr�r'r�r�r'r'r(r�Yr�z!test_reset_in.<locals>.<listcomp>)Z_iZ_iiZ_iiir�z-f incSr�r'r�r�r'r'r(r�[r��Inr N)rGrIrHrmrbr�r'r'r'r(�
 152  test_reset_inUs
 153  r�cCsrt�d�t�dtj�tj��t�dd�ttj	d�dks!J�t�dd�ttj	d�dks2J�t�d�d	S)
 154  zTest '%reset dhist' magicztmp = [d for d in _dh]�cd�-Z_dhrr�z-f dhistz_dh = [d for d in tmp]N)
 155  rGrIrHrurw�dirnamerA�__file__rmr�r'r'r'r(�test_reset_dhist_s
 156  r�cCs6t�d�t�d�ttjd�tjjdksJ�dS)z+Test that '%reset in' preserves In[] lengthzprint 'foo'zreset -f inr�r N)rGrIrmr��displayhookZprompt_countr'r'r'r(�test_reset_in_lengthjs
 157  
 158  "r�c@�eZdZdd�ZdS)�TestResetErrorscCs�tGdd�dt��}t�|�|���}ddl}|��}|�d�t�d�Wd�n1s0wYt	|j
 159  �dks>J�|j
 160  D]}d|vsIJ�qAdS)Nc@�eZdZedd��ZdS)z9TestResetErrors.test_reset_redefine.<locals>.KernelMagicscSsdS�Nr')�selfrTr'r'r(�lessw�z>TestResetErrors.test_reset_redefine.<locals>.KernelMagics.lessN)r$r%r&rr�r'r'r'r(�KernelMagicsusr�rZNothingzreset -fr z
 161  Invalid alias)rrrG�register_magicsZ
 162  assertLogsr�	getLogger�inforIrm�output)r�r��cmZlog_mod�log�outr'r'r(�test_reset_redefiness
 163  
 164  
 165  �
 166  
 167  �z#TestResetErrors.test_reset_redefineN)r$r%r&r�r'r'r'r(r�qsr�cCsjt�}|�d�tj}zt�t_|�d�tj��}W|t_n|t_w|����d��}|dks3J�dS)ztest %tb after a SyntaxError�forz%tb�����zSyntaxError: invalid syntaxN)	rrI�sysr^r�getvalue�rstriprhr_)rvZsave_stdoutr��	last_liner'r'r(�test_tb_syntaxerror�s
 168  
 169  r�c	Cs�t�}t�d��
 170  |�d�Wd�n1swY|�d�t�d��-tjddd��
 171  |�d�Wd�n1s?wYWd�dSWd�dS1sWwYdS)N�Wall time: �
 172  %time Nonez%def f(kmjy):
 173      %time print (2*kmjy)ZhihiF��suppresszf('hi')�rr�r�rI�rvr'r'r(�	test_time�s�
 174  ��"�r�c
 175  Cs�t�}t�d��;tjddd��$tjddd��
 176  |�d�Wd�n1s(wYWd�n1s7wYWd�n1sFwYt�d��;tjddd��$tjddd��
 177  |�d�Wd�n1spwYWd�n1swYWd�n1s�wYt�d��;tjddd��$tjddd��
 178  |�d�Wd�n1s�wYWd�n1s�wYWd�n1s�wYt�d��=tjddd��%tjddd��
 179  |�d	�Wd�n	1�swYWd�n	1�swYWd�n	1�s!wYt�d��=tjddd��%tjddd��
 180  |�d
 181  �Wd�n	1�sLwYWd�n	1�s\wYWd�n	1�slwYt�d��=tjddd��%tjddd��
 182  |�d�Wd�n	1�s�wYWd�n	1�s�wYWd�n	1�s�wYt�d��=tjddd��%tjddd��
 183  |�d
 184  �Wd�n	1�s�wYWd�n	1�s�wYWd�n	1�swYt�d��=tjddd��%tjddd��
 185  |�d�Wd�n	1�s-wYWd�n	1�s=wYWd�n	1�sMwYt�d��=tjddd��%tjddd��
 186  |�d�Wd�n	1�sxwYWd�n	1�s�wYWd�n	1�s�wYt�d��Ftjddd��%tjddd��
 187  |�d�Wd�n	1�s�wYWd�n1�s�wYWd�dSWd�dS1�s�wYdS)Nz 123456r�Fr�zCPU times: z%time 123000+456z%time 123000+456;z%time 123000+456 # Commentz%time 123000+456; # Commentz%time 123000+456 # ;CommentZ123456z%%time
 188  123000+456
 189  
 190  
 191  z%%time
 192  123000+456;
 193  
 194  
 195  z%%time
 196  123000+456  # Comment
 197  
 198  
 199  z %%time
 200  123000+456;  # Comment
 201  
 202  
 203  z %%time
 204  123000+456  # ;Comment
 205  
 206  
 207  )rr�r�rI�AssertNotPrintsr�r'r'r(�"test_time_no_output_with_semicolon�s������������������������������������������������ ��$�r�cCsBt�d�tjddksJ�tjd=tjddksJ�tjd=dS)Nz%%time
 208  var_1 = 1
 209  var_2 = 2
 210  Zvar_1r Zvar_2r))rvrIr�r'r'r'r(�test_time_last_not_expression�s
 211  
 212  r�cCs@t�}t�d��|�d�Wd�dS1swYdS)NzCPU times: user r�r�r�r'r'r(�
 213  test_time2�s"�r�cCsRt�}|j�dd�tjddd��|�d�Wd�dS1s"wYdS)z-Erroneous magic function calls, issue gh-3334�runNz	not found�stderr)Zchannelz%%time
 214  run = 0
 215  run += 1)rr��popr�r�rIr�r'r'r(�
 216  test_time3�s
 217  "�r�cCs8t�}|j�dd�|�td��|jddksJ�dS)z2Make sure last statement from time return a value.r�NzF        %%time
 218          a = "ho"
 219          b = "hey"
 220          a+b
 221          r}Zhohey)rr�r�rIrZuser_ns_hiddenr�r'r'r(�test_multiline_time�s��
 222  r�cCs.t�}|�d�|jddksJ�|jd=dS)zL
 223      Test that local_ns is actually global_ns when running a cell magic
 224      z%%time
 225  myvar = 1Zmyvarr N)rrIr�r�r'r'r(�test_time_local_nss
 226  r�cCs�t�dtjt�dd���t�d�dksJ�Wd�n1s wYt�dtjt�dd���t�d�dks;J�Wd�dS1sFwYdS)	z#Ensure ASCII is used when necessaryz
 227  sys.stdout�utf-8��encodingg�����ư>u1 μsN�asciiz1 us)r
 228  �patch�io�
 229  TextIOWrapperrrZ_format_timer'r'r'r(�test_time_microseconds_displays�"�r�cCst�}|�d�tjddd��
 230  |�d�Wd�n1swYtjddd��
 231  |�d�Wd�n1s;wYtjddd��
 232  |�d�Wd�n1sWwY|�d	�tjd
 233  dd��|�d�Wd�dS1sywYdS)Nz%%capture abc
 234  1+2�TrueFr�z'abc' in locals()z'outputs' in dir(abc)�3zabc.outputs[0]z%%capture abc
 235  7+8;�False)rrIr�r�r�r'r'r(�test_capture$s
 236  ���
 237  "�r�cCst�dd�t�dd�dS)zEToggle doctest_mode twice, it should be a no-op and run without errorZdoctest_moderFNr[r'r'r'r(�test_doctest_mode6sr�cCs<tt�}|�dd�ddksJ�|�dd�ddksJ�dS)z*Tests for basic options parsing in magics.r{rFr N�r#rGrt)rxr'r'r(�test_parse_options<sr�cCs>tt�}|jdddd�\}}|ddd�ksJ�|dksJ�d	S)
 238  z[Test to assert preservation of non-option part of magic-block, while parsing magic options.z -n1  -r 13 _ = 314 + foozn:r:T)Zpreserve_non_opts�1r�)�n�rz
 239  _ = 314 + fooNr�)rxry�stmtr'r'r(�-test_parse_options_preserve_non_option_stringEs
 240  �r�cCs0gtjd<t�dd�tjddggksJ�dS)zSTest to assert preservation of non-option part of magic-block, while running magic.�spaces�timeitz;-n1 -r1 spaces.append([s.count(' ') for s in ['document']])rN�rGr�rHr'r'r'r(�"test_run_magic_preserve_code_blockOs
 241  
 242  �r�c	Cs�tj}t��}tj�tj�}z@t�dd|�|�|ksJ�t�dd�|�|ks+J�t�dd|�|�|ks:J�t�dd�|�|ksGJ�Wt�|�dSt�|�w)z+Test various directory handling operations.r��"%s"r�ZpushdZpopdrFN)ru�getcwdrw�realpathrG�ipython_dirrH�chdir)Zcurpath�startdir�ipdirr'r'r(�test_diropsXsr�c	Cs�dtjj_tjtd�}t��}tj�tj	�}zFt
 243  �|��|�d|�Wd�n1s.wYt
 244  �|��
 245  |�d�Wd�n1sHwYWt�
 246  |�dSWt�
 247  |�dSt�
 248  |�w)z#Test OSMagics.cd_force_quiet optionTrSr�Nr�)rGrZZOSMagicsZcd_force_quietrrur�rwr�r�r�r�r�r�)Zosmagicsr�r�r'r'r(�test_cd_force_quietks
 249  ���r�cCs6tjj}td�D]}t�dd�qtjj|ksJ�dS)Nr+�xmoderF)rGZ
 250  InteractiveTB�mode�rangerH)r�r�r'r'r(�
 251  test_xmode|srcsXg�G�fdd�dt�}|�tjd<t�d��gksJ�t�dd��dgks*J�dS)Ncs eZdZ�fdd�Zdd�ZdS)ztest_reset_hard.<locals>.Acs��d�dS�Nr )�append�r���monitorr'r(�__del__�sz"test_reset_hard.<locals>.A.__del__cSr)Nz<A instance>r'rr'r'r(�__repr__�r�z#test_reset_hard.<locals>.A.__repr__N)r$r%r&rrr'rr'r(r8�sr8r6r�z-fr )�objectrGr�rIrH�r8r'rr(�test_reset_hard�s
 252  r
 253  c@r�)�TestXdelcCsjd}|�|�t�dd|j�t�d�tjdj}|gks!J�t�dd�t�d�|dgks3J�d	S)
 254  z3Test that references from %run are cleared by xdel.z`class A(object):
 255      monitor = []
 256      def __del__(self):
 257          self.monitor.append(1)
 258  a = A()
 259  r��%sr6r8Zxdelrr N)	ZmktmprGrH�fnamerIr�r�gcZcollect)r��srcrr'r'r(�	test_xdel�s
 260  
 261  
 262  zTestXdel.test_xdelN)r$r%r&rr'r'r'r(r��rcCr)a_doctest for %who
 263  
 264      In [1]: %reset -sf
 265  
 266      In [2]: alpha = 123
 267  
 268      In [3]: beta = 'beta'
 269  
 270      In [4]: %who int
 271      alpha
 272  
 273      In [5]: %who str
 274      beta
 275  
 276      In [6]: %whos
 277      Variable   Type    Data/Info
 278      ----------------------------
 279      alpha      int     123
 280      beta       str     beta
 281  
 282      In [7]: %who_ls
 283      Out[7]: ['alpha', 'beta']
 284      Nr'r'r'r'r(�doctest_who�r�rcCs,Gdd�dt�}|�tjd<t�dd�dS)z@Check that whos is protected against objects where repr() fails.c@r�)ztest_whos.<locals>.AcSst��r�)�	Exceptionrr'r'r(r�sztest_whos.<locals>.A.__repr__N)r$r%r&rr'r'r'r(r8�rr8r6ZwhosrFN)rrGr�rHr	r'r'r(�	test_whos�srcCr)a"doctest for %precision
 285  
 286      In [1]: f = get_ipython().display_formatter.formatters['text/plain']
 287  
 288      In [2]: %precision 5
 289      Out[2]: '%.5f'
 290  
 291      In [3]: f.float_format
 292      Out[3]: '%.5f'
 293  
 294      In [4]: %precision %e
 295      Out[4]: '%e'
 296  
 297      In [5]: f(3.1415927)
 298      Out[5]: '3.141593e+00'
 299      Nr'r'r'r'r(�doctest_precision�r�rcCr)z�Test debugging a small code with %debug
 300  
 301      In [1]: with PdbTestInput(['c']):
 302         ...:     %debug print("a b") #doctest: +ELLIPSIS
 303         ...:
 304      ...
 305      ipdb> c
 306      a b
 307      In [2]:
 308      Nr'r'r'r'r(�test_debug_magic�r�rcCr)aTest debugging a small code with %debug with locals
 309  
 310      In [1]: with PdbTestInput(['c']):
 311         ...:     def fun():
 312         ...:         res = 1
 313         ...:         %debug print(res)
 314         ...:     fun()
 315         ...:
 316      ...
 317      ipdb> c
 318      1
 319      In [2]:
 320      Nr'r'r'r'r(�test_debug_magic_locals�r�rcCsnt�d��
 321  t�d�Wd�n1swYt�d��t�d�Wd�dS1s0wYdS)Nz
 322  dict.fromkeysz	dict.fr*?u
 323  π.is_integeruπ = 3.14;
 324  π.is_integ*?)r�r�rGrIr'r'r'r(�test_psearch�s�"�rcCsVt�d�t�dd�t�dd�t�dd�t�dd�t�dd�t�dd�d	S)
 325  z%test shlex issues with timeit (#1109)zdef f(*a,**kw): passr�z-n1 "this is a bug".count(" ")z-r1 -n1 f(" ", 1)z-r1 -n1 f(" ", 1, " ", 2, " ")z-r1 -n1 ("a " + "b")z-r1 -n1 f("a " + "b")z-r1 -n1 f("a " + "b ")N)rGr�rHr'r'r'r(�test_timeit_shlex�s
 326  rcC�Ntdd��}t�dd�tjddksJ�t�ddd�tjdd	ks%J�d
 327  S)z)Test %%timeit with IPython special syntaxcS�t�}||jd<dS�N�
 328  lmagic_out�rr��rOrvr'r'r(�lmagic�z*test_timeit_special_syntax.<locals>.lmagicr�z-n1 -r1 %lmagic my liner�my linez-n1 -r1�%lmagic my line2�my line2N�rrGrHr�rQ�r r'r'r(�test_timeit_special_syntax
 329  s
 330  r'cCst�dd�}|dusJ�dS)z.
 331      test whether timeit -o return object
 332      r�z-n10 -r10 -o 1Nr[��resr'r'r(�test_timeit_returnsr*cCs:t�d��t�d�Wd�dS1swYdS)z+
 333      test quiet option of timeit magic
 334      �loopsz%timeit -n1 -r1 -q 1N)r�r�rGrIr'r'r'r(�test_timeit_quiet!s"�r,cCsFt�d��t�dd�}Wd�n1swY|dus!J�dS)Nr+r�z-n1 -r1 -q -o 1)r�r�rGrHr(r'r'r(�test_timeit_return_quiet(s�r-cCs<t�t��t�dd�Wd�dS1swYdS)Nr��return)rArBrCrGrHr'r'r'r(�test_timeit_invalid_return-s"�r/cCr)z'Test %%prun with IPython special syntaxcSrrrrr'r'r(r 4r!z(test_prun_special_syntax.<locals>.lmagic�prunz-q %lmagic my linerr"z-qr#r$Nr%r&r'r'r(�test_prun_special_syntax1s
 335  r1cCs"t�dd�tjddksJ�dS)z9Test that prun does not clobber string escapes (GH #1302)r0z-q x = '\t'r��	N)rGrHr�r'r'r'r(�test_prun_quotesAsr3c	Cs�td�tjD]}td|�qtdt���t�ttj	dd�tj�
 336  tj�t�d�}tj�
 337  d|�z/tj�dd�t�t�	dd�tjddksKJ�t�	d	d�dtjvsXJ�Wtj�|�dStj�|�w)
 338  Nz	sys.path:� ZCWD�load_extZdaft_extensionrZarq�Z
 339  unload_ext)�printr�rwrur�rArB�ImportErrorrGrHr�r�r��insertr�r�r�remove)�pZ	daft_pathr'r'r(�test_extensionHs
 340  r<cCs�t�d�t�}|j��gd�}t|dd�D]\}}|j�||�qt��}tj	�
 341  |d�}|�dd|�Wd�dS1sAwYdS)NZnbformat)r�r�uprint('noël, été', b())r r�znb.ipynb�notebookr)rAZimportorskiprr�r�r�r�rrurwr�rH)rGr�r�rpr��outfiler'r'r(�test_notebook_export_json]s
 342  
 343  "�r?c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
 344  �Zdd�Zd
 345  S)�TestEnvcCs t�dd�}|�t|t��dS)N�envrF)rGrH�
 346  assertTruerJ�dict�r�rAr'r'r(�test_envkszTestEnv.test_envcCs�t�dd�}d}tj�tjddddd���t�dd�}Wd�n1s&wY|d|ks3J�|d	|ks;J�|d
 347  |ksCJ�|ddksKJ�dS)NrArFz<hidden>Zabc123Zssshhh�abc)�API_KEY�SECRET_THING�
 348  JUPYTER_TOKEN�VARrGrHrIrJ)rGrHr
 349  r�rCru�environ)r�rAZhiddenr'r'r(�test_env_secretos ��	�
 350  zTestEnv.test_env_secretcC�lt�dd�}|�|d�|�tjdd�|�t�dd�d�t�dd�}|�|d�|�tjdd�dS)NrAzvar val1�varZval1zvar=val2Zval2�rGrH�assertEqualrurKrDr'r'r(�test_env_get_set_simple��zTestEnv.test_env_get_set_simplecCrM)NrAzvar 'val1 '' 'val2rNz'val1 '' 'val2zvar=val2 val3="val4zval2 val3="val4rOrDr'r'r(�test_env_get_set_complex�rRz TestEnv.test_env_get_set_complexcC�|�tdd��dS)NcS�t�dd�S)NZset_envrNr[r'r'r'r(�<lambda>��z0TestEnv.test_env_set_bad_input.<locals>.<lambda>��assertRaisesr
 351  rr'r'r(�test_env_set_bad_input��zTestEnv.test_env_set_bad_inputcCrT)NcSrU)NrAzvar A=Br[r'r'r'r(rV�rWz1TestEnv.test_env_set_whitespace.<locals>.<lambda>rXrr'r'r(�test_env_set_whitespace�r[zTestEnv.test_env_set_whitespaceN)	r$r%r&rErLrQrSrZr\r'r'r'r(r@is		r@c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
 352  �ZdS)�CellMagicTestCasecCsBt�|dd�}|dks
 353  J�t�d|d�tjddksJ�dS)Nr6r7)r6r7z%%z c
 354  d
 355  r})�czd
 356  )rGrQrIr�)r�rr�r'r'r(�check_ident�szCellMagicTestCase.check_identcCstdd��}|�d�dS)z!Cell magic using simple decoratorcS�||fSr�r'�rOrPr'r'r(�cellm��z:CellMagicTestCase.test_cell_magic_func_deco.<locals>.cellmrbN)rr_�r�rbr'r'r(�test_cell_magic_func_deco�s
 357  z+CellMagicTestCase.test_cell_magic_func_decocCs$dd�}t�|dd�|�d�dS)zCell magic manually registeredcSr`r�r'rar'r'r(rb�sz4CellMagicTestCase.test_cell_magic_reg.<locals>.cellmrPZcellm2N)rGrVr_rdr'r'r(�test_cell_magic_reg�sz%CellMagicTestCase.test_cell_magic_regcCs,tGdd�dt��}t�|�|�d�dS)z Cell magics declared via a classc@r�)z9CellMagicTestCase.test_cell_magic_class.<locals>.MyMagicscS�||fSr�r'�r�rOrPr'r'r(�cellm3�rcz@CellMagicTestCase.test_cell_magic_class.<locals>.MyMagics.cellm3N)r$r%r&rrir'r'r'r(�MyMagics�srjriN)rrrGr�r_)r�rjr'r'r(�test_cell_magic_class�s
 358  z'CellMagicTestCase.test_cell_magic_classcCsBtGdd�dt��}t�|�|�d�t�d�}|dksJ�dS)z$Cell magics declared via a class, #2c@seZdZed�dd��ZdS)z;CellMagicTestCase.test_cell_magic_class2.<locals>.MyMagics2�cellm4cSrgr�r'rhr'r'r(�cellm33�rczCCellMagicTestCase.test_cell_magic_class2.<locals>.MyMagics2.cellm33N)r$r%r&rrmr'r'r'r(�	MyMagics2�srnrlrmN)rrrGr�r_Zfind_cell_magic)r�rnZc33r'r'r(�test_cell_magic_class2�s
 359  
 360  
 361  z(CellMagicTestCase.test_cell_magic_class2N)r$r%r&r_rerfrkror'r'r'r(r]�sr]c	C�t�}t��0}tj�|d�}|�d|d�ddg��t|�jdd�}d|vs(J�d|vs.J�Wd	�d	S1s9wYd	S)
 362  zBasic %%writefile�file1�	writefiler]�line1�line2r�r��line1
 363  N�rrrurwr�rQr�	read_text�rvr�r
 364  �sr'r'r(�	test_file�s ���
 365  "�rzc	Crp)
 366  z-Basic %%writefile with embedded single quotesz'file1'rrr]rsrtr�r�ruNrvrxr'r'r(�test_file_single_quote�� ���
 367  "�r{c	Crp)
 368  z-Basic %%writefile with embedded double quotesz"file1"rrr]rsrtr�r�ruNrvrxr'r'r(�test_file_double_quote�r|r}c	Cs�t�}t��5}tj�|d�}||jd<|�ddd�ddg��t|�jdd	�}d
 369  |vs-J�d|vs3J�Wd�dS1s>wYdS)z%%writefile $filenamerq�filenamerrz	$filenamer]rsrtr�r�ruN)	rrrurwr�r�rQrrwrxr'r'r(�test_file_var_expand
 370  s"
 371  ���
 372  "�rc	Cs�t�}t��C}tj�|d�}|�d|d�ddg��tj|dd��}|��}Wd�n1s0wYd	|vs;J�d|vsAJ�Wd�dS1sLwYdS)
 373  z%%writefile with unicode cellrqrrr]uliné1uliné2r�r�Nuliné1
 374  )	rrrurwr�rQr��open�read)rvr�r
 375  rsryr'r'r(�test_file_unicode"s�
 376  �"�r�c	Cs�t�}t��>}tj�|d�}|�d|d�ddg��|�dd|d�ddg��t|�jd	d
 377  �}d|vs6J�d|vs<J�Wd
 378  �d
 379  S1sGwYd
 380  S)z%%writefile -a amends filesZfile2rrr]rsrtz-a %s�line3�line4r�r�ruzline3
 381  Nrvrxr'r'r(�test_file_amend1s2���
 382  ���
 383  "�r�c	Cszt�}t��-}d}|�dd|d�ddg��t|�jdd�}d	|vs%J�d|vs+J�Wd
 384  �d
 385  S1s6wYd
 386  S)z%%file with spaces in filenamez	file name�filer�r]rsrtr�r�ruN)rrrQr�rrwrxr'r'r(�test_file_spacesOs ���
 387  "�r�cCs4t�}dg|jj_tj|d�}d|jdvsJ�dS)NZwhodarSrP)rrZZScriptMagicsZ
 388  script_magicsr�magics)rv�smr'r'r(�test_script_configcsr�cCstd�t�tj�dSr)r�signal�raise_signal�SIGINTr'r'r'r(�_interrupt_after_1sj�r�cCsbt�}t�t��ttd�}|��|�dtj	�d�|�
 389  �Wd�dS1s*wYdS)N��targetr� from time import sleep; sleep(2))rrArBrrr�r�rQr��
 390  executabler��rv�threadr'r'r(�test_script_raise_on_interruptos
 391  
 392  �
 393  "�r�cCs:t�}ttd�}|��|�ddtj��d�|��dS)Nr�rz--no-raise-error r�)rrr�r�rQr�r�r�r�r'r'r(�%test_script_do_not_raise_on_interrupt{s
 394  
 395  �r�cC�6t�}|�ddtj��d�|jd��dksJ�dS)Nrz
 396  --out output �print('hi')r��hi�rrQr�r�r�r_r�r'r'r(�test_script_out�sr�cCr�)Nrz--err error �+import sys; print('hello', file=sys.stderr)�errorr@r�r�r'r'r(�test_script_err�s
 397  �r�cCsVt�}|�ddtj��d�gd���|jd��dksJ�|jd��dks)J�dS)	Nrz--out output --err error r]�z
 398  import sysr�zprint('hello', file=sys.stderr)r�r�r�r@)rrQr�r�r�r�r_r�r'r'r(�test_script_out_err�s
 399  ��r�c��T�t�}|�ddtj��d�|jd��IdH��dksJ�|jd��s(J�dS)Nrz--bg --out output r�r��hi�rrQr�r�r�r�r_�at_eofr�r'r'r(�test_script_bg_out�s
 400  � r�c�r�)Nrz--bg --err error r�r��hellor�r�r'r'r(�test_script_bg_err�s�
 401  � r�c�s��t�}|�ddtj��d�gd���|jd��IdH��dks$J�|jd��IdH��dks4J�|jd��s=J�|jd��sFJ�dS)	Nrz--bg --out output --err error r]r�r�r�r�r�)	rrQr�r�r�r�r�r_r�r�r'r'r(�test_script_bg_out_err�s�
 402  ��  r�c�s��t�}|�ddtj��d�gd���|jd}|��IdH|jdks'J�|j�	�IdH�
 403  �dks5J�|j�	�IdHdksAJ�|j��sHJ�|j��sOJ�dS)	Nrz--bg --out output --proc p r]r�r;rr��)
 404  rrQr�r�r�r��wait�
 405  returncoder^r�r_r�r�)rvr;r'r'r(�test_script_bg_proc�s �
 406  ��
 407  r�c	CsHt�}dD]}zt|�Wn	tyYqw||jjdvs!J�qdS)N)�sh�bash�perl�rubyrP)rrr�magics_managerr�)rvrpr'r'r(�test_script_defaults�s��r�c�s��t�}tjdk}|r
 408  dnd�td��d��}�fdd�}t|d�}|��t�d	�|�d
 409  tj	�|�|�
 410  �|��}|jdksDJ�dS)N�ntr*r z:    import time
 411      for _ in range(3):
 412          time.sleep(z-)
 413          print(".", flush=True, end="")
 414      cs(td�D]
 415  }t��t|ddd�qdS)Nr*TrF)�flush�end)r�rr7)r���stepr'r(�
 416  print_numbers�s�z7test_script_streams_continiously.<locals>.print_numbersr�r)rz0.1.2.)
 417  rrurorrr�rrQr�r�r�Z
 418  readouterrr�)ZcapsysrvZ
 419  is_windowsrr�r�rcr'r�r(� test_script_streams_continiously�s"�
 420  ��	
 421  r�c@s0eZdZdZed�dd��Zed�dd��ZdS)�FooFooz%class with both %foo and %%foo magicsr{cCr)z
 422  I am line fooNr')r�rOr'r'r(�line_foo�zFooFoo.line_foocCr)zI am cell foo, not line fooNr'rhr'r'r(�cell_foor�zFooFoo.cell_fooN)r$r%r&�__doc__rr�rr�r'r'r'r(r�s
 423  r�cCs�t�}|j�t�|�d�}|ddusJ�|ddusJ�|�d�}|ddus+J�|ddus3J�|dtjjks=J�|�d�}|ddusJJ�|ddusRJ�|dtjjks\J�dS)	z4%%foo and %foo magics are distinguishable to inspectr{�foundTZismagicz%%foo�	docstringz%fooN)rr��registerr�Zobject_inspectr�r�r�)rvZoinfor'r'r(�test_line_cell_infos
 424  
 425  
 426  r�cCsdt�}t|�}t|�}|j}|�|�|jddj|usJ�|�|�|jddj|us0J�dS)NrOr{)rr�r�r�r��__self__)rvZfoo1Zfoo2�mmr'r'r(�test_multiple_magics/s
 427  
 428  r�cCs�t�}|j}|�dd�d|jdvsJ�d|jdvsJ�|�dd�d|jdvs-J�d|jdvs6J�|�dd�|�d	d
 429  �|�dd
 430  �ksJJ�|�ddt�d
 431  ��d|jdvs^J�dS)zTest %alias_magic.Zalias_magicztimeit_alias timeitZtimeit_aliasrOrPz--cell timeit_cell_alias timeitZtimeit_cell_aliasz--line env_alias envrArFZ	env_aliasz&--line history_alias history --params r�Z
 432  history_aliasN)rr�rHr��shlex�quote)rvr�r'r'r(�test_alias_magic:s�r�cCs�t�}|j��gd�}t|dd�D]\}}|j�||�qt��R}tj�|d�}|�	dd|�t
 433  |�jdd�}|�|d	�dksDJ�d
 434  |vsJJ�|�	dd|�t
 435  |�jdd�}|�|d	�dkseJ�d
 436  |vskJ�Wd
 437  �d
 438  S1svwYd
 439  S)zTest %save.)r�r��
 440  print(a, b())r r��testsave.py�savez%s 1-10r�r�rz
 441  coding: utf-8z
 442  -a %s 1-10r)N)
 443  rr�r�r�r�rrurwr�rHrrw�count)rvr�r�rp�tmpdirr��contentr'r'r(�	test_saveTs 
 444  "�r�cCs�t�}|j��gd�}t|dd�D]\}}|j�||�qt��(}tj�|d�}|�	d|�t
 445  |�jdd�}td�}||ksAJ�Wd�dS1sLwYdS)	N)r�zdef b():
 446      return a**2r�z%saver r�r�r�r�r�z�            # coding: utf-8
 447              a=1
 448              def b():
 449                  return a**2
 450              print(a, b())
 451              )
 452  rr�r�r�r�rrurwr�rHrrwr)rvr�r�rpr�rwr�Zexpected_contentr'r'r(�test_save_with_no_argsgs
 453  �	"�r�cCs�t�}|�dd�|�dd�d|jd<|�dd�d|jd<|�dd�|jddks.J�|�dd	�d|jd<|�dd�|jddksHJ�d
 454  S)zTest %store.r5Z
 455  storemagic�storez-z�*rN�'z-rz-d varN)rrHr�r�r'r'r(�
 456  test_store~s
 457  
 458  
 459  r�r�cCs�t�}t�|�}ddg}|�|d�\}}	|�||	||�\}
 460  }}|dur)||
 461  ks)J�|durOtj|
 462  ddd��}
 463  |
 464  ��}Wd�n1sDwY||ksOJ�|dkrY||ksYJ�|durc||kseJ�dSdS)NrFzprxn:r�r�r�r�)rrZ
 465  CodeMagicsrtZ_find_edit_targetr�r�r�)Zarg_s�exp_filenameZ
 466  exp_lineno�exp_contents�exp_is_temprv�MZ	last_callry�argsr~�linenoZis_temprs�contentsr'r'r(�_run_edit_test�s$
 467  
 468  ��r�cCsbt�}|j}|jddd�t�tj��}td�Wd�n1s"wY|jj	|ks/J�dS)z&%edit on interactively defined objects�def foo(): return 1Tr�r{N)
 469  rZexecution_countrIrArBrZInteractivelyDefinedr�r��index)rvr��er'r'r(�test_edit_interactive�s
 470  �r�cCs0t�}|jddd�td|jdddd�dS)	z%edit [cell id]r�Tr�r�r�r )r�r�N)rrIr�r�r�r'r'r(�test_edit_cell�sr�cCstddd�dS)z
 471  %edit fileztest file.py)r�N)r�r'r'r'r(�test_edit_fname�sr�cCsXt�}|�dd�t�d��|�dd�Wd�n1swY|�dd�dS)N�bookmarkZbmnamez-lz	-d bmname)rrHr�r�r�r'r'r(�
 472  test_bookmark�s�r�cCs|t�}|jjd}d|_|�dd�}tjdd��}||�}Wd�n1s'wYt|�ddgks6J�|gks<J�dS)Nzapplication/jsonT�lsmagicrF)�recordrPrO)r�display_formatter�
 473  formatters�enabledrH�warnings�catch_warningsra)rvZjson_formatterr��w�jr'r'r(�
 474  test_ls_magic�s
 475  �r�cCs<dd�}|d�dksJ�|d�dksJ�|d�dksJ�dS)NcSs|��}d�t�|��S)Nr])rhr�rZstrip_initial_indent)ry�linesr'r'r(�sii�r�z&test_strip_initial_indent.<locals>.siiz
 476    a = 1
 477  b = 2za = 1
 478  b = 2z  a
 479      b
 480  cza
 481    b
 482  cza
 483    br')r�r'r'r(�test_strip_initial_indent�sr�c
 484  Cs�dtjj_tjtd�}t��<}z,t�t�	d���|�
 485  d�tj
 486  �|d���Wd�n1s0wYWtj��ntj��wWd�dS1sMwYdS)NFrS�Activating.*z-q {}zquiet_from_arg.log)rGrZ�
 487  LoggingMagics�quietrrr�r�rf�compile�logstart�formatrurwr��logger�logstop�Zlmr�r'r'r(�!test_logging_magic_quiet_from_arg�s
 488  ���"�r�c	C�dtjj_tjtd�}t��9}z)t�t�	d���|�
 489  tj�
 490  |d��Wd�n1s-wYWtj��ntj��wWd�dS1sJwYdS)NTrSr�zquiet_from_config.log)rGrZr�r�rrr�r�rfr�r�rurwr�r�r�r�r'r'r(�$test_logging_magic_quiet_from_config��
 491  ��"�r�c	Cr�)NFrSr�z
 492  not_quiet.log)rGrZr�r�rrr�r�rfr�r�rurwr�r�r�r�r'r'r(�test_logging_magic_not_quiet�r�rcCs8dtjd<gtjd<t�dd�tjddgksJ�dS)N�r6r7�timezb.append("{a}")z{a}r�r'r'r'r(�test_time_no_var_expand�s
 493  
 494  rcCrY)zDTest valid timeit arguments, should not cause SyntaxError (GH #1269)r�z-n1 -r1 a=('#')Nr[r'r'r'r(�test_timeit_argumentssrav
 495  from IPython.core.magic import (
 496      Magics,
 497      magics_class,
 498      line_magic,
 499      cell_magic,
 500  )
 501  
 502  
 503  @magics_class
 504  class LazyMagics(Magics):
 505      @line_magic
 506      def lazy_line(self, line):
 507          print("Lazy Line")
 508  
 509      @cell_magic
 510      def lazy_cell(self, line, cell):
 511          print("Lazy Cell")
 512  
 513  
 514  def load_ipython_extension(ipython):
 515      ipython.register_magics(LazyMagics)
 516  c
 517  Cst�t��t�dd�Wd�n1swYt��}t��\}t|��?t	|�}|d}|�
 518  t�tj�
 519  dt	|j�jdd��t�d��t�dd�Wd�n1sZwYWd�n1siwYWd�dSWd�dS1s�wYdS)NZ	lazy_linerFzlazy_magic_module.py�����z	Lazy Line)rArBr
 520  rvrHrur�rrr�
 521  write_text�MINIMAL_LAZY_MAGICr�Z
 522  register_lazyror�r�)r�r�Zptempdirr�r'r'r(�test_lazy_magics"s$�
 523  
 524  ����"�rzT
 525  print('Loaded my_tmp')
 526  if __name__ == "__main__":
 527      print('I just ran a script')
 528  c	s�t��f}tj�|d��t��jtdd�ddl�ddl�G��fdd�d�j	j
 529  �j	j�}tj
 530  �d|��t��}t�dd	�t�d
 531  �Wd�n1sMwYd}||jks[J�tj
 532  �d�Wd�dS1slwYdS)z3Test that a module can be loaded via an import hookz	my_tmp.pyr�r�rNcs2eZdZd�fdd�	Z�fdd�Z�fdd�ZdS)	z8test_run_module_from_import_hook.<locals>.MyTempImporterNcs|dkr�j�||�SdS�NZmy_tmp)�util�spec_from_loader)r��fullnamerwr�)�	importlibr'r(�	find_specBs�zBtest_run_module_from_import_hook.<locals>.MyTempImporter.find_speccs|dksJ��Sr	r')r�r��fullpathr'r(�get_filenameFszEtest_run_module_from_import_hook.<locals>.MyTempImporter.get_filenamecs"t|����s	J�t��jdd�S)Nr�r�)r�samefilerw)r�rwrr'r(�get_dataJszAtest_run_module_from_import_hook.<locals>.MyTempImporter.get_datar�)r$r%r&rrrr'�rr
 533  r'r(�MyTempImporterAsrr�z	-m my_tmpz
 534  import my_tmpz0Loaded my_tmp
 535  I just ran a script
 536  Loaded my_tmp
 537  )rrurwr�rr�TEST_MODULE�
 538  importlib.abc�importlib.utilrF�MetaPathFinder�SourceLoaderr��	meta_pathr9rrGrHrIr^r�)r�rrcr�r'rr(� test_run_module_from_import_hook8s 
 539  �"�r)Nr�NN)�r�rr�rurfr�r�r�r�r
 540  rr�pathlibrrr�	threadingr�
 541  subprocessr�textwraprZunittestr	r
 542  rAr�rZIPython.corerZIPython.core.errorr
 543  ZIPython.core.magicrrrrrrZIPython.core.magicsrrrrrZIPython.testingr�decrr�ZIPython.utils.iorZIPython.utils.processrZIPython.utils.tempdirrrZIPython.utils.syspathcontextrZ
 544  test_debuggerr!�tempfiler"r#r5r?rDrNrRrXr\rdrirqrzr~r�r�r�r�r�r�Zskipif_not_numpyr�r�r�r�r�r�r�r�r�r�Z
 545  skip_win32r�r�r�r�r�r�r�r�r�r�r�r�rr
 546  Z
 547  TempFileMixinrrrrrrrrr'r*r,r-r/ZskipifZprofiler1r3r<r?r@r]rzr{r}rr�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�rrrrrrrr'r'r'r(�<module>s, 
 548  	
 549  
 550  
 551  
 552  
 553  
 554  B
 555  
 556  	
 557  8
 558  
 559  
 560  
 561  		
 562  	
 563  
 564  
 565  15
 566  
 567  
 568  
 569  
 570  �