3 \v) � @ s� d dl Z d dlZd dlZd dlmZmZ ddddgZG dd� d�ZG dd� de�Zdd d�Z e d kr�ej� Zej ddd d� ej� Zejs�e jjr�dZndZe e� dS )� N)�CommandCompiler�compile_command�InteractiveInterpreter�InteractiveConsole�interactr c @ sB e Zd Zddd�Zddd�Zdd � Zdd d�Zdd � Zdd� ZdS )r Nc C s$ |d krdd d�}|| _ t� | _d S )NZ__console__)�__name__�__doc__)�localsr �compile)�selfr � r �/usr/lib64/python3.6/code.py�__init__ s zInteractiveInterpreter.__init__��singlec C sR y| j |||�}W n$ tttfk r6 | j|� dS X |d krDdS | j|� dS )NFT)r � OverflowError�SyntaxError� ValueError�showsyntaxerror�runcode)r �source�filenameZsymbol�coder r r � runsource' s z InteractiveInterpreter.runsourcec C s> yt || j� W n( tk r& � Y n | j� Y nX d S )N)�execr � SystemExit� showtraceback)r r r r r r N s zInteractiveInterpreter.runcodec C s� t j� \}}}|t _|t _|t _|rp|tkrpy|j\}\}}}} W n tk rV Y nX t||||| f�}|t _t jt j kr�t j||�} | jdj | �� nt j|||� d S )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 a s z&InteractiveInterpreter.showsyntaxerrorc C s| t j� \t _t _}}|t _zPtj|d |d |j�}t jt j krT| j dj|�� nt j|d |d |� W d d }}X d S )Nr � r )r r r r! r" r&