a �DOg~)�@s�ddlZddlZddlmZmZgd�ZGdd�d�ZGdd�de�Zddd �Ze d kr�ddl Z e � �Z e j d d d d�e ��Zejs�ejjr�dZndZee�dS)�N)�CommandCompiler�compile_command)�InteractiveInterpreter�InteractiveConsole�interactrc@sBeZdZddd�Zddd�Zdd �Zdd d �Zd d �Zdd�ZdS)rNcCs$|durddd�}||_t�|_dS)NZ __console__)�__name__�__doc__)�localsr�compile)�selfr �r �/usr/lib64/python3.9/code.py�__init__s  zInteractiveInterpreter.__init__��singlec CsRz|�|||�}Wn$tttfy6|�|�YdS0|durDdS|�|�dS)NFT)r � OverflowError� SyntaxError� ValueError�showsyntaxerror�runcode)r �source�filename�symbol�coder r r � runsource&s  z InteractiveInterpreter.runsourcecCs<zt||j�Wn&ty$�Yn|��Yn0dS�N)�execr � SystemExit� showtraceback)r rr r r rMs  zInteractiveInterpreter.runcodec Cs�t��\}}}|t_|t_|t_|rn|turnz|j\}\}}}} WntyTYn0t||||| f�}|t_tjtj ur�t � ||�} |� d� | ��nt�|||�dS)N�)�sys�exc_info� last_type� last_value�last_tracebackr�argsr� excepthook�__excepthook__� traceback�format_exception_only�write�join) r r�type�value�tb�msgZdummy_filename�lineno�offset�line�linesr r r r`s     z&InteractiveInterpreter.showsyntaxerrorcCs�t��\t_t_}}|t_zXt�|d|d|j�}tjtj urT|� d� |��nt�|d|d|�Wd}}n d}}0dS)Nr�r) r r!r"r#r$r(�format_exception�tb_nextr&r'r*r+)r Zlast_tb�eir3r r r r�s z$InteractiveInterpreter.showtracebackcCstj�|�dSr)r �stderrr*)r �datar r r r*�szInteractiveInterpreter.write)N)rr)N) r� __module__� __qualname__rrrrrr*r r r r rs   ' #rc@s:eZdZddd�Zdd�Zddd�Zd d �Zdd d �ZdS)rN� cCst�||�||_|��dSr)rrr� resetbuffer)r r rr r r r�s zInteractiveConsole.__init__cCs g|_dSr)�buffer)r r r r r=�szInteractiveConsole.resetbuffercCsJz tjWnty"dt_Yn0z tjWntyFdt_Yn0d}|durt|�dtjtj||jjf�n|r�|�dt |��d}zT|r�tj}ntj}z|� |�}Wn$t y�|�d�YW�qYn 0|� |�}Wq�t �y |�d�|��d}Yq�0q�|du�r.|�d |jj�n|d k�rF|�d|�dS) Nz>>> z... zFType "help", "copyright", "credits" or "license" for more information.zPython %s on %s %s (%s) z%s r� z KeyboardInterrupt znow exiting %s... r)r Zps1�AttributeErrorZps2r*�version�platform� __class__r�str� raw_input�EOFError�push�KeyboardInterruptr=)r �banner�exitmsgZcprt�more�promptr2r r r r�sH       ��      zInteractiveConsole.interactcCs6|j�|�d�|j�}|�||j�}|s2|��|S)Nr?)r>�appendr+rrr=)r r2rrKr r r rG�s   zInteractiveConsole.pushrcCst|�Sr)�input)r rLr r r rEs zInteractiveConsole.raw_input)Nr<)NN)r)rr:r;rr=rrGrEr r r r r�s   6rcCsHt|�}|dur||_n z ddl}Wnty6Yn0|�||�dS)Nr)rrE�readline� ImportErrorr)rIZreadfunc�localrJZconsolerOr r r rs  r�__main__z-q� store_truez*don't print version and copyright messages)�action�helpr)NNNN)r r(Zcodeoprr�__all__rrrr�argparse�ArgumentParser�parser� add_argument� parse_argsr%�q�flags�quietrIr r r r �s$t �