Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/root/sys/lib/python2.7/idlelib/run.pyc

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�`^c@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddl	mZddl	m
Z
ddl	mZddl	mZddl	mZdd	l	mZddlZd
ZddlZddd�Zdad�Zee�eaeaeaed
�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$dej%fd��YZ&dej'fd��YZ(de)fd��YZ*ee�dS(i�N(tCallTips(tAutoComplete(tRemoteDebugger(tRemoteObjectBrowser(tStackViewer(trpc(tPyShell(t	IOBindings	127.0.0.1cCsV|dkrtj}ny&|jtj|||||��Wntk
rQnXdS(suShow Idle-format warning after replacing warnings.showwarning.

    The only difference is the formatter called.
    N(tNonetsyststderrtwriteRtidle_formatwarningtIOError(tmessagetcategorytfilenametlinenotfiletline((s!/sys/lib/python2.7/idlelib/run.pytidle_showwarning_subprocs
cCsL|r*tdkrHtjatt_qHntdk	rHtt_dandS(sFReplace warning.showwarning with idle_showwarning_subproc, or reverse.N(t_warnings_showwarningRtwarningstshowwarningR(tcapture((s!/sys/lib/python2.7/idlelib/run.pytcapture_warnings+s		cCs|ay2ttj�dks$t�ttjd�}WntjdIJdSXtt�dgtj(t	j
dtddd	t|ff�}|j
t�|j�xTy�tr�yt�Wq�tk
r�w�q�Xny%tjjd
tdd�\}}Wntjk
rw�nX|\}}}|||�}tjj||f�Wq�tk
rotr�taq�q�q�tk
r�tt��q�tj�\}	}
}y!t�tjj|df�Wq�tj|	|
|d
tj �t�q��q�Xq�dS(sjStart the Python execution server in a subprocess

    In the Python subprocess, RPCServer is instantiated with handlerclass
    MyHandler, which inherits register/unregister methods from RPCHandler via
    the mix-in class SocketIO.

    When the RPCServer 'server' is instantiated, the TCPServer initialization
    creates an instance of run.MyHandler and calls its handle() method.
    handle() instantiates a run.Executive object, passing it a reference to the
    MyHandler object.  That reference is saved as attribute rpchandler of the
    Executive instance.  The Executive methods have access to the reference and
    can pass it on to entities that they command
    (e.g. RemoteDebugger.Debugger.start_debugger()).  The latter, in turn, can
    call MyHandler(SocketIO) register/unregister methods via the reference to
    register and unregister themselves.

    ii�s/IDLE Subprocess: no IP port passed in sys.argv.Ntttargettnamet
SockThreadtargstblockttimeoutg����R(!tno_exitfunctlenR	targvtAssertionErrortintR
RtTruet	threadingtThreadt
manage_sockett	LOCALHOSTt	setDaemontstarttexit_nowtexittKeyboardInterruptRt
request_queuetgettQueuetEmptytresponse_queuetputtquittingt
SystemExittFalsetexc_infotprint_exceptionRt	tracebackt
__stderr__(tdel_exitfunctportt
sockthreadtseqtrequesttmethodRtkwargstretttypetvaluettb((s!/sys/lib/python2.7/idlelib/run.pytmainBsX






%
	

cCs�x�td�D]\}tj|�yt|t�}PWq
tjk
rh}tjd|j	ddIJq
Xq
WtjdIJt
||�tadS|j
�dS(NisIDLE Subprocess: socket error: is, retrying....s8IDLE Subprocess: Connection to IDLE GUI failed, exiting.(trangettimetsleeptMyRPCServert	MyHandlertsocketterrorR	R<Rtshow_socket_errorR&R-thandle_request(taddresstitserverterr((s!/sys/lib/python2.7/idlelib/run.pyR)�s


cCs�ddl}ddl}|j�}|j�|jddkrdd|}|jd|d|�n|jdd|jd�|j�dS(	Ni�ii=s�IDLE's subprocess can't connect to %s:%d.  This may be due to your personal firewall configuration.  It is safe to allow this internal connection because no data is visible on external ports.sIDLE Subprocess ErrortparentsSocket Error: %si(tTkinterttkMessageBoxtTktwithdrawRt	showerrortdestroy(RURRRWRXtroottmsg((s!/sys/lib/python2.7/idlelib/run.pyRP�s
	c
Cs�ddl}|j�t�tj}tj�\}}}}|\t_t_t_t	j
|�}|dIJd
}t||�t	j|d	|�t	j
||�}x|D]}	||	Iq�WdS(Ni�s#
Traceback (most recent call last):srun.pysrpc.pysthreading.pysQueue.pysRemoteDebugger.pysbdb.pyR(srun.pysrpc.pysthreading.pysQueue.pysRemoteDebugger.pysbdb.py(t	linecachet
checkcachetflush_stdoutR	R
R9t	last_typet
last_valuetlast_tracebackR;t
extract_tbtcleanup_tracebackt
print_listtformat_exception_only(
R_tefilettyptvalRGtexcinfottbetexcludetlinesR((s!/sys/lib/python2.7/idlelib/run.pyR:�s
	


c
Cs\|}x>|rGx*|D]!}|ddj|�rPqqWP|d=q
Wx>|r�x*|D]!}|ddj|�rXPqXqXWP|d=qKWt|�dkr�||(tjdIJntjdj}x�tt|��D]~}||\}}}}	|dkrd}n|	r>|jd�r>|j	dd	||fi�}	n||||	f||<q�Wd
S(sARemove excluded traces from beginning/end of tb; get cached linesii�s** IDLE Internal Exception: texect?s
-toplevel-s	<pyshell#R_tgetlineN(
tcountR"R	R
Rtobjecttablet
rpchandlerRIt
startswitht
remotecall(
RGRntorig_tbtrpcfileRuRStfntlntnmR((s!/sys/lib/python2.7/idlelib/run.pyRf�s2	
	
	cCsMy/tjjr.dtj_tjjd�nWnttfk
rHnXdS(Nis
(R	tstdoutt	softspaceRtAttributeErrortEOFError(((s!/sys/lib/python2.7/idlelib/run.pyRa�scCsBtr'y
t`Wq'tk
r#q'Xntt�tjd�dS(s�Exit subprocess, possibly after first deleting sys.exitfunc

    If config-main.cfg/.def 'General' 'delete-exitfunc' is True, then any
    sys.exitfunc will be removed before exiting.  (VPython support)

    iN(R!R	texitfuncRRR8R.(((s!/sys/lib/python2.7/idlelib/run.pyR.�s


RLcBseZd�ZRS(cCs�y�Wn�tk
r�n�tk
r=tatj�n�tj}|dddIJ|dIJ|dtj	�j
�IJ|dI|IJ|dIt|�IJtj
d|�|d	IJ|ddIJtatj�nXd
S(srOverride RPCServer method for IDLE

        Interrupt the MainThread and exit server if link is dropped.

        s
t-i(sUnhandled server exception!s
Thread: %ssClient Address: s	Request: Rs#
*** Unrecoverable, server exiting!N(R7R�R&R-tthreadtinterrupt_mainR	R<R't
currentThreadtgetNametreprR;t	print_excR6(tselfRAtclient_addressterf((s!/sys/lib/python2.7/idlelib/run.pythandle_error�s&


	

(t__name__t
__module__R�(((s!/sys/lib/python2.7/idlelib/run.pyRL�sRMcBs,eZd�Zd�Zd�Zd�ZRS(cCs�t|�}|jd|�|jd�|_tj|jdtj�t_	tj
|jdtj�t_tj
|jdtj�t_tj	|_
|jd�|_tjj|dd
dd	�d
S(sOverride base methodRptconsoletstdinR}R
tinterptmyseqtwaitg����N(t	Executivetregistertget_remote_proxyR�RtPseudoInputFileRtencodingR	R�tPseudoOutputFileR}R
t_keep_stdinR�Rt
RPCHandlertgetresponseR(R�t	executive((s!/sys/lib/python2.7/idlelib/run.pythandlescCstjd�dS(s>override SocketIO method - wait for MainThread to shut us downi
N(RJRK(R�((s!/sys/lib/python2.7/idlelib/run.pytexithook%scCstatj�dS(sEOverride SocketIO method - terminate wait on callback and exit threadN(R&R6R�R�(R�((s!/sys/lib/python2.7/idlelib/run.pytEOFhook)scCstatj�dS(sinterrupt awakened threadN(R&R6R�R�(R�((s!/sys/lib/python2.7/idlelib/run.pytdecode_interrupthook/s(R�R�R�R�R�R�(((s!/sys/lib/python2.7/idlelib/run.pyRMs			R�cBsSeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Z
RS(	cCs7||_tj|_tj�|_tj�|_dS(N(Rut__main__t__dict__tlocalsRtcalltipRtautocomplete(R�Ru((s!/sys/lib/python2.7/idlelib/run.pyt__init__8s	cBs�y,d|_eaz||jUWdeaXWnkek
r?nbej�|_e	rae
�ne�|jj
jd�}|r�|jjj�q�nXe�dS(Ns<<toggle-jit-stack-viewer>>(Rtusr_exc_infoR&t
interruptableR�R8R7R	R9R6R.R:RuR�tgetvarR�topen_remote_stack_viewerRa(R�tcodetjit((s!/sys/lib/python2.7/idlelib/run.pytruncode>s"	

cCstrtj�ndS(N(R�R�R�(R�((s!/sys/lib/python2.7/idlelib/run.pytinterrupt_the_serverVscCstj|j|�S(N(Rtstart_debuggerRu(R�tgui_adap_oid((s!/sys/lib/python2.7/idlelib/run.pytstart_the_debuggerZscCs|jj|�dS(sDUnregister the Idb Adapter.  Link objects and Idb then subject to GCN(Rut
unregister(R�tidb_adap_oid((s!/sys/lib/python2.7/idlelib/run.pytstop_the_debugger]scCs|jj|�S(N(R�t	fetch_tip(R�R((s!/sys/lib/python2.7/idlelib/run.pytget_the_calltipascCs|jj||�S(N(R�tfetch_completions(R�twhattmode((s!/sys/lib/python2.7/idlelib/run.pytget_the_completion_listdscCs�|jr|j\}}}ndSd}|dk	rI|jj|�}nx)|rt|jjddkrt|j}qLW|t_|t_	t
j||�}tj
|�S(NR�Rtrun(srpcR�(R�RRuR�ttb_framet	f_globalsttb_nextR	RbRcRt
StackTreeItemRtremote_object_tree_item(R�t	flist_oidRjRkRGtflisttitem((s!/sys/lib/python2.7/idlelib/run.pytstackviewergs	
		N(R�R�R�R�R�R�R�R�R�RR�(((s!/sys/lib/python2.7/idlelib/run.pyR�6s							(+R	tioR_RJRNR;R�R'R2tidlelibRRRRRRRRR�R*RRRRRR&R8R-R6R�RHR)RPR:RfRaR.t	RPCServerRLR�RMtobjectR�(((s!/sys/lib/python2.7/idlelib/run.pyt<module>sJ
	
G						&@

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].