U e5d~)�@s�ddlZddlZddlmZmZddddgZGdd�d�ZGdd�de�Zdd d�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$|dkrddd�}||_t�|_dS)NZ __console__)�__name__�__doc__)�localsr�compile)�selfr �r �/usr/lib64/python3.8/code.py�__init__s  zInteractiveInterpreter.__init__��singlec CsTz|�|||�}Wn&tttfk r8|�|�YdSX|dkrFdS|�|�dS)NFT)r � OverflowError� SyntaxError� ValueError�showsyntaxerror�runcode)r �source�filenameZsymbol�coder r r � runsource&s  z InteractiveInterpreter.runsourcecCs>zt||j�Wn(tk r&�Yn|��YnXdS�N)�execr � SystemExit� showtraceback)r rr r r rMs zInteractiveInterpreter.runcodec Cs�t��\}}}|t_|t_|t_|rp|tkrpz|j\}\}}}} Wntk rVYnXt||||| f�}|t_tjtj kr�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_zPt�|d|d|j�}tjtj krT|� d� |��nt�|d|d|�W5d}}XdS)Nr�r) rr r!r"r#r'�format_exception�tb_nextr%r&r)r*)r Zlast_tbZeir2r 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   ' #c@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.resetbuffercCsRz tjWntk r$dt_YnXz tjWntk rJdt_YnXd}|dkrx|�dtjtj||jjf�n|r�|�dt |��d}zV|r�tj}ntj}z|� |�}Wn&t k r�|�d�YW�qYn X|� |�}Wq�t k �r|�d�|��d}Yq�Xq�|dk�r6|�d |jj�n|d k�rN|�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)rZps1�AttributeErrorZps2r)�version�platform� __class__r�str� raw_input�EOFError�push�KeyboardInterruptr;)r �banner�exitmsgZcprt�more�promptr1r r r r�sH     ��     zInteractiveConsole.interactcCs6|j�|�d�|j�}|�||j�}|s2|��|S)Nr=)r<�appendr*rrr;)r r1rrIr r r rE�s   zInteractiveConsole.pushrcCst|�Sr)�input)r rJr r r rCs zInteractiveConsole.raw_input)Nr:)NN)r)rr8r9rr;rrErCr r r r r�s   6cCsJt|�}|dk r||_n"z ddl}Wntk r8YnX|�||�dS)Nr)rrC�readline� ImportErrorr)rGZreadfuncZlocalrHZconsolerMr r r rs �__main__z-q� store_truez*don't print version and copyright messages)�action�helpr)NNNN)rr'Zcodeoprr�__all__rrrr�argparse�ArgumentParser�parser� add_argument� parse_argsr$�q�flags�quietrGr r r r �s(�t �