3 \v)�@s�ddlZddlZddlZddlmZmZddddgZGdd�d�ZGdd�de�Zdd d�Z e d kr�ej �Z e j d d d d�e j�Zejs�ejjr�dZndZe e�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.6/code.py�__init__s  zInteractiveInterpreter.__init__��singlec CsRy|j|||�}Wn$tttfk r6|j|�dSX|dkrDdS|j|�dS)NFT)r � OverflowError� SyntaxError� ValueError�showsyntaxerror�runcode)r �source�filenameZsymbol�coder r r � runsource's  z InteractiveInterpreter.runsourcec Cs>yt||j�Wn(tk r&�Yn|j�YnXdS)N)�execr � SystemExit� showtraceback)r rr r r rNs zInteractiveInterpreter.runcodec Cs�tj�\}}}|t_|t_|t_|rp|tkrpy|j\}\}}}} Wntk rVYnXt||||| f�}|t_tjtj kr�t j ||�} |j dj | ��ntj|||�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 ras    z&InteractiveInterpreter.showsyntaxerrorc Cs|tj�\t_t_}}|t_zPtj|d|d|j�}tjtj krT|j dj |��ntj|d|d|�Wdd}}XdS)Nr�r) rrr r!r"r&�format_exception�tb_nextr$r%r(r))r Zlast_tbZeir1r r r r�s z$InteractiveInterpreter.showtracebackcCstjj|�dS)N)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� cCstj||�||_|j�dS)N)rrr� resetbuffer)r r rr r r r�s zInteractiveConsole.__init__cCs g|_dS)N)�buffer)r r r r r:�szInteractiveConsole.resetbufferc!CsPy tjWntk r$dt_YnXy tjWntk rJdt_YnXd}|dkrx|jdtjtj||jjf�n|r�|jdt |��d}x�yP|r�tj}ntj}y|j |�}Wn t k r�|jd�PYn X|j |�}Wq�t k �r|jd�|j�d}Yq�Xq�W|dk�r4|jd |jj�n|d k�rL|jd|�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�promptr0r r r r�sF         zInteractiveConsole.interactcCs6|jj|�dj|j�}|j||j�}|s2|j�|S)Nr<)r;�appendr)rrr:)r r0rrHr r r rD�s   zInteractiveConsole.pushrcCst|�S)N)�input)r rIr r r rBs zInteractiveConsole.raw_input)Nr9)NN)r)rr7r8rr:rrDrBr r r r r�s   6c CsJt|�}|dk r||_n"y ddl}Wntk r8YnX|j||�dS)Nr)rrB�readline� ImportErrorr)rFZreadfuncZlocalrGZconsolerLr r r rs �__main__z-q� store_truez*don't print version and copyright messages)�action�helpr)NNNN)rr&�argparseZcodeoprr�__all__rrrr�ArgumentParser�parser� add_argument� parse_argsr#�q�flags�quietrFr r r r �s$t