Mini Shell

Direktori : /lib64/gedit/plugins/pythonconsole/__pycache__/
Upload File :
Current File : //lib64/gedit/plugins/pythonconsole/__pycache__/console.cpython-36.pyc

3

�CZ:�@sdddlZddlZddlZddlZddlmZmZmZmZm	Z	dZ
Gdd�dej�ZGdd�d�Z
dS)�N)�GLib�Gio�Gtk�Gdk�Pango�
PythonConsole�OutFilec@s�eZdZddiZdZdZdZdZdZdZ	ifd	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd1d(d)�Zd2d+d,�Zd-d.�Zd/d0�Zd'S)3rz
grab-focus�overridezMonospace 10z%org.gnome.gedit.plugins.pythonconsolezorg.gnome.desktop.interfacez(org.gnome.GnomeTerminal.profiles.Defaultz
command-colorzerror-colorcCs�tjj|�tjj|j�|_|jjd|j	�tjj|j
�|_|jjd|j�|j
�|_|jjd|j�|jtjjtjj�|jtjj�tj�|_|j�|jjd�|jjtjj�|j|j�|jj�|jj�}|j d�|_!|j d�|_"|j d�|_#|j	|jd�t$j%d�|_&||_'d|_(|j)d|j*�d�|j+|j*�d	�|j)d
|j*�d�dg|_,d|_-d|_.|j,|j'd
<t/|t0j1j2�|j!�|_1t/|t0j3j2�|j"�|_3|jjd|j4�|jd|j5�dS)NZchangedT�normal�error�commandz^\s+Fz
input-linez>>> �input�rZ__history__zkey-press-eventzmark-set)6r�ScrolledWindow�__init__r�Settings�new�CONSOLE_KEY_BASEZ	_settingsZconnect�on_color_settings_changed�SETTINGS_INTERFACE_DIR�_interface_settings�on_settings_changed�get_profile_settings�_profile_settingsZ
set_policyZ
PolicyTypeZNEVERZ	AUTOMATICZset_shadow_typeZ
ShadowTypeZNONEZTextView�view�reconfigure�set_editableZ
set_wrap_modeZWrapModeZ	WORD_CHAR�addZshow�
get_bufferZ
create_tagr
rr�re�compile�_PythonConsole__spaces_pattern�	namespace�
block_commandZcreate_mark�get_end_iter�insert�history�history_pos�current_commandr�sys�stdout�fileno�stderr�"_PythonConsole__key_press_event_cb�_PythonConsole__mark_set_cb)�selfr"�buf�r1�1/usr/lib64/gedit/plugins/pythonconsole/console.pyr2sD



zPythonConsole.__init__cCstjj|j�S)N)rrrr)r/r1r1r2rgsz"PythonConsole.get_profile_settingscCs|jj�dS)N)r�
grab_focus)r/r1r1r2�
do_grab_focuskszPythonConsole.do_grab_focuscCs�d}|jjd�}|jjd�r"|}n|jjd�}ytj|�}Wn`||jkr�||krrytj|�}WnYnX|dkr�ytj|j�}WnYnXYnX|dkr�|jj|�dS)Nzmonospace-font-namezuse-system-fontZfont)	r�
get_stringrZget_booleanrZFontDescription�DEFAULT_FONTrZmodify_font)r/Z	font_descZsystem_fontZ	font_namer1r1r2rns*
zPythonConsole.reconfigurecCs|j�dS)N)r)r/�settings�keyr1r1r2r�sz!PythonConsole.on_settings_changedcCs0|jjd|j|j��|jjd|j|j��dS)NZ
foreground)rZset_propertyr5�CONSOLE_KEY_ERROR_COLORr�CONSOLE_KEY_COMMAND_COLOR)r/r7r8r1r1r2r�sz'PythonConsole.on_color_settings_changedcCs
d|_dS)N)r")r/r1r1r2�stop�szPythonConsole.stopcCs�tj�}|j|@}|jtjkr6|tjjkr6|j��n�|jtj	koL|tjjk�r|j
�}|jd�}|j|�}|j
�}|j||d�}	|j|	d|_|j|	�|j
�}|j|d�|j
�}|j||�tj|j|	�}
|
dk	r�|j||	|
j�|
j���|j
�}|j|�tj|j�dS|jtj	k�r\|j
�}|jd�}|jd�}|j|�}|j
�}|j||d�}	|j|	d|_|j|	�|j|�}|j|j||�|j|d�|jj�}
|
jd��s�|jdd�d	k�r�|j �r�d|_ d
}n.|
jd��r�d
}n|j!|j�d|_d|_ d
}|j
�}|j||�|j||�|j
�}|j||�|j|�tj|j�dS|jtj"k�sx|jtj#k�r�|j$d�|j%�tj|j�dS|jtj&k�s�|jtj'k�r�|j$d�|j(�tj|j�dS|jtj)k�s|jtj*k�s|jtj+k�rP|j
�}|j|jd��}|j|j,��}|j-|�dk�rL|�sH|j|�dSdS|jtj.k�sl|jtj/k�r||tjj0tjjB@k�r|j
�}|j|jd��}|j|j,��}x|j1�j2��r�|j3��q�W|j4|��r�|j|jd��}|tjj0@�r|j5d|�n
|j|�dS|jtj6k�s,|jtj7k�r�||tjj0tjjB@k�r�|j
�}|j
�}|j|j,��}|j8�x|j1�j2��r�|j8��qnW|j3�|j4|��r�|j
�}|tjj0@�r�|j5d|�n
|j|�dSdS)Nr
F�
z
... Tz
input-line�:�z

z... �\rz>>> Zkey_press_eventrr%���)9rZ accelerator_get_default_mod_mask�stateZkeyvalrZKEY_DZModifierTypeZCONTROL_MASK�destroyZ
KEY_Returnr�get_mark�get_iter_at_markr$�get_textr(�history_addr%Z	move_markr�matchr!�start�endZplace_cursorr�idle_add�
scroll_to_endZ	apply_tagr�rstrip�endswithr#�_PythonConsole__runZKEY_KP_DownZKEY_DownZstop_emission_by_name�history_downZ	KEY_KP_UpZKEY_Up�
history_upZKEY_KP_LeftZKEY_LeftZ
KEY_BackSpace�
get_insert�compareZKEY_KP_HomeZKEY_HomeZ
SHIFT_MASKZget_char�isspaceZforward_charZequal�move_mark_by_nameZ
KEY_KP_EndZKEY_EndZ
backward_char)r/rZeventZ
modifier_maskZevent_stater0Zinp_mark�inp�cur�lineZspacesZlin_mark�linZ	cur_stripZcom_mark�itZinsr1r1r2Z__key_press_event_cb�s�
















z"PythonConsole.__key_press_event_cbcCs8|j|jd��}|j|j��}|jj|j|�dk�dS)Nr
����)rDrCrQrrrR)r/r0rY�namer
�posr1r1r2Z
__mark_set_cb(szPythonConsole.__mark_set_cbcCs0|jj�}|j|jd��}|j�}|j||d�S)Nr
F)rrrDrCr$rE)r/r0rUrVr1r1r2�get_command_line-s
zPythonConsole.get_command_linecCsL|jj�}|jd�}|j|�}|j�}|j||�|j||�|jj�dS)Nr
)rrrCrDr$�deleter%r3)r/rr0ZmarkrUrVr1r1r2�set_command_line3s


zPythonConsole.set_command_linecCs8|j�dkr4t|j�|_||j|jd<|jjd�dS)NrrZ)�strip�lenr&r'�append)r/rWr1r1r2rF<szPythonConsole.history_addcCs<|jdkr8|j�|j|j<|jd|_|j|j|j�dS)NrrZ)r'r^r&r`)r/r1r1r2rPBs
zPythonConsole.history_upcCsF|jt|j�dkrB|j�|j|j<|jd|_|j|j|j�dS)NrZ)r'rbr&r^r`)r/r1r1r2rOHszPythonConsole.history_downcCs&|jj�j�}|jj|dddd�dS)NgFg�?)rrr$�scroll_to_iter)r/�ir1r1r2rKNszPythonConsole.scroll_to_endNcCsF|jj�}|dkr$|j|j�|�n|j|j�||�tj|j�dS)N)rrr%r$Zinsert_with_tagsrrJrK)r/�text�tagr0r1r1r2�writeSs

zPythonConsole.writeFcCs�|jj�}|jd�}|j|j|�|j��t|t�s>t|t�rrxV|D](}|rb|j	d|d|j
�|j|�qDWn$|r�|j	d|d|j
�|j|�|j�}|jd|�|j
|d�|j�}|jd|�|jj|j�dddd�dS)Nz
input-linez>>> r<r
gFg�?)rrrCr_rDr$�
isinstance�list�tuplerhrrNrTr%rd)r/rZdisplay_commandr0rX�crVr1r1r2�eval\s$




zPythonConsole.evalcCs�|jtjt_|_|jtjt_|_yJy$t||j|j�}|dk	rHt|�Wn tk
rjt||j�YnXWn2ttd�r�tj	t
kr�|j�ntj
�YnX|jtjt_|_|jtjt_|_dS)N�	last_type)r*r)r,rmr"�print�SyntaxError�exec�hasattrrn�
SystemExitrB�	traceback�	print_exc)r/r�rr1r1r2Z__runss
zPythonConsole.__runcCsdS)Nr1)r/r1r1r2rB�szPythonConsole.destroy)N)F)�__name__�
__module__�__qualname__Z__gsignals__r6rrZSETTINGS_PROFILE_DIRr:r9rrr4rrrr;r-r.r^r`rFrPrOrKrhrmrNrBr1r1r1r2r#s65	
	
c@steZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZeZdS)rz�A fake output file object. It sends output to a TK test widget,
    and if asked for a file number, returns one set on instance creationcCs||_||_||_dS)N)�fn�consolerg)r/r{rzrgr1r1r2r�szOutFile.__init__cCsdS)Nr1)r/r1r1r2�close�sz
OutFile.closecCsdS)Nr1)r/r1r1r2�flush�sz
OutFile.flushcCs|jS)N)rz)r/r1r1r2r+�szOutFile.filenocCsdS)Nrr1)r/r1r1r2�isatty�szOutFile.isattycCsdS)Nrr1)r/�ar1r1r2�read�szOutFile.readcCsdS)Nrr1)r/r1r1r2�readline�szOutFile.readlinecCsgS)Nr1)r/r1r1r2�	readlines�szOutFile.readlinescCs|jj||j�dS)N)r{rhrg)r/�sr1r1r2rh�sz
OutFile.writecCs|jj||j�dS)N)r{rhrg)r/�lr1r1r2�
writelines�szOutFile.writelinescCstd��dS)N��Illegal seek)r�r�)�IOError)r/rr1r1r2�seek�szOutFile.seekcCstd��dS)Nr��Illegal seek)r�r�)r�)r/r1r1r2�tell�szOutFile.tellN)rwrxry�__doc__rr|r}r+r~r�r�r�rhr�r�r��truncater1r1r1r2r�s)rr)�stringr)rrtZ
gi.repositoryrrrrr�__all__rrrr1r1r1r2�<module>sj