
    }eZ                     f   d Z ddlZddlZddlZ ej                  ed      5  ddlmZ ddd       ddl	m
Z
 ddlmZmZ ddlmZ d	 Zd
 Zd Zd Zd Z G d dej,                        Z G d dej,                        Z G d dej,                        Z G d de      Zedk(  rddlmZ  e       dcZZdZ	 	 eZ  ejB                         rSd ejD                         z  Z#ere# e$e e#z         z   Z%n e$e       Z% ejL                  e%       dZ  ejB                         rSejN                  Z( ejR                         Z* e+de*        e+de(       d Z-d  Z. G d! d"e/      Z0 G d# d$e0ej,                        Z1 G d% d&e0ej,                        Z2g d'Z3d( Z4y# 1 sw Y   kxY w# e,$ r  e+d       Y aw xY w))z#Tests for the inputsplitter module.    Ninputsplitter)match)r   )InputTransformer)syntax	syntax_ml)toolsc                     ddl m}  |       } |j                         rHd |j                         z  }d|z   }| | |      z   } |j                  |        |j                         rH |j
                         }|S )zMinimal example of the logic of an interactive interpreter loop.

    This serves as an example, and it is used by the test system with a fake
    raw_input that simulates interactive input.r   )InputSplitter z>>> )IPython.core.inputsplitterr
   push_accepts_moreget_indent_spacespushsource_reset)
input_funcr
   ispindentpromptlinesrcs          G/usr/lib/python3/dist-packages/IPython/core/tests/test_inputsplitter.pymini_interactive_loopr      s     9
/C  #


!*S**,,&
6**	  #


! #


CJ    c                 (    t        |       fd}|S )zDReturn a function that acts like raw_input but feeds the input list.c                 :    	 t              S # t        $ r Y yw xY w)N )nextStopIteration)r   iliness    r   raw_inzpseudo_input.<locals>.raw_in9   s$    	< 		s   
 	)iter)linesr    r   s     @r   pseudo_inputr#   6   s    %[F
 Mr   c                      g d} t        j                  t              5  t        j                  t
        j                  |        d d d        y # 1 sw Y   y xY w)N)
r   r   )r      )
r   )z 
r&   )xr   )z xr&   )z  x   )z    x   )z	xr&   )z	 xr)   )pytestwarnsPendingDeprecationWarningttcheck_pairsr   num_ini_spacestestss    r   test_spacesr3   C   sA    E 
/	0 2
s))512 2 2s   %AAc                  T    g d} t        j                  t        j                  |        y )N))textr5   )ztext # commentztext )ztext # comment
text 
)ztext # comment 
r6   )zline # c 
line
zline 
line
)z"line # c 
line#c2  
line
line #c

zline 
line
line
line 

)r.   r/   r   remove_commentsr1   s    r   test_remove_commentsr8   T   s    E NN3&&.r   c                  |    t        j                         } t        | t              sJ dj	                  |       dk(  sJ y )Ntests   test)r   get_input_encoding
isinstancestrencode)encodings    r   test_get_input_encodingr@   `   s9    %%'Hh$$$ =="g---r   c                       e Zd Zd Zd Zd Zy)NoInputEncodingTestCasec                 f    t         j                  | _         G d d      } |       }|t         _        y )Nc                       e Zd Zy)(NoInputEncodingTestCase.setUp.<locals>.XN)__name__
__module____qualname__ r   r   XrE   k   s    r   rJ   )sysstdin	old_stdin)selfrJ   
fake_stdins      r   setUpzNoInputEncodingTestCase.setUpi   s     S
	r   c                 P    t        j                         }| j                  |d       y )Nascii)r   r;   assertEqual)rN   encs     r   r:   zNoInputEncodingTestCase.testo   s"     $$&g&r   c                 .    | j                   t        _        y N)rM   rK   rL   rN   s    r   tearDownz NoInputEncodingTestCase.tearDownu   s    NN	r   N)rF   rG   rH   rP   r:   rX   rI   r   r   rB   rB   h   s    '#r   rB   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej6                  j9                  dej<                  dv ed      d        Z d Z!y)InputSplitterTestCasec                 6    t        j                         | _         y rV   )r   r
   rW   s    r   rP   zInputSplitterTestCase.setUpz   s    $$&r   c                    | j                   } |j                  d        |j                          | j                  |j                  g        | j                   |j
                         d       | j                  |j                  d       | j                  |j                  d        | j                  |j                  d       y )Nx=1r   r   F)	r   r   resetrS   _bufferr   sourcecode_is_completerN   r   s     r   
test_resetz InputSplitterTestCase.test_reset}   s    hh		b)...0!4R(4())51r   c                    | j                   j                  d       | j                   j                  d       | j                  | j                   j                  d       | j                  t	        | j                   j
                        dkD  d       | j                  | j                   j                         d       | j                  | j                   j
                  g        | j                  | j                   j                  d       y )N12z1
2
r   Tr   )r   _storerS   r`   lenr_   r   rW   s    r   test_sourcez!InputSplitterTestCase.test_source   s    (3TXX--.q0$7..0(;))2."-r   c                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nr]   r   zif 1:
    x=1r*   y=2
r   r   rS   r   rc   s     r   test_indentz!InputSplitterTestCase.test_indent   s    hh...0!4!"...0!4...0!4r   c                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nif 1:r*   z    x=1z  rm   rc   s     r   test_indent2z"InputSplitterTestCase.test_indent2   s    hh...0!4...0!4...0!4r   c                     | j                   } |j                  d        |j                  d       | j                   |j                         d       y )Nrp   z    x = (1+
    2)r*   rm   rc   s     r   test_indent3z"InputSplitterTestCase.test_indent3   sF    hh 	&'...0!4r   c                    | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzif 1: 
    x=1r*   rl   r   zif 1:	
    x=1rm   rc   s     r   test_indent4z"InputSplitterTestCase.test_indent4   s    hh"#...0!4...0!4#$...0!4...0!4r   c                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzif 1:
    passes = 5r*   zif 1:
     passr   zif 1:
     pass   rm   rc   s     r   test_dedent_passz&InputSplitterTestCase.test_dedent_pass   s    hh()...0!4#$...0!4&'...0!4r   c                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzwhile 1:
    breaks = 5r*   zwhile 1:
     breakr   zwhile 1:
     break   rm   rc   s     r   test_dedent_breakz'InputSplitterTestCase.test_dedent_break   s    hh+,...0!4'(...0!4*+...0!4r   c                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzwhile 1:
    continues = 5r*   zwhile 1:
     continuer   zwhile 1:
     continue   rm   rc   s     r   test_dedent_continuez*InputSplitterTestCase.test_dedent_continue   s    hh./...0!4*+...0!4-....0!4r   c                    | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzif 1:
    raised = 4r*   zif 1:
     raise TypeError()r   zif 1:
     raisezif 1:
     raise      rm   rc   s     r   test_dedent_raisez'InputSplitterTestCase.test_dedent_raise   s    hh()...0!401...0!4$%...0!4*+...0!4r   c                    | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzif 1:
    returning = 4r*   zif 1:
     return 5 + 493r   zif 1:
     returnzif 1:
     return      zif 1:
     return(0)rm   rc   s     r   test_dedent_returnz(InputSplitterTestCase.test_dedent_return   s    hh+,...0!4-....0!4%&...0!4+,...0!4()...0!4r   c                 `    | j                   }| j                   |j                  d      d       y )Nr]   T)r   rS   r   rc   s     r   	test_pushzInputSplitterTestCase.test_push   s%    hh%$/r   c                     | j                   }| j                   |j                  d      d       dD ]/  }t        |       | j                   |j                  |      d       1 y )Nrp   F)  x=1z# a commentz  y=2T)r   rS   r   print)rN   r   r   s      r   
test_push2z InputSplitterTestCase.test_push2   sV    hh'*E25 	3D$KXSXXd^T2	3r   c                     | j                   } |j                  d        |j                  d       | j                   |j                  d      d       y )Nzif True:z  a = 1zb = [1,F)r   r   rS   rc   s     r   
test_push3z InputSplitterTestCase.test_push3   sB    hh),e4r   c                     | j                   } |j                  d       | j                   |j                         d       y )Nr]   Fr   r   rS   r   rc   s     r   test_push_accepts_morez,InputSplitterTestCase.test_push_accepts_more   s4    hh...0%8r   c                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nrp   Tr   r   Fr   rc   s     r   test_push_accepts_more2z-InputSplitterTestCase.test_push_accepts_more2  s    hh...0$7...0$7...0%8r   c                     | j                   } |j                  d       | j                   |j                         d       y )Nz
x = (2+
3)Fr   rc   s     r   test_push_accepts_more3z-InputSplitterTestCase.test_push_accepts_more3  s5    hh...0%8r   c                    | j                   } |j                  d        |j                  d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nrp   z    x = (2+z    3)Tz	    y = 3r   Fr   rc   s     r   test_push_accepts_more4z-InputSplitterTestCase.test_push_accepts_more4  s    hh 	...0$7...0$7...0%8r   c                     | j                   } |j                  d        |j                  d        |j                  d        |j                  d       | j                   |j                         d       y )Nztry:z	    a = 5zexcept:z	    raiseTr   rc   s     r   test_push_accepts_more5z-InputSplitterTestCase.test_push_accepts_more5%  sa    hh 	...0$7r   c                     | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y )Nzimport os, \TrK   Fr   rc   s     r   test_continuationz'InputSplitterTestCase.test_continuation/  s^    hh!...0$7...0%8r   c                     | j                   } |j                  d       | j                   |j                         d       y )Nzrun fooFr   rc   s     r   test_syntax_errorz'InputSplitterTestCase.test_syntax_error6  s7    hh 	...0%8r   c                     | j                   j                  d       | j                   j                  d       | j                   j                  d       y )Nu   Pérezu   Ã©u   u'Ã©')r   r   rW   s    r   test_unicodez"InputSplitterTestCase.test_unicode>  s2    i k"n%r   u"   Bug in python 3.9.8 – bpo 45738))      r   alphar)   T)reason	conditionraisesstrictc                 N   | j                   } |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d        |j                  d       | j                   |j                         d       y)z Test issue #2108.z1 \

Fz1 \ z(1 \ Nr   rc   s     r   test_line_continuationz,InputSplitterTestCase.test_line_continuationC  s     hh...0%8 	...0%8 	...0%8r   c                 p   | j                   }| j                   |j                  d      d       | j                   |j                  d      d       | j                   |j                  d      d       | j                   |j                  d      d       | j                   |j                  d	      d       y )
Na = 1)completeNzfor a in range(5):)
incompleter*   z	raise = 2)invalidNz
a = [1,
2,)r   r   zdef a():
 x=1
 global x)r   rS   check_completerc   s     r   test_check_completez)InputSplitterTestCase.test_check_completeY  s    hh+++G46HI+++,@ACTU+++K8:KL+++M:<MN+++,GHJ[\r   N)"rF   rG   rH   rP   rd   rj   rn   rq   rs   ru   rw   ry   r{   r}   r   r   r   r   r   r   r   r   r   r   r   r   r+   markxfailrK   version_infoSystemErrorr   r   rI   r   r   rZ   rZ   y   s    '2.555
5555
550359
99
9$899&
 [[3""&>>	  99 ]r   rZ   c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	InteractiveLoopTestCasez7Tests for an interactive loop like a python shell.
    c                     t        t        |            }i }t        ||       |j                         D ]  \  }}| j	                  ||   |        y)a$  Validate that the given input lines produce the resulting namespace.

        Note: the input lines are given exactly as they would be typed in an
        auto-indenting environment, as mini_interactive_loop above already does
        auto-indenting and prepends spaces to the input.
        N)r   r#   execitemsrS   )rN   r"   nsr   test_nskvs          r   check_nsz InteractiveLoopTestCase.check_nsd  sQ     $L$78S' 88: 	,CAaWQZ+	,r   c                 >    | j                  dgt        d             y )Nr]   r&   r(   r   dictrW   s    r   test_simplez#InteractiveLoopTestCase.test_simplet  s    ugtay)r   c                 @    | j                  ddgt        d             y )Nrp   zx=2r)   r   r   rW   s    r   test_simple2z$InteractiveLoopTestCase.test_simple2w  s    w&q	2r   c                 @    | j                  dgt        dd             y )Nzx=1; y=2r&   r)   )r(   yr   rW   s    r   test_xyzInteractiveLoopTestCase.test_xyz  s    zlD1N3r   c                 D    | j                  g dt        ddd             y )N)rp   za=1zb=2zc=3r&   r)   r   )abcr   rW   s    r   test_abcz InteractiveLoopTestCase.test_abc}  s    14!qA3FGr   c                 @    | j                  g dt        d             y )N)zx =(1+z1+z2)r*   r   r   rW   s    r   
test_multiz"InteractiveLoopTestCase.test_multi  s    *D1I6r   N)
rF   rG   rH   __doc__r   r   r   r   r   r   rI   r   r   r   r   a  s&    , *34H7r   r   c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	IPythonInputTestCaseaS  By just creating a new class whose .isp is a different instance, we
    re-run the same test battery on the new input splitter.

    In addition, this runs the tests over the syntax and syntax_ml dicts that
    were tested by individual functions, as part of the OO interface.

    It also makes some checks on the raw buffer storage.
    c                 6    t        j                         | _         y rV   )r   IPythonInputSplitterrW   s    r   rP   zIPythonInputTestCase.setUp  s    ++-r   c                    | j                   }t        j                         D ]  }|D ]  \  }}|j                  d      r |j                  |dz          |j
                  } |j                         }| j                  |j                         |t        j                  j                  d|||             | j                  |j                         |j                                  y)z6Call all single-line syntax tests from the main objectr   r'   r   N)r   r   values
startswithr   
source_rawr   rS   rstripr.   pair_fail_msgformat)rN   r   examplerawout_tout_rawouts          r   test_syntaxz IPythonInputTestCase.test_syntax  s    hh}} 
	AG% 	A
U>>#&T"..&c&&(  u((//UCPR  !13::<@	A
	Ar   c                     | j                   }t        j                         D ]  }|D ]  }g }g }|D ]>  \  }}||j                  |       | |j                  |       |j                  |       @ |j
                  } |j                         }	dj                  |      j                         }
dj                  |      j                         }| j                  |	j                         |
       | j                  |j                         |         y Nr'   )
r   r   r   appendr   r   r   joinr   rS   )rN   r   r   
line_pairsout_t_parts	raw_partslraw
out_t_partr   r   r   r   s               r   test_syntax_multilinez*IPythonInputTestCase.test_syntax_multiline  s    hh '') 	8G% 8
 	(2 /$D*!-#**:6' !((./ ..&c&&(		+.557ii	*113  u5  !137!8	8r   c                 @   | j                   }t        j                         D ]{  }g }|D ]r  }dj                  d |D              }dj                  d |D              } |j                  |      }| j                  |j                         |j                                t } y )Nr'   c              3   ,   K   | ]  \  }}|	|  y wrV   rI   ).0r_s      r   	<genexpr>zBIPythonInputTestCase.test_syntax_multiline_cell.<locals>.<genexpr>  s     JdaAMJ   
c              3   ,   K   | ]  \  }}|	|  y wrV   rI   )r   r   ts      r   r   zBIPythonInputTestCase.test_syntax_multiline_cell.<locals>.<genexpr>  s     !K!Q]!!Kr   )r   r   r   r   transform_cellrS   r   )rN   r   r   r   r   r   r   r   s           r   test_syntax_multiline_cellz/IPythonInputTestCase.test_syntax_multiline_cell  s    hh '') 	?GK% ?
iiJjJJ		!Kz!KK(c((-  u||~>?	?r   c                     | j                   }dD ]S  \  }}}}d|d|d|d} |j                  |      }| j                  |j                         |j                                U y )N))z%%cellm a
In[1]:cellmr   zIn[1]:)z%%cellm 
line
>>> hir   r   zline
>>> hi)z>>> %%cellm 
line
>>> hir   r   zline
hi)z%%cellm 
>>> hir   r   z>>> hi)z%%cellm 
line1
line2r   r   zline1
line2)z%%cellm 
line1\\
line2r   r   zline1\\
line2zget_ipython().run_cell_magic(z, ))r   r   rS   r   )rN   r   r   namer   cellexpectedr   s           r   test_cellmagic_preemptz+IPythonInputTestCase.test_cellmagic_preempt  sf    hh&
 	>!CtT dDH %#$$S)CSZZ\8??+<=	>r   c                 6   | j                   } G d dt              }|j                  j                  d |              ddddz  fdd	d
z  fdddz  ffD ]E  \  }} |j                  |      }| j                  |j                         |j                                G y )Nc                       e Zd Zd Zd Zd Zy)KIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformerc                     g | _         y rV   )_linesrW   s    r   __init__zTIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformer.__init__  s	     r   c                 @    | j                   j                  |dz          y )N#)r   r   )rN   r   s     r   r   zPIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformer.push  s    ""4#:.r   c                 J    dj                  | j                        }g | _        |S r   )r   r   )rN   r5   s     r   r^   zQIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformer.reset  s     yy- r   N)rF   rG   rH   r   r   r^   rI   r   r   CommentTransformerr     s    !/r   r   r   )za=5za=5#z%ls fooz$get_ipython().run_line_magic(%r, %r))lszfoo#z!ls foo
%ls barz=get_ipython().system(%r)
get_ipython().run_line_magic(%r, %r))zls foo#r   zbar#z1
2
3
%ls foo
4
5z31#
2#
3#
get_ipython().run_line_magic(%r, %r)
4#
5#)r   r   physical_line_transformsinsertr   rS   r   )rN   r   r   r   r   r   s         r   test_multiline_passthroughz/IPythonInputTestCase.test_multiline_passthrough  s    hh
	!1 
	 	$$++A/A/CD >AQQR!a e "  &'adt'tu
 		>MC %#$$S)CSZZ\8??+<=		>r   N)
rF   rG   rH   r   rP   r   r   r   r   r  rI   r   r   r   r     s&    .A8*
?> >r   r   __main__)r   zIn> Tr   z... zInput source was:
zRaw source was:
Byec                  *   t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d	      du sJ t        j                  d
      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ y )Nr   Fabcabc
zabc
ar'   Tz
 zabc
 abc

zabc
d

z	abc
d
e

z
abc 
 
 

)r   
last_blankrI   r   r   test_last_blankr    s    >>"&&&>>% E)))>>'"e+++>>(#u,,,>>$4'''>>% D(((>>(#t+++>>)$,,,>>,'4///>>/*d222>>*+t333r   c                  $   t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      d	u sJ t        j                  d
      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ t        j                  d      d	u sJ y )Nr   Fr  r  zabc

azabc
 
r	  z

Tz

 z
 
zabc

 zabc


zabc

 
zabc

 
 z	abc

 
 
zabc
d


zabc
d
e
f


)r   last_two_blanksrI   r   r   test_last_two_blanksr  #  s   r"e+++u%...w'5000z*e333z*e333y)U222v&$...w'4///w'4///z*d222{+t333|,444}-555/4777~.$66634<<<r   c                       e Zd Zd Zd Zd Zy)CellMagicsCommonc                 P    d}| j                   j                  |      }d}||k(  sJ y )Nz%%cellm line
body
z6get_ipython().run_cell_magic('cellm', 'line', 'body')
)spr   )rN   r   r   refs       r   test_whole_cellz CellMagicsCommon.test_whole_cell9  s,    $gg$$S)Gczzr   c                 v    | j                   j                  d       | j                   j                         du sJ y )Nz%%cellm?Fr  r   r   rW   s    r   test_cellmagic_helpz$CellMagicsCommon.test_cellmagic_help?  s-    Z ww((*e333r   c                 8    | j                   j                          y rV   )r  r^   rW   s    r   rX   zCellMagicsCommon.tearDownC  s    r   N)rF   rG   rH   r  r  rX   rI   r   r   r  r  7  s    4r   r  c                   >    e Zd Z ej                  d      Zd Zd Zy)CellModeCellMagicsFline_input_checkerc                     | j                   }|j                  d       |j                         du sJ |j                  d       |j                         du sJ |j                  d       |j                         du sJ y )Nz%%cellm firstline
Tzline2
r'   r  rN   r  s     r   test_incrementalz#CellModeCellMagics.test_incrementalJ  st    WW
%&##%---
	##%---
##%---r   c                 l    dj                  g d      }| j                  j                  |      }d|v sJ y )Nr'   )z%%writefile foo.py# coding: utf-8u   print(u"üñîçø∂é")r!  )r   r  r   )rN   r   r   s      r   test_no_strip_codingz'CellModeCellMagics.test_no_strip_codingT  s9    ii 
 
 gg$$S) C'''r   N)rF   rG   rH   r   r   r  r  r"  rI   r   r   r  r  G  s    	!	!	!U	;B.(r   r  c                   8    e Zd Z ej                  d      Zd Zy)LineModeCellMagicsTr  c                     | j                   }|j                  d       |j                         du sJ |j                  d       |j                         du sJ y )Nz%%cellm line2
Tr'   Fr  r  s     r   r  z#LineModeCellMagics.test_incrementala  sQ    WW
!"##%---
##%...r   N)rF   rG   rH   r   r   r  r  rI   r   r   r$  r$  ^  s    	!	!	!T	:B/r   r$  ))r   r   )zfor a in b:r*   )zdef f():r*   )zdef f(): #commentr*   )za = ":#not a comment"r   )zdef f():
    a = 1r*   )zdef f():
    return 1r   )z'for a in b:
   if a < 0:       continuer   )za = {r*   )za = {
     1,   )z
b = """123r   r%   )zdef f():
    passr   )z$class Bar:
    def f():
        passr*   )z%class Bar:
    def f():
        raiser*   c                      t         D ]9  \  } }t        j                  |       }dj                  |||       }||k(  r4J |        y )Nz#{!r} != {!r} (expected)
 Code: {!r})indentation_samplesr   find_next_indentr   )ra   expresmsgs       r   test_find_next_indentr-    sJ    ( 	c""4(4;;CdKcz3zr   )5r   unittestr+   rK   r,   DeprecationWarningIPython.corer   r   IPython.core.inputtransformerr   (IPython.core.tests.test_inputtransformerr   r   IPython.testingr   r.   r   r#   r3   r8   r@   TestCaserB   rZ   r   r   rF   r   r   start_prompt
autoindentr   r   r   r   inputr   r   r   r   r   r   r   EOFErrorr  r  objectr  r  r$  r(  r-  rI   r   r   <module>r:     s   )   
V\\$O< 212 : F ':2"	/.#h// #"f]H-- f]P 7h//  7Ff>0 f>X z @ -.CJ!F'#'')2S2244!E&-$88D =D (#'') ..C"#""$C'-%s+# .4=(v  ()8+<+< (.	/)8+<+< 	/ *g2 2F  es$   F7A&F  0F  F F0/F0