�`^c@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
mZddlmZmZyddlTWn+ek
r�ejdIJejd�nXddlZddlmZmZddlmZdd lmZdd
lmZddl m!Z!ddl"m#Z#dd
l$m%Z%ddl$m&Z&ddl$m'Z'ddl$m(Z(ddl$m)Z)ej*ej+dZ,dZ-dZ.yddl/m0Z0Wnek
r
dZ0nXeja1ddl2Z2e3d�Z4e3e3d�Z5e3a6d�Z7e7e8�e3ej9d�Z:e:e_9defd��YZ;defd��YZ<defd ��YZ=d!efd"��YZ>d#e&j?fd$��YZ@d%efd&��YZAd'e!fd(��YZBd)ejCfd*��YZDd+eDfd,��YZEd-eDfd.��YZFd/ZGd0�ZHeId1kr�ejJd1ejJd'<eH�ne7eK�dS(2i�N(tInteractiveInterpreter(tpython_versiontsystem(t*sK** IDLE can't import Tkinter. Your Python may not be configured for Tk. **i(tEditorWindowt
fixwordbreaks(tFileList(tColorDelegator(t
UndoDelegator(tOutputWindow(tidleConf(tidlever(trpc(tDebugger(tRemoteDebugger(t
macosxSupportt_s 127.0.0.1i(tSIGTERMicCsyd}|d||f7}|dkr;tj||�}n|j�}|r^|d|7}n|d|j|f7}|S(sFormat warnings the IDLE way.s!
Warning (from warnings module):
s File "%s", line %s
s %s
s%s: %s
N(tNonet linecachetgetlinetstript__name__(tmessagetcategorytfilenametlinenotlinets((s%/sys/lib/python2.7/idlelib/PyShell.pytidle_formatwarning8scCsf|dkrt}ny3|jt||||d|��|jd�Wnttfk
ranXdS(sShow Idle-format warning (after replacing warnings.showwarning).
The differences are the formatter called, the file=None replacement,
which can be None, the capture of the consequence AttributeError,
and the output of a hard-coded prompt.
Rs>>> N(Rtwarning_streamtwriteRtAttributeErrortIOError(RRRRtfileR((s%/sys/lib/python2.7/idlelib/PyShell.pytidle_showwarningEs cCsL|r*tdkrHtjatt_qHntdk rHtt_dandS(s>Replace warning.showwarning with idle_showwarning, or reverse.N(t_warnings_showwarningRtwarningstshowwarningR#(tcapture((s%/sys/lib/python2.7/idlelib/PyShell.pytcapture_warningsXs cCsotj}i}xBt|�D]4}|d |ddkr|j|�||<qqW||�|j|�dS(soExtend linecache.checkcache to preserve the <pyshell#...> entries
Rather than repeating the linecache code, patch it to save the
<pyshell#...> entries, call the original linecache.checkcache()
(skipping them), and then restore the saved entries.
orig_checkcache is bound at definition time to the original
method, allowing it to be patched.
ii�s<>N(Rtcachetlisttpoptupdate(Rtorig_checkcacheR)tsavetkey((s%/sys/lib/python2.7/idlelib/PyShell.pytextended_linecache_checkcachegs
tPyShellEditorWindowcBs�eZdZd�ZdddddgZd�Zdd�Zdd�Zd�Z d�Z
d�Zd�Zd�Z
d�ZRS(s6Regular text edit window in IDLE, supports breakpointscGs�g|_tj||�|jjd|j�|jjd|j�|jjd|jj�t j
jtj
�d�|_|jj|d�}|jj|�|jjr�|j�ndS(Ns<<set-breakpoint-here>>s<<clear-breakpoint-here>>s<<open-python-shell>>sbreakpoints.lstcSs|j�|�dS(N(trestore_file_breaks(told_hooktself((s%/sys/lib/python2.7/idlelib/PyShell.pytfilename_changed_hook�s
(tbreakpointsRt__init__ttexttbindtset_breakpoint_heretclear_breakpoint_heretflistt
open_shelltostpathtjoinR
t
GetUserCfgDirtbreakpointPathtiotfilename_change_hooktset_filename_change_hookRR2(R4targsR5((s%/sys/lib/python2.7/idlelib/PyShell.pyR7�s tCuts<<cut>>trmenu_check_cuttCopys<<copy>>trmenu_check_copytPastes <<paste>>trmenu_check_pastesSet Breakpoints<<set-breakpoint-here>>sClear Breakpoints<<clear-breakpoint-here>>cCs�|j}|jj}|jdd|d|d�y|jj|�}Wn!tk
rm|jj|�nXy&|jj j
j}|j||�WnnXdS(NtBREAKs%d.0i(
R8RCRttag_addR6tindext
ValueErrortappendR<tpyshelltinterptdebuggerR:(R4RR8Rtitdebug((s%/sys/lib/python2.7/idlelib/PyShell.pytset_breakpoint�s
cCsU|j}|jj}|s)|j�dStt|jd���}|j|�dS(Ntinsert(R8RCRtbelltinttfloatRORW(R4teventR8RR((s%/sys/lib/python2.7/idlelib/PyShell.pyR:�s
cCs�|j}|jj}|s)|j�dStt|jd���}y|jj|�WnnX|j ddd�y&|j
jjj
}|j||�WnnXdS(NRXRMsinsert linestartsinsert lineend +1char(R8RCRRYRZR[ROR6tremovet
tag_removeR<RRRSRTR;(R4R\R8RRRV((s%/sys/lib/python2.7/idlelib/PyShell.pyR;�s"
cCs�|jr~|j}|jj}|s2|j�dSg|_|jddt�y#|jjj j
}|j|�Wq~q~XndS(NRMs1.0(R6R8RCRRYR^tENDR<RRRSRTtclear_file_breaks(R4R8RRV((s%/sys/lib/python2.7/idlelib/PyShell.pyR`�s
c CsO|j}|jj}y+t|jd��}|j�}WdQXWntk
rYg}nXy�t|jd��}x1|D])}|j|d�sy|j|�qyqyW|j �|j}|r�j|dt
|�d�nWdQXWn`tk
rJ}t|jdt
�sKt|j_tjddd d
t
|�d|j�qKnXdS(s#Save breakpoints when file is savedtrNtwt=s
tbreakpoint_error_displayedttitles
IDLE ErrorRs$Unable to update breakpoint list:
%stparent(R6RCRtopenRBt readlinesR!t
startswithRtupdate_breakpointststrtgetattrtroottFalsetTrueRdttkMessageBoxt showerrorR8(R4tbreaksRtold_filetlinestnew_fileRterr((s%/sys/lib/python2.7/idlelib/PyShell.pytstore_file_breaks�s.
,
cCs�|jj�|jdkr dS|jj}|dkr<dStjj|j�r�t |jd�j
�}x_|D]T}|j|d�rpt|t
|�d�}x|D]}|j|�q�WqpqpWndS(NRaRci(R8R,RCRRR>R?tisfileRBRgRhRitevaltlenRW(R4RRtRtbreakpoint_linenumberstbreakpoint_linenumber((s%/sys/lib/python2.7/idlelib/PyShell.pyR2s
cCs4|j}|jd�}|j|�}||_dS(s3Retrieves all the breakpoints in the current windowRMN(R8t
tag_rangestranges_to_linenumbersR6(R4R8trangestlinenumber_list((s%/sys/lib/python2.7/idlelib/PyShell.pyRjs cCs�g}x�tdt|�d�D]f}tt||j��}tt||dj��}x'||kr�|j|�|d7}q^WqW|S(Niii(trangeRzRZR[tstringRQ(R4RRtRORtend((s%/sys/lib/python2.7/idlelib/PyShell.pyR~s
cCs|j�tj|�dS(s7Extend base method - clear breaks when module is closedN(R`Rt_close(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�+s
(RGs<<cut>>srmenu_check_cut(RIs<<copy>>RJ(RKs <<paste>>srmenu_check_pasteN(sSet Breakpoints<<set-breakpoint-here>>N(sClear Breakpoints<<clear-breakpoint-here>>N(Rt
__module__t__doc__R7Rtrmenu_specsRWR:R;R`RwR2RjR~R�(((s%/sys/lib/python2.7/idlelib/PyShell.pyR1~s / tPyShellFileListcBs&eZdZeZdZdd�ZRS(s8Extend base class: IDLE supports a shell and breakpointscCsQ|jr|jjj�n.t|�|_|jrJ|jj�sJdSn|jS(N(RRttoptwakeuptPyShelltbeginR(R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR=:s N(RR�R�R1RRRRR=(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�1stModifiedColorDelegatorcBs2eZdZd�Zd�Zd�Zd�ZRS(s8Extend base class: colorizer for the shell window itselfcCstj|�|j�dS(N(RR7tLoadTagDefs(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR7Hs
cCs7|jddd�|jddd�tj|�dS(NtTODOs1.0tiomarktSYNC(R^RNRtrecolorize_main(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�LscCs�tj|�tjddd�}|jjiidd6dd6d6tj|d�d6tj|d�d6tj|d �d 6�dS(
NtmaintThemetnamet
backgroundt
foregroundtstdintstdouttstderrtconsole(RR�R
t GetOptionttagdefsR,RtGetHighlight(R4ttheme((s%/sys/lib/python2.7/idlelib/PyShell.pyR�Qs
cCs+x$|jD]}|j|dd�q
WdS(NR�R�(R�R^(R4ttag((s%/sys/lib/python2.7/idlelib/PyShell.pytremovecolors[s(RR�R�R7R�R�R�(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�Es
tModifiedUndoDelegatorcBs&eZdZdd�Zdd�ZRS(s;Extend base class: forbid insert/delete before the I/O markcCs[y-|jj|dd�r,|jj�dSWntk
r@nXtj||||�dS(Nt<R�(tdelegatetcompareRYtTclErrorRRX(R4ROtcharsttags((s%/sys/lib/python2.7/idlelib/PyShell.pyRXcs
cCsXy-|jj|dd�r,|jj�dSWntk
r@nXtj|||�dS(NR�R�(R�R�RYR�Rtdelete(R4tindex1tindex2((s%/sys/lib/python2.7/idlelib/PyShell.pyR�ls
N(RR�R�RRXR�(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�`s tMyRPCClientcBseZd�ZRS(cCs
t�dS(s0Override the base class - just re-raise EOFErrorN(tEOFError(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyt
handle_EOFxs(RR�R�(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�vstModifiedInterpretercBsFeZd�ZdZdZdZd�Zd�Zd�Z e
d�Zd�Zd�Z
d�Zd�Ze
d �ZdZd
�ZdZd�Zd�Zd
�Zd�ZdZd�Zdd�Zd�Zd�Zd�Zdd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'RS( cCsf||_tjdj}tj|d|�d|_t|_ d|_
t|_|j
jj|_dS(Nt__main__tlocals(t tkconsoletsystmodulest__dict__RR7Rtsave_warnings_filtersRnt
restartingtsubprocess_arglisttPORTtporttcompiletcompilertflagstoriginal_compiler_flags(R4R�R�((s%/sys/lib/python2.7/idlelib/PyShell.pyR7s cCsL|jdkr!|j�|_n|j}tjtjtj|�|_dS(N( R�Rtbuild_subprocess_arglistR>tspawnvtP_NOWAITR�t
executabletrpcpid(R4RF((s%/sys/lib/python2.7/idlelib/PyShell.pytspawn_subprocess�s cCs�gtjD]}d|^q
}dddkr@|jd�ntjdddd td
d�}tdkr}d
|f}n
d|f}tjd dkr�dtjkr�dtj}n tj}|g|d|t |j
�gS(Ns-Wiiis-QnewR�tGeneralsdelete-exitfunctdefaultttypetboolsidlelib.PyShells&__import__('idlelib.run').run.main(%r)s__import__('run').main(%r)itwint s"%s"s-c(R�twarnoptionsRQR
R�RnRtplatformR�RkR�(R4RRbt del_exitftcommandtdecorated_exec((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
" cCs�t|jf}x\td�D]@}tj|�yt|�|_PWqtjk
r[}qXqW|j �dS|jjj�d|_t
dkr�|jjjtjtjd�n|j�|jjjd�y|jj�Wn!tjk
r}|j�dSX|jjd|j�|jjd|jj�|jjd|jj�|jjd|jj�|jjd |jj�|jjd
t�|jjd|�|jdt�|j�|jS(
Niiii
R�R�R�R�R<RRStwith_cwd( tHOSTR�R�ttimetsleepR�trpcclttsocketterrortdisplay_port_binding_errorRtlistening_socktgetsocknameR�t
setsockoptt
SOL_SOCKETtSO_REUSEADDRR�t
settimeouttacceptttimeouttdisplay_no_subprocess_errortregisterR�R�R�R�R<Rt
transfer_pathRotpoll_subprocess(R4taddrRURv((s%/sys/lib/python2.7/idlelib/PyShell.pytstart_subprocess�s>
cCs�|jr|jSt|_|j�}|rLytj|j�WqLqLXn|jj�|j�|j}|j }t
|_ |j�y|jj�Wn!t
jk
r�}|j�dSX|jd|�|j�|jjdd�|r
|jd�|j�nt|j�ddd}|j|d|�|jjd d�|jjd d
�|j�|r�tj|j�}|j�n|j|jj_ t
|_|jS(NR�R�send-1cs
iiRcs RESTART trestarttleft(!R�R�RotgetdebuggerRtclose_subprocess_debuggertclosetunix_terminateR�t executingRnR�R�R�R�R�RR�t
stop_readlineR8R�Rt
showpromptRZtwidthtmark_settmark_gravitytrestart_subprocess_debuggertload_breakpointsR�R�R�R�(R4R�RVR�t
was_executingRvthalfbartgui((s%/sys/lib/python2.7/idlelib/PyShell.pytrestart_subprocess�sJ
cCs|jjdddi�dS(Ntexectinterrupt_the_server((R�t
remotecall(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyt__request_interruptscCstjd|j�j�dS(Nttarget(t threadingtThreadt'_ModifiedInterpreter__request_interrupttstart(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytinterrupt_subprocessscCsp|jdk r(|jjj|j�ny|jj�Wntk
rLnX|j�t |j_
d|_dS(N(t_afteridRR�R8tafter_cancelR�R�R R�RnR�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytkill_subprocesss
cCsnttd�rjytj|jt�Wntk
r:dSXytj|jd�Wqjtk
rfdSXndS(s;UNIX: make sure subprocess is terminated and collect statustkillNi(thasattrR>RR�RtOSErrortwaitpid(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�s
cCsC|r"dg}|jtj�n tj}|jd|f�dS(NtsRif 1:
import sys as _sys
_sys.path = %r
del _sys
(textendR�R?t
runcommand(R4R�R?((s%/sys/lib/python2.7/idlelib/PyShell.pyR�!s cCs�|j}|dkrdSy|j|jdd�}Wn:tttfk
rq|jjr^dSd}|j �nX|rb|jj
�d|_|\}}|jj}|dkr�|dk r:|t|�IJq:nf|dkr|jj
d�r:|j�q:n8|dkr:d}tj|I|IJ||I|IJny|jj�Wqbtk
r^qbXn|jjs�|jjj|jj|j�|_ndS(Ntwaitg����tOKt EXCEPTIONs<<toggle-jit-stack-viewer>>tERRORs/PyShell.ModifiedInterpreter: Subprocess ERROR:
(R�Rtpollresponset
active_seqR�R!tKeyboardInterruptR�tclosingR�tresetoutputR�treprtgetvartremote_stack_viewerR�t
__stderr__tendexecutingR R8taftertpollintervalR�R(R4tclttresponsethowtwhatR�terrmsg((s%/sys/lib/python2.7/idlelib/PyShell.pyR�0s@
cCs
||_dS(N(RT(R4RT((s%/sys/lib/python2.7/idlelib/PyShell.pytsetdebuggerXscCs|jS(N(RT(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�[scCs|jjjd|j�dS(s�Initiate the remote stack viewer from a separate thread.
This method is called from the subprocess, and by returning from this
method we allow the subprocess to unblock. After a bit the shell
requests the subprocess to open the remote stack viewer which returns a
static object looking at the last exception. It is queried through
the RPC mechanism.
i,N(R�R8RR(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytopen_remote_stack_viewer^s
cCsddlm}|jjdddi�}|dkrK|jjj�dS|j|j|�}ddl m
}m}t|jj�}t
jddd �}t
j|d
�d}||d|d
d�} | jjdddd�|| jd|�}
|
j�dS(Ni�(tRemoteObjectBrowserR�tstackviewerR<(tScrolledCanvastTreeNodeR�R�R�tnormalR�tbgthighlightthicknessitexpanditfilltboth(sflist(tidlelibR#R�tremotequeueRR�RmRYtStubObjectTreeItemtidlelib.TreeWidgetR%R&tToplevelR
R�R�tframetpacktcanvasR*(R4R#toidtitemR%R&R�R�R�tsctnode((s%/sys/lib/python2.7/idlelib/PyShell.pyRksicCs#|j|�}|j||�dS(s1Like runsource() but assumes complete exec sourceN(tstuffsourcetexecfile(R4tsourceR((s%/sys/lib/python2.7/idlelib/PyShell.pyt
execsource~scCs�|dkr$t|d�j�}nyt||d�}Wnattfk
r�|jj�|jj}|dIJ|dIJt j
||�|jj�nX|j|�dS(sExecute an existing fileRaR�s *** Error in script or command!
s"Traceback (most recent call last):N(
RRgtreadR�t
OverflowErrortSyntaxErrorR�RR�RtshowsyntaxerrorR�truncode(R4RR;tcodettkerr((s%/sys/lib/python2.7/idlelib/PyShell.pyR:�s
cCs�|j|�}d|_tj|_tjdddt�t|tj �r�ddl
m}y|j|j
�}Wq�tk
r�|jj�|jd�dSXnztj|||�SWd|jdk r�jtj(d|_nXdS( sBExtend base class method: Stuff the source in the line cache firstitactionR�Ri�(t IOBindings Unsupported characters in input
N(R9tmoreR%tfiltersR�tfilterwarningst
SyntaxWarningt
isinstancettypestUnicodeTypeR-REtencodetencodingtUnicodeErrorR�RRRt runsourceR(R4R;RRE((s%/sys/lib/python2.7/idlelib/PyShell.pyRP�s"
cCsSd|j}|jd|_|jd�}t|�dd||ftj|<|S(s"Stuff source in the filename caches<pyshell#%d>is
i(tgidtsplitRzRR)(R4R;RRt((s%/sys/lib/python2.7/idlelib/PyShell.pyR9�s
#cCs|jd|f�dS(s>Prepend sys.path with file's directory if not already includeds(if 1:
_filename = %r
import sys as _sys
from os.path import dirname as _dirname
_dir = _dirname(_filename)
if not _dir in _sys.path:
_sys.path.insert(0, _dir)
del _filename, _sys, _dirname, _dir
N(R(R4R((s%/sys/lib/python2.7/idlelib/PyShell.pytprepend_syspath�sc
Cs|jj}|j�}|r�\}}}}|dkrMd|d}nd|d|df}|jd|�|j|�|j|�} | r�| tkr�|jd|d|�n|jj�|jdt |��n|jj�t
j||�|jj�dS(s�Extend base class method: Add Colorizing
Color the offending position instead of printing it and pointing at it
with a caret.
isiomark + %d charss&iomark linestart + %d lines + %d charsRs
wordstartsSyntaxError: %s
N(
R�R8tunpackerrorRNtseetgett
IDENTCHARSRRRkRR@R�(
R4RR8tstufftmsgRtoffsetRtpostchar((s%/sys/lib/python2.7/idlelib/PyShell.pyR@�s$
c
Cs�tj�\}}}|tk}|rey+|\}\}}}} |sQd}nWqed}qeXn|r{|||| fSdSdS(Ni(R�texc_infoR?R(
R4R�tvaluettbtokRYtdummy_filenameRRZR((s%/sys/lib/python2.7/idlelib/PyShell.pyRT�s
cCsJ|jj�|j�tj|�|jjd�rF|jj�ndS(s1Extend base class method to reset output properlys<<toggle-jit-stack-viewer>>N(R�RtchecklinecacheRt
showtracebackRtopen_stack_viewer(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyRc�s
cCsFtj}x6|j�D](}|d |ddkr||=qqWdS(Nii�s<>(RR)tkeys(R4tcR/((s%/sys/lib/python2.7/idlelib/PyShell.pyRb�s cBsQ|jjr|j�dS|jrB|jjdd|fi�n||jUdS(s*Run the code without invoking the debuggeriR�RAi(R�R�tdisplay_executing_dialogR�R.R�(R4RB((s%/sys/lib/python2.7/idlelib/PyShell.pyR�s
cBs�|jjr|jj�n|j�|jd
k rN|jej(d
|_n|j }z;yr|jj
�|r�|jd
k r�|jjdd|fi�|_
n'|r�|j||j�n||jUWn�ek
r%|jjsejddddd|jj�r�q"|j�q��nlerX|jjdIJ|j�|jj�q�|jjr�e|j_|jjd IJq�|j�nXWd
es�y|jj�Wq�ek
r�q�XnXd
S(sOverride base class methodR�RAsExit?sDo you want to exit altogether?R�tyestmasters IDLE internal error in runcode()RN(R�R�RSR�RbR�RR%RGRTtbeginexecutingR�t
asyncqueueRtrunR�t
SystemExitRRptaskyesnoR8Rctuse_subprocessR�RtcanceledRnR (R4RBRT((s%/sys/lib/python2.7/idlelib/PyShell.pyRAsR
cCs|jjj|�dS(sOverride base class methodN(R�R�R(R4R((s%/sys/lib/python2.7/idlelib/PyShell.pyR4scCs tjddd|jj�dS(NsPort Binding ErrorsAIDLE can't bind to a TCP/IP port, which is necessary to communicate with its Python execution server. This might be because no networking is installed on this computer. Run IDLE with the -n command line switch to start without a subprocess and refer to Help/IDLE Help 'Running without a subprocess' for further details.Ri(RpRqR�R8(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�8scCs tjddd|jj�dS(NsSubprocess Startup Errors�IDLE's subprocess didn't make connection. Either IDLE can't start a subprocess or personal firewall software is blocking the connection.Ri(RpRqR�R8(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�CscCs tjddd|jj�dS(NsAlready executingsYThe Python Shell window is already executing a command; please wait until it is finished.Ri(RpRqR�R8(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyRgKsN((RR�R7RRR�R�R�R�R�RnR�R�RRR�R�RR�RTR!R�R"RRQR<R:RPR9RSR@RTRcRbRRARR�R�Rg(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�}sH
+.
&
1 R�cBs�eZde�dZeZeZd5d6d7d8d9d:gZe j
dkrWd;ed<nddlmZd<d�Zd�ZeZeZeZeZeZeZd�Zd�Zd<d�Zd�Zd<d�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"Z$d#�Z%d$�Z&d%�Z'd&�Z(d<d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d<d-�Z/d<d.�Z0d<d/�Z1d0�Z2d1�Z3d=d2�Z4d3�Z5d4�Z6RS(>sPython s ShellR"t_Fileteditt_EditRVt_Debugtoptionst_Optionstwindowst_Windowsthelpt_Helptdarwint_Windowi�i�(tHistorycCsatr9|j}|dddkr9|jdd�q9nt|�|_|dkr�t�}t|�|j�t |�}nt
j||dd�t|_
d|_t|_|j}|jdd�|jd|j�|jd |j�|jd
|j�|jd|j�|jd|j�|jd
|j�|jd|j�tr~|jd|j�|jd|j�ntj|_tj|_ tj!|_"ddl#m$}t%|d|j&�|_!t'|d|j&�|_t'|d|j&�|_t'|d|j&�|_(ts?|jt_|jt_|j!t_!n|j)|j�|_*d|_+dS(NiitshelltShe_llitwrapR\s<<newline-and-indent>>s<<plain-newline-and-indent>>s<<interrupt-execution>>s<<end-of-file>>s<<open-stack-viewer>>s<<toggle-debugger>>s<<toggle-jit-stack-viewer>>s<<view-restart>>s<<restart-shell>>i�(RER�R�R�R�i2(sshellR(,Rot
menu_specsRXR�RSRtTkRtwithdrawR�R R7Rotusetabstindentwidthtcontext_use_ps1R8t configureR9tenter_callbacktlinefeed_callbacktcancel_callbackteof_callbackRdttoggle_debuggerttoggle_jit_stack_viewertview_restart_markt
restart_shellR�R�tsave_stdoutR�tsave_stderrR�t
save_stdinR-REtPseudoInputFileRNtPseudoOutputFileR�R}thistoryR(R4R<tmsRmR8RE((s%/sys/lib/python2.7/idlelib/PyShell.pyR7lsP
cCstjdt�S(Nt
shell_only(R
t
GetExtensionsRo(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytget_standard_extension_names�scCs
|adS(N(R(R4tstream((s%/sys/lib/python2.7/idlelib/PyShell.pytset_warning_stream�scCstS(N(R(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytget_warning_stream�scCs`|jr0tjddd|j�|j�dS|jj�}|rR|j�n
|j�dS(NsDon't debug nows*You can only toggle the debugger when idleRitbreak( R�RpRqR8tset_debugger_indicatorRSR�tclose_debuggert
open_debugger(R4R\tdb((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
cCs%|jj�}|jd|�dS(Ns<<toggle-debugger>>(RSR�tsetvar(R4R�((s%/sys/lib/python2.7/idlelib/PyShell.pyR��scCsdS(N((R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR��scCs�|jj�}|r�|jjd�|j�|jjrQtj|jj�n|j�|j j
d�dt_|j
�n|j�dS(Ns[DEBUG OFF]
s>>> (RSR�R!RR�R�Rtclose_remote_debuggerRR�RR�tps1R�R�(R4R�((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
cCsq|jjr'tj|jj|�}ntj|�}|jj|�|j�dt_|j �|j
�dS(Ns[DEBUG ON]
>>> (RSR�Rtstart_remote_debuggerR
R!R�R�R�R�R�(R4tdbg_gui((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
cCs|j�d|_dS(sHelper for ModifiedInterpreteriN(RR�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyRj�s
cCs d|_d|_|j�dS(sHelper for ModifiedInterpreteriN(R�RpR�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�s cCsf|jr=tjddddd|j�}|tkr=dSn|j�t|_t|_t j
|�S(sExtend EditorWindow.close()sKill?s6The program is still running!
Do you want to kill it?R�R`Rftcancel(R�RptaskokcancelR8RnR�RoRpRRR�(R4R((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
cCs||j�tr |jj�n|jt_|jt_|j t_
d|_d|_d|j
_d|_tj|�dS(sEExtend EditorWindow._close(), shut down debugger and execution serverN(R�RoRSRR�R�R�R�R�R�R�RR�R<RRR�RR�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
cCstS(s8Override EditorWindow method: never remove the colorizer(Ro(R4R((s%/sys/lib/python2.7/idlelib/PyShell.pytispythonsourcescCs|jS(N(tshell_title(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytshort_titless@Type "copyright", "credits" or "license()" for more information.cCs�|j�tr<d}|jj�}|sB|j�tSnd}|jdtjtj |j
|f�|j�ddl}d|_tS(NR s==== No Subprocess ====sPython %s on %s
%s
%si�(RRoRSR�R�RnRR�tversionR�t COPYRIGHTR�tTkinterRt
_default_rootRo(R4tnosubtclientR�((s%/sys/lib/python2.7/idlelib/PyShell.pyR�s
cCs'|js
dSt|_|jj�dS(N(treadingRot_stop_readline_flagR�tquit(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�"s cCs|j}zd|_|jj�Wd||_X|jrFt|_dS|jjdd�}t|�dkrvd}nt|t �r�ddl
m}y|j|j
�}Wq�tk
r�q�Xn|j�|jr�|_ts��q�|jrd|_d}n|S( NiR R�send-1cis
i�(RE(R�R�tmainloopR�RnR8RVRzRJtunicodeR-RERMRNRORRpRoRt endoffile(R4R.RRE((s%/sys/lib/python2.7/idlelib/PyShell.pytreadline(s4
cCstS(N(Ro(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytisattyEscCs�y |jjddd�rdSWnnX|jp9|jsd|j�|jjd�|j�dSd|_d|_ |jr�|jj
r�|jj�r�|jj�q�|jj
�n|jr�|jj�ndS(Ns sel.firsts!=ssel.lastsKeyboardInterrupt
R�ii(R8R�R�R�RRSRR�R�RpR�R�R�RR�R�(R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR�Hs&
cCs�|jr|jrdS|jjddd�oD|jjddd�sKdS|jsk|j�|j�nd|_d|_|jj �dS(NR�s==RXsend-1ciiR�(
R�R�R8R�RR�RpR�R�R�(R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR�^s
cCs@|jr/|jjdd�|jjd�n
|j|�dS(NRXs
R�(R�R8RXRUtnewline_and_indent_event(R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR�ms
cCs�|jr|jrdSyN|jjdd�}|rd|jjddd�rd|j||�dSnWnnX|jjddd�r�|jjd d�}|r�jjdd|d
�r�j|jj|d|d
�|�dS|jjd d�}|rK|jjdd
|d�rK|j|jj|d|d
�|�dS|jjdd�}|r�|jj|ddd�r�|j|jj|d
d�|�n|j|jjdd�|�dS|jjddd�r�jjdd�n|jjdd�}|r7|j �r7|jj
dd�n|jjddd�r`|j|�dS|jjdd�|jr�|jjdd�|jj
d�n
|j|�|jjd dd�|jj�|jr�jj�n
|j�dS(Ns sel.firstssel.lasts<=R�R�RXR�siomark linestartR�iisinsert lineends>=R�sinsert linestartsend-1csend-1c linestarts
(R�R�R8RVR�trecallt
tag_prevranget
tag_nextrangeR�RR�R�RXRURNtupdate_idletasksR�R�trunit(R4R\tseltprevtnexttindicesR((s%/sys/lib/python2.7/idlelib/PyShell.pyR�vsX"'"'&
cCs�tjdd|�}tjdd|�}|jd�}|jj�z@|jjddd�|jjdd �|jjd
d�}|j�j d�r�|j
|�|jjd
d�}n|jjd|dj��t
|�d
kr�tjd|d�jd�}tjd|�jd�}xX|d
D]I}|j|�ra||t
|�}n|jjdd|j��q5WnWd|jjd�|jj�XdS(Ns^\s*\nR s\n\s*$s
R�s1.0R�RXsend-1csinsert linestartt:iis ^([ \t]*)(tretsubRRR8tundo_block_startR^R�RVtrstriptendswithR�RXRRztsearchtgroupRiRUtundo_block_stop(R4RR\Rttprefixtorig_base_indenttnew_base_indentR((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s*
(cCs�|jjdd�}t|�}x.|dkrQ||ddkrQ|d}q$W|dkr||ddkr|d}nx.|dkr�||ddkr�|d}q�W|| }|jj|�}dS(NR�send-1ciis s
(R8RVRzRSRP(R4RRURF((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s#
#
cCsq|jjr|jj�SytjWn!tjddd|j�dSXddlm }||j
|j�}dS(NsNo stack traces@There is no stack trace yet.
(sys.last_traceback is not defined)Rii�(tStackBrowser(RSR�RR�tlast_tracebackRpRqR8tidlelib.StackViewerR�RmR<(R4R\R�tsv((s%/sys/lib/python2.7/idlelib/PyShell.pyRd�s
cCs$|jjd�|jjd�dS(NR�R�(R8RU(R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR��scCs|jjdt�dS(s&Callback for Run/Restart Shell Cntl-F6R�N(RSR�Ro(R4R\((s%/sys/lib/python2.7/idlelib/PyShell.pyR��scCsk|j�yttj�}Wn
d}nX|jj|�|jjdd�|j�|j j
�dS(NR RXsend-1c(RRkR�R�R�RR8R�tset_line_and_columnRCt
reset_undo(R4R((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s
cCs�|jjdd�}|jr1|jj|�n|jjd�dkr_|jjdd�n|jjdd�|j�dtj_ dS(NR�send-1csend-2cs
i(
R8RVR�tstoreRXR�R�R�R�t softspace(R4R;((s%/sys/lib/python2.7/idlelib/PyShell.pyR�s
cCsry@|jjdd�tj|||d�|jjdd�WnnX|jrnd|_tsnt�qnndS(NR�trightR�i(R8R�R RRpRoR(R4RR�((s%/sys/lib/python2.7/idlelib/PyShell.pyRs cCsHy |jjddd�rdSWntk
r4dSXtt|�j�S(Ns sel.firstR�R�tdisabled(R8R�R�tsuperR�RH(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyRHs
cCs/|jjddd�rdStt|�j�S(NRXR�R�R�(R8R�R�R�RL(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyRLs(sfileRq(RrRs(sdebugRt(RuRv(RwRx(shelpRz(RwR|N((7RR�RR�R�RR�RR�R�R�tidlelib.IdleHistoryR}RR7R�RnR�R�RpR�RR�R�R�R�R�R�R�R�RjRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RdR�R�R�RRRHRL(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�Ssh
2
?
t
PseudoFilecBs;eZdd�Zed��Zed��Zd�ZRS(cCs(||_||_d|_||_dS(Ni(R~R�R�t _encoding(R4R~R�RN((s%/sys/lib/python2.7/idlelib/PyShell.pyR7#s cCs|jS(N(R�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyRN)scCsd|jS(Ns<%s>(R�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�-scCstS(N(Ro(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�1sN(RR�RR7tpropertyRNR�R�(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�!sR�cBseZd�Zd�ZRS(cCstS(N(Ro(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytwritable7scCs�|jrtd��nt|�tttfkr�t|t�rZtj|dd�}q�t|t�r{tj |�}q�t|t�r�tj |�}q�t
dt|�j��n|jj
||j�S(Nswrite to closed filesmust be string, not (tclosedRPR�R�Rkt bytearrayRJt__getslice__Rt__str__t TypeErrorRR~RR�(R4R((s%/sys/lib/python2.7/idlelib/PyShell.pyR:s (RR�R�R(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�5s R�cBs>eZdd�Zd�Zdd�Zdd�Zd�ZRS(cCs#tj||||�d|_dS(NR (R�R7t_line_buffer(R4R~R�RN((s%/sys/lib/python2.7/idlelib/PyShell.pyR7LscCstS(N(Ro(R4((s%/sys/lib/python2.7/idlelib/PyShell.pytreadablePsi�cCs|jrtd��n|dkr-d}n+t|t�sXtdt|�j��n|j}d|_|dkr�x�t r�|j
j�}|s�Pn||7}qyWnSx9t|�|kr�j
j�}|s�Pn||7}q�W|||_|| }|S(Nsread from closed filei�smust be int, not R i(
R�RPRRJRZR�R�RR�RoR~R�Rz(R4tsizetresultR((s%/sys/lib/python2.7/idlelib/PyShell.pyR=Ss,
cCs�|jrtd��n|dkr-d}n+t|t�sXtdt|�j��n|jpm|j j
�}|dkr�t|�}n|jdd|�}|dkr�|d}n|||_|| S(Nsread from closed filei�smust be int, not is
i(
R�RPRRJRZR�R�RR�R~R�Rztfind(R4R�Rteol((s%/sys/lib/python2.7/idlelib/PyShell.pyR�js
cCs|jj�dS(N(R~R�(R4((s%/sys/lib/python2.7/idlelib/PyShell.pyR�zsN(RR�RR7R�R=R�R�(((s%/sys/lib/python2.7/idlelib/PyShell.pyR�Js
s�
USAGE: idle [-deins] [-t title] [file]*
idle [-dns] [-t title] (-c cmd | -r file) [arg]*
idle [-dns] [-t title] - [arg]*
-h print this help message and exit
-n run IDLE without a subprocess (see Help/IDLE Help for details)
The following options will override the IDLE 'settings' configuration:
-e open an edit window
-i open a shell window
The following options imply -i and will open a shell:
-c cmd run the command in a shell, or
-r file run script from file
-d enable the debugger
-s run $IDLESTARTUP or $PYTHONSTARTUP before anything else
-t title set title of shell window
A default edit window will be bypassed when -c, -r, or - are used.
[arg]* are passed to the command (-c) or script (-r) in sys.argv[1:].
Examples:
idle
Open an edit window or shell depending on IDLE's configuration.
idle foo.py foobar.py
Edit the files, also open a shell if configured to start with shell.
idle -est "Baz" foo.py
Run $IDLESTARTUP or $PYTHONSTARTUP, edit foo.py, and open a shell
window with the title "Baz".
idle -c "import sys; print sys.argv" "foo"
Open a shell window and run the command, passing "-c" in sys.argv[0]
and "foo" in sys.argv[1].
idle -d -s -r foo.py "Hello World"
Open a shell window, run a startup script, enable the debugger, and
run foo.py, passing "foo.py" in sys.argv[0] and "Hello World" in
sys.argv[1].
echo "import sys; print sys.argv" | idle - "foobar"
Open a shell window, run the script piped in, passing '' in sys.argv[0]
and "foobar" in sys.argv[1].
cCs�tt�tat}t}t}d}d}t}y#tjtjdd�\}}WnMtjk
r�}tj j
dt|��tj j
t�tj
d�nXx.|D]&\} }
| dkr�|
}t}n| dkr�}t}n| dkrt}n| dkr.tjj
t�tj
�n| d krCt}n| d
krXtan| dkr�|
}tjj|�rndG|GHtj
�t}n| d
kr�t}t}n| dkr�|
t_t}q�q�W|r|ddkrtjj�}t}nx=tttj��D]&}tjjtj|�tj|<qW|rs|ddkrsdg|dt_n�r�dg|t_n�|r�|g|t_n�|r,t}g}x'|D]}
|jtjj|
��q�Wxy|D]=}tjj|�}|tjkr�jjd|�q��n1tj�}|tjkr]tjjd|�ntjddddd�}|p�|}|p�|}tdd�a tjj!tjjt"�d�}t#�dkr�jj!|d�}t j$d|�n�t%dkr�t%dkrdnd }gd-D]%}tjj!|d$||f�^q#}g|D]}t&d%|�^qU}t j'j(d&d'tt �d(|�nt)t �t j*�t+t �a,t-j.t t,�|r'|p�|s'x4|D]+}
t,j/|
�dkr�|j0|
�q�q�W|s$t,j1�q$q'n|rkt,j2�}|sCdSt-j3�rtt,j4rt|j5j6�qtn t,j7}|r�|j8�n|r�tj9j:d)�p�tj9j:d*�}
|
r�tjj|
�r�|j;j<|
�q�n|s�rJ|j;j=d+tjf�|r|j;j>|�q|r|j;j?|�|j;j<|�qn5|rt-j@t �}|r|j;j=d,|�qnxt,jAr�t jB�q�Wt jC�tt�dS(.Nisc:deihnr:st:s
Error: %s
is-cs-ds-es-hs-is-ns-rsNo script file: s-ss-tit-R R�R�seditor-on-startupR�R�t classNametIdletIconstWindowssidle.icoR�g!@g333333!@s.pngs.gifii i0s idle_%d%sR"twmt iconphotos-defaulttIDLESTARTUPt
PYTHONSTARTUPsbif 1:
import sys as _sys
_sys.argv = %r
del _sys
sprint('%s')(ii i0(DR(RoRoRnRtgetoptR�targvR�R�RRkt usage_msgtexitR�R>R?RxR�R�R�R=R�RztabspathRQtdirnameRXtgetcwdR
R�R�RmR@t__file__Rt
wm_iconbitmapt TkVersiont
PhotoImagettktcallRR�R�R<RtsetupAppRgR]tnewR=tisAquaTktdictR�tlowerRRR�tenvironRVRSR:RR<RSttkVersionWarningtinversedictR�tdestroy(tenable_shelltenable_editRVtcmdtscripttstartuptoptsRFRYtotaRUtpathxRtdirt
edit_startticondirticonfiletextR�t iconfilesticonsR~ttkversionwarning((s%/sys/lib/python2.7/idlelib/PyShell.pyR��s�
#
$
!/"%
R�(LR>tos.pathR�R�R�R�R�R�R�t tracebackRKRCRRBRR�RRR�tImportErrorRR�Rptidlelib.EditorWindowRRtidlelib.FileListRtidlelib.ColorDelegatorRtidlelib.UndoDelegatorRtidlelib.OutputWindowR tidlelib.configHandlerR
R-RRR
RRt
ascii_letterstdigitsRWR�R�tsignalRRR%RRR#R$R(Rot
checkcacheR0R1R�R�R�t RPCClientR�R�R�t
TextIOBaseR�R�R�R�R�RR�Rn(((s%/sys/lib/python2.7/idlelib/PyShell.pyt<module>s�
���g �
|