o
    û›h˜Z  ã                   @   sú  d Z ddlZddlZddlZejedd�� ddlmZ W d  ƒ n1 s&w   Y  ddl	m
Z
 ddlmZmZ ddlmZ d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ ZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ deƒZedkrÏddlmZ eƒ dZZdZz9	 eZ e !¡ r°de "¡  Z#er¡e#e$e e# ƒ Z%ne$e ƒZ%e &e%¡ d Z e !¡ s�ej'Z(e )¡ Z*e+d!e*ƒ e+d"e(ƒ qŠ e,yÎ   e+d#ƒ Y nw d$d%„ Z-d&d'„ Z.G d(d)„ d)e/ƒZ0G d*d+„ d+e0ejƒZ1G d,d-„ d-e0ejƒZ2g d.¢Z3d/d0„ Z4dS )1z#Tests for the inputsplitter module.é    NÚinputsplitter)Úmatch)r   )ÚInputTransformer)ÚsyntaxÚ	syntax_ml)Útoolsc                 C   sX   ddl m} |ƒ }| ¡ r&d| ¡  }d| }|| |ƒ }| |¡ | ¡ s| ¡ }|S )z¾Minimal 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)Z
input_funcr   ÚispÚindentÚpromptÚlineÚsrc© r   ú[c:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/tests/test_inputsplitter.pyÚmini_interactive_loop   s   
ür   c                    s   t | ƒ‰ ‡ fdd„}|S )zDReturn a function that acts like raw_input but feeds the input list.c                    s    zt ˆ ƒW S  ty   Y dS w )NÚ )ÚnextÚStopIteration)r   ©Zilinesr   r   Úraw_in9   s
   
ÿzpseudo_input.<locals>.raw_in)Úiter)Úlinesr   r   r   r   Úpseudo_input6   s   r   c                  C   sF   g d¢} t  t¡� t tj| ¡ W d   ƒ d S 1 sw   Y  d S )N)
©r   r   )r	   é   )Ú
r   )z 
r    )Úxr   )z xr    )z  xé   )z    xé   )z	xr    )z	 xr#   )ÚpytestÚwarnsÚPendingDeprecationWarningÚttÚcheck_pairsr   Znum_ini_spaces©Útestsr   r   r   Útest_spacesC   s   "ÿr,   c                  C   s   g d¢} t  tj| ¡ d S )N))Útextr-   )ztext # commentztext )ztext # comment
útext 
)ztext # comment 
r.   )zline # c 
line
zline 
line
)z"line # c 
line#c2  
line
line #c

zline 
line
line
line 

)r(   r)   r   Zremove_commentsr*   r   r   r   Útest_remove_commentsT   s   r/   c                  C   s,   t  ¡ } t| tƒsJ ‚d | ¡dksJ ‚d S )NÚtests   test)r   Úget_input_encodingÚ
isinstanceÚstrÚencode)Úencodingr   r   r   Útest_get_input_encoding`   s   r6   c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚNoInputEncodingTestCasec                 C   s&   t j| _G dd„ dƒ}|ƒ }|t _d S )Nc                   @   s   e Zd ZdS )z(NoInputEncodingTestCase.setUp.<locals>.XN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚXk   s    r<   )ÚsysÚstdinÚ	old_stdin)Úselfr<   Z
fake_stdinr   r   r   ÚsetUpi   s   
zNoInputEncodingTestCase.setUpc                 C   s   t  ¡ }|  |d¡ d S )NÚascii)r   r1   ÚassertEqual)r@   Úencr   r   r   r0   o   s   zNoInputEncodingTestCase.testc                 C   s   | j t_d S ©N)r?   r=   r>   ©r@   r   r   r   ÚtearDownu   s   z NoInputEncodingTestCase.tearDownN)r9   r:   r;   rA   r0   rG   r   r   r   r   r8   h   s    r8   c                   @   sî   e Z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d#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zejjd/ejd0v ed1d2�d3d4„ ƒZ d5d6„ Z!d7S )8ÚInputSplitterTestCasec                 C   ó   t  ¡ | _ d S rE   )r   r   rF   r   r   r   rA   z   ó   zInputSplitterTestCase.setUpc                 C   sd   | j }| d¡ | ¡  |  |jg ¡ |  | ¡ d¡ |  |jd¡ |  |jd ¡ |  |jd¡ d S )Núx=1r   r   F)	r   r   ÚresetrC   Ú_bufferr   ÚsourceÚcodeZ_is_complete©r@   r   r   r   r   Ú
test_reset}   s   
z InputSplitterTestCase.test_resetc                 C   sv   | j  d¡ | j  d¡ |  | j jd¡ |  t| j jƒdkd¡ |  | j  ¡ d¡ |  | j jg ¡ |  | j jd¡ d S )NÚ1Ú2z1
2
r   Tr   )r   Ú_storerC   rN   ÚlenrM   r   rF   r   r   r   Útest_source‡   s   z!InputSplitterTestCase.test_sourcec                 C   sX   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )NrK   r   zif 1:
    x=1r$   úy=2
©r   r   rC   r   rP   r   r   r   Útest_indent�   ó   


z!InputSplitterTestCase.test_indentc                 C   sX   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Núif 1:r$   z    x=1z  rX   rP   r   r   r   Útest_indent2™   s   


z"InputSplitterTestCase.test_indent2c                 C   s.   | j }| d¡ | d¡ |  | ¡ d¡ d S )Nr[   z    x = (1+
    2)r$   rX   rP   r   r   r   Útest_indent3£   s   

z"InputSplitterTestCase.test_indent3c                 C   sr   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nzif 1: 
    x=1r$   rW   r   zif 1:	
    x=1rX   rP   r   r   r   Útest_indent4«   ó   



z"InputSplitterTestCase.test_indent4c                 C   óX   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nzif 1:
    passes = 5r$   zif 1:
     passr   zif 1:
     pass   rX   rP   r   r   r   Útest_dedent_pass·   ó   


z&InputSplitterTestCase.test_dedent_passc                 C   r`   )Nzwhile 1:
    breaks = 5r$   zwhile 1:
     breakr   zwhile 1:
     break   rX   rP   r   r   r   Útest_dedent_breakÁ   rb   z'InputSplitterTestCase.test_dedent_breakc                 C   r`   )Nzwhile 1:
    continues = 5r$   zwhile 1:
     continuer   zwhile 1:
     continue   rX   rP   r   r   r   Útest_dedent_continueË   rb   z*InputSplitterTestCase.test_dedent_continuec                 C   sr   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nzif 1:
    raised = 4r$   zif 1:
     raise TypeError()r   zif 1:
     raisezif 1:
     raise      rX   rP   r   r   r   Útest_dedent_raiseÕ   r_   z'InputSplitterTestCase.test_dedent_raisec                 C   sŒ   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nzif 1:
    returning = 4r$   zif 1:
     return 5 + 493r   zif 1:
     returnzif 1:
     return      zif 1:
     return(0)rX   rP   r   r   r   Útest_dedent_returná   s   




z(InputSplitterTestCase.test_dedent_returnc                 C   s   | j }|  | d¡d¡ d S )NrK   T)r   rC   r   rP   r   r   r   Ú	test_pushï   s   zInputSplitterTestCase.test_pushc                 C   s@   | j }|  | d¡d¡ dD ]}t|ƒ |  | |¡d¡ qd S )Nr[   F)ú  x=1z# a commentz  y=2T)r   rC   r   Úprint)r@   r   r   r   r   r   Ú
test_push2ó   s   þz InputSplitterTestCase.test_push2c                 C   s0   | j }| d¡ | d¡ |  | d¡d¡ d S )Nzif True:z  a = 1zb = [1,F)r   r   rC   rP   r   r   r   Ú
test_push3ú   s   

z InputSplitterTestCase.test_push3c                 C   ó$   | j }| d¡ |  | ¡ d¡ d S )NrK   F©r   r   rC   r   rP   r   r   r   Útest_push_accepts_more   ó   
z,InputSplitterTestCase.test_push_accepts_morec                 C   sX   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nr[   Trh   r   Frm   rP   r   r   r   Útest_push_accepts_more2  rZ   z-InputSplitterTestCase.test_push_accepts_more2c                 C   rl   )Nz
x = (2+
3)Frm   rP   r   r   r   Útest_push_accepts_more3  ro   z-InputSplitterTestCase.test_push_accepts_more3c                 C   sl   | j }| d¡ | d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nr[   z    x = (2+z    3)Tz	    y = 3r   Frm   rP   r   r   r   Útest_push_accepts_more4  s   




z-InputSplitterTestCase.test_push_accepts_more4c                 C   sB   | j }| d¡ | d¡ | d¡ | d¡ |  | ¡ d¡ d S )Nztry:z	    a = 5zexcept:z	    raiseTrm   rP   r   r   r   Útest_push_accepts_more5%  s   



z-InputSplitterTestCase.test_push_accepts_more5c                 C   s>   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nzimport os, \Tr=   Frm   rP   r   r   r   Útest_continuation/  s
   

z'InputSplitterTestCase.test_continuationc                 C   rl   )Nzrun fooFrm   rP   r   r   r   Útest_syntax_error6  s   
z'InputSplitterTestCase.test_syntax_errorc                 C   s(   | j  d¡ | j  d¡ | j  d¡ d S )Nu   PÃ©rezu   ÃƒÂ©u   u'ÃƒÂ©')r   r   rF   r   r   r   Útest_unicode>  s   z"InputSplitterTestCase.test_unicodeu"   Bug in python 3.9.8 â€“Â bpo 45738))é   é   r   Úalphar#   T)ÚreasonÚ	conditionZraisesÚstrictc                 C   sX   | j }| d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ dS )z Test issue #2108.z1 \

Fz1 \ z(1 \ Nrm   rP   r   r   r   Útest_line_continuationC  s   


z,InputSplitterTestCase.test_line_continuationc                 C   sd   | j }|  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  | d	¡d¡ d S )
Núa = 1)ZcompleteNzfor a in range(5):)Ú
incompleter$   z	raise = 2)ÚinvalidNz
a = [1,
2,)r   r   zdef a():
 x=1
 global x)r   rC   Zcheck_completerP   r   r   r   Útest_check_completeY  s   z)InputSplitterTestCase.test_check_completeN)"r9   r:   r;   rA   rQ   rV   rY   r\   r]   r^   ra   rc   rd   re   rf   rg   rj   rk   rn   rp   rq   rr   rs   rt   ru   rv   r%   ÚmarkZxfailr=   Úversion_infoÚSystemErrorr}   r�   r   r   r   r   rH   y   s@    
		



	
ü
rH   c                   @   ó@   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dS )ÚInteractiveLoopTestCasez7Tests for an interactive loop like a python shell.
    c                 C   s@   t t|ƒƒ}i }t||ƒ | ¡ D ]\}}|  || |¡ qdS )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ÚitemsrC   )r@   r   Únsr   Ztest_nsÚkÚvr   r   r   Úcheck_nsd  s   
ÿz InteractiveLoopTestCase.check_nsc                 C   s   |   dgtdd�¡ d S )NrK   r    ©r"   ©rŒ   ÚdictrF   r   r   r   Útest_simplet  s   z#InteractiveLoopTestCase.test_simplec                 C   s   |   ddgtdd�¡ d S )Nr[   zx=2r#   r�   rŽ   rF   r   r   r   Útest_simple2w  ó   z$InteractiveLoopTestCase.test_simple2c                 C   s   |   dgtddd�¡ d S )Nzx=1; y=2r    r#   )r"   ÚyrŽ   rF   r   r   r   Útest_xyz  r’   zInteractiveLoopTestCase.test_xyc                 C   s   |   g d¢tdddd�¡ d S )N)r[   za=1zb=2zc=3r    r#   rw   )ÚaÚbÚcrŽ   rF   r   r   r   Útest_abc}  s   z InteractiveLoopTestCase.test_abcc                 C   s   |   g d¢tdd�¡ d S )N)zx =(1+z1+z2)r$   r�   rŽ   rF   r   r   r   Ú
test_multi€  r’   z"InteractiveLoopTestCase.test_multiN)
r9   r:   r;   Ú__doc__rŒ   r�   r‘   r”   r˜   r™   r   r   r   r   r†   a  s    r†   c                   @   r…   )Ú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                 C   rI   rE   )r   ÚIPythonInputSplitterrF   r   r   r   rA   Ž  rJ   zIPythonInputTestCase.setUpc                 C   s‚   | j }t ¡ D ]7}|D ]2\}}| d¡rq| |d ¡ |j}| ¡ }|  | ¡ |t	j
 d|||¡¡ |  | ¡ | ¡ ¡ qqdS )z6Call all single-line syntax tests from the main objectr	   r!   r   N)r   r   ÚvaluesÚ
startswithr   Ú
source_rawr   rC   Úrstripr(   Zpair_fail_msgÚformat)r@   r   ÚexampleÚrawÚout_tÚout_rawÚoutr   r   r   Útest_syntax‘  s   
ÿ÷ÿz IPythonInputTestCase.test_syntaxc                 C   s°   | j }t ¡ D ]N}|D ]I}g }g }|D ]\}}|d ur | |¡ |d ur.| |¡ | |¡ q|j}| ¡ }	d |¡ ¡ }
d |¡ ¡ }|  	|	 ¡ |
¡ |  	| ¡ |¡ qqd S ©Nr!   )
r   r   r�   Úappendr   rŸ   r   Újoinr    rC   )r@   r   r¢   Ú
line_pairsÚout_t_partsZ	raw_partsZlrawZ
out_t_partr¥   r¦   r¤   r£   r   r   r   Útest_syntax_multiline   s(   


€ðÿz*IPythonInputTestCase.test_syntax_multilinec                 C   sl   | j }t ¡ D ],}g }|D ]%}d dd„ |D ƒ¡}d dd„ |D ƒ¡}| |¡}|  | ¡ | ¡ ¡ qqd S )Nr!   c                 s   s    � | ]\}}|d ur|V  qd S rE   r   )Ú.0ÚrÚ_r   r   r   Ú	<genexpr>»  ó   € zBIPythonInputTestCase.test_syntax_multiline_cell.<locals>.<genexpr>c                 s   s    � | ]\}}|d ur|V  qd S rE   r   )r®   r°   Útr   r   r   r±   ¼  r²   )r   r   r�   rª   Útransform_cellrC   r    )r@   r   r¢   r¬   r«   r£   r¤   r¦   r   r   r   Útest_syntax_multiline_cellµ  s   
ûýz/IPythonInputTestCase.test_syntax_multiline_cellc                 C   sH   | j }dD ]\}}}}d|||f }| |¡}|  | ¡ | ¡ ¡ qd S )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(%r, %r, %r))r   r´   rC   r    )r@   r   r£   Únamer   ÚcellÚexpectedr¦   r   r   r   Útest_cellmagic_preemptÁ  s   ÿ
ôz+IPythonInputTestCase.test_cellmagic_preemptc                 C   sv   | j }G dd„ dtƒ}|j d|ƒ ¡ dddd fdd	d
 fddd ffD ]\}}| |¡}|  | ¡ | ¡ ¡ q%d S )Nc                   @   r7   )zKIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformerc                 S   s
   g | _ d S rE   )Ú_linesrF   r   r   r   Ú__init__Ô  s   
zTIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformer.__init__c                 S   s   | j  |d ¡ d S )Nú#)r»   r©   )r@   r   r   r   r   r   ×  s   zPIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformer.pushc                 S   s   d  | j¡}g | _|S r¨   )rª   r»   )r@   r-   r   r   r   rL   Ú  s   zQIPythonInputTestCase.test_multiline_passthrough.<locals>.CommentTransformer.resetN)r9   r:   r;   r¼   r   rL   r   r   r   r   ÚCommentTransformerÓ  s    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   Zphysical_line_transformsÚinsertr´   rC   r    )r@   r   r¾   r£   r¹   r¦   r   r   r   Útest_multiline_passthroughÑ  s   


ú
÷z/IPythonInputTestCase.test_multiline_passthroughN)
r9   r:   r;   rš   rA   r§   r­   rµ   rº   rÁ   r   r   r   r   r›   „  s    	r›   Ú__main__)rœ   zIn> Tr	   z... zInput source was:
zRaw source was:
ZByec                   C   sÊ   t  d¡du s	J ‚t  d¡du sJ ‚t  d¡du sJ ‚t  d¡du s$J ‚t  d¡du s-J ‚t  d¡du s6J ‚t  d	¡du s?J ‚t  d
¡du sHJ ‚t  d¡du sQJ ‚t  d¡du sZJ ‚t  d¡du scJ ‚d S )Nr   FÚabcúabc
zabc
ar!   Tz
 zabc
 úabc

zabc
d

z	abc
d
e

z
abc 
 
 

)r   Z
last_blankr   r   r   r   Útest_last_blank  s   rÆ   c                   C   s$  t  d¡du s	J ‚t  d¡du sJ ‚t  d¡du sJ ‚t  d¡du s$J ‚t  d¡du s-J ‚t  d¡du s6J ‚t  d¡d	u s?J ‚t  d
¡d	u sHJ ‚t  d¡d	u sQJ ‚t  d¡d	u sZJ ‚t  d¡d	u scJ ‚t  d¡d	u slJ ‚t  d¡d	u suJ ‚t  d¡d	u s~J ‚t  d¡d	u s‡J ‚t  d¡d	u s�J ‚d S )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   Zlast_two_blanksr   r   r   r   Útest_last_two_blanks#  s    rÇ   c                   @   r7   )ÚCellMagicsCommonc                 C   s$   d}| j  |¡}d}||ksJ ‚d S )Nz%%cellm line
body
z6get_ipython().run_cell_magic('cellm', 'line', 'body')
)Úspr´   )r@   r   r¦   Úrefr   r   r   Útest_whole_cell9  s   z CellMagicsCommon.test_whole_cellc                 C   s"   | j  d¡ | j  ¡ du sJ ‚d S )Nz%%cellm?F©rÉ   r   r   rF   r   r   r   Útest_cellmagic_help?  s   z$CellMagicsCommon.test_cellmagic_helpc                 C   s   | j  ¡  d S rE   )rÉ   rL   rF   r   r   r   rG   C  rJ   zCellMagicsCommon.tearDownN)r9   r:   r;   rË   rÍ   rG   r   r   r   r   rÈ   7  s    rÈ   c                   @   s(   e Zd Zejdd�Zdd„ Zdd„ ZdS )ÚCellModeCellMagicsF©Zline_input_checkerc                 C   sX   | j }| d¡ | ¡ du sJ ‚| d¡ | ¡ du sJ ‚| d¡ | ¡ du s*J ‚d S )Nz%%cellm firstline
Tzline2
r!   rÌ   ©r@   rÉ   r   r   r   Útest_incrementalJ  s   


z#CellModeCellMagics.test_incrementalc                 C   s*   d  g d¢¡}| j |¡}d|v sJ ‚d S )Nr!   )z%%writefile foo.pyú# coding: utf-8u   print(u"Ã¼Ã±Ã®Ã§Ã¸âˆ‚Ã©")rÒ   )rª   rÉ   r´   )r@   r   r¦   r   r   r   Útest_no_strip_codingT  s   z'CellModeCellMagics.test_no_strip_codingN)r9   r:   r;   r   rœ   rÉ   rÑ   rÓ   r   r   r   r   rÎ   G  s    
rÎ   c                   @   s    e Zd Zejdd�Zdd„ ZdS )ÚLineModeCellMagicsTrÏ   c                 C   s>   | j }| d¡ | ¡ du sJ ‚| d¡ | ¡ du sJ ‚d S )Nz%%cellm line2
Tr!   FrÌ   rÐ   r   r   r   rÑ   a  s
   

z#LineModeCellMagics.test_incrementalN)r9   r:   r;   r   rœ   rÉ   rÑ   r   r   r   r   rÔ   ^  s    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:       continuerw   )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                  C   s:   t D ]\} }t | ¡}d ||| ¡}||ksJ |ƒ‚qd S )Nz#{!r} != {!r} (expected)
 Code: {!r})Úindentation_samplesr   Zfind_next_indentr¡   )rO   ÚexpÚresÚmsgr   r   r   Útest_find_next_indent  s
   
ýrÚ   )5rš   Zunittestr%   r=   r&   ÚDeprecationWarningZIPython.corer   r   ZIPython.core.inputtransformerr   Z(IPython.core.tests.test_inputtransformerr   r   ZIPython.testingr   r(   r   r   r,   r/   r6   ZTestCaser8   rH   r†   r›   r9   r
   rœ   Zstart_promptZ
autoindentr   r   r   r   Úinputr   r   rŸ   r£   r   r   ri   ÚEOFErrorrÆ   rÇ   ÚobjectrÈ   rÎ   rÔ   rÖ   rÚ   r   r   r   r   Ú<module>   sd   ÿ	 i#l
ù

ïÿ