{fc@sddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddlm Z ddlm Z ddlm Z ddlm Z ddlmZddlmZdd lmZddlZd ZddlZddd Zdad Zeeeaeaeaed ZdZdZdZ dZ!dZ"dZ#dZ$dej%fdYZ&dej'fdYZ(de)fdYZ*eedS(iN(tCallTips(t AutoComplete(tRemoteDebugger(tRemoteObjectBrowser(t StackViewer(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#/usr/lib64/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_showwarningRtwarningst showwarningR(tcapture((s#/usr/lib64/python2.7/idlelib/run.pytcapture_warnings*s    c Cs|ay2ttjdks$tttjd}WntjdIJdSXttdgtj(t j dt ddd t |ff}|j t|jxUytry tWqtk rwqXny%tjjd td d \}}Wntjk rwnX|\}}}|||}tjj||fWqtk rotrtaqqqtk rttqtj\} } } y!ttjj|dfWqtj| | | d tj tqXqqXqWdS(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. iis/IDLE Subprocess: no IP port passed in sys.argv.Ntttargettnamet SockThreadtargstblockttimeoutg?R(!t no_exitfunctlenR targvtAssertionErrortintR RtTruet threadingtThreadt manage_sockett LOCALHOSTt setDaemontstarttexit_nowtexittKeyboardInterruptRt request_queuetgettQueuetEmptytresponse_queuetputtquittingt SystemExittFalsetexc_infotprint_exceptionRt tracebackt __stderr__( t del_exitfunctportt sockthreadtseqtrequesttmethodRtkwargstretttypetvaluettb((s#/usr/lib64/python2.7/idlelib/run.pytmainAsX        %     cCsxtdD]\}tj|yt|t}PWq tjk rh}tjd|j ddIJq Xq WtjdIJt ||t a dS|j dS(NisIDLE Subprocess: socket error: is, retrying....s8IDLE Subprocess: Connection to IDLE GUI failed, exiting.(trangettimetsleept MyRPCServert MyHandlertsocketterrorR R<Rtshow_socket_errorR&R-thandle_request(taddresstitserverterr((s#/usr/lib64/python2.7/idlelib/run.pyR)s   cCsddl}ddl}|j}t||j|jddkrnd|}|jd|d|n!|jdd|jdd||jdS( Niii=sIDLE'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 tkMessageBoxtTkt fix_scalingtwithdrawRt showerrortdestroy(RURRRWRXtroottmsg((s#/usr/lib64/python2.7/idlelib/run.pyRPs      c Csddl}|jttj}tj\}}}}|\t_t_t_t j |}|dIJd }t ||t j |d |t j ||}x|D]} || IqWdS( Nis# 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#/usr/lib64/python2.7/idlelib/run.pyR:s      c Cs|}x>|rGx*|D]!}|ddj|rPqqWP|d=q Wx>|rx*|D]!}|ddj|rXPqXqXWP|d=qKWt|dkr||(tjdIJntjdj}xtt|D]}||\}}}} |dkrd}n|jdr2t j dkr2|d 8}n| ri|jdri|j d d ||fi} n|||| f||override SocketIO method - wait for MainThread to shut us downi N(RJRK(R((s#/usr/lib64/python2.7/idlelib/run.pytexithook4scCstatjdS(sEOverride SocketIO method - terminate wait on callback and exit threadN(R&R6RR(R((s#/usr/lib64/python2.7/idlelib/run.pytEOFhook8scCstatjdS(sinterrupt awakened threadN(R&R6RR(R((s#/usr/lib64/python2.7/idlelib/run.pytdecode_interrupthook>s(RRRRRR(((s#/usr/lib64/python2.7/idlelib/run.pyRMs   RcBsSeZdZdZdZdZdZdZdZddZ RS( cCs7||_tj|_tj|_tj|_dS(N(Rvt__main__t__dict__tlocalsRtcalltipRt autocomplete(RRv((s#/usr/lib64/python2.7/idlelib/run.pyt__init__Gs  cBsy,d|_eaz||jUWdeaXWnkek r?nbej|_e rae ne |j j jd}|r|j jjqnXedS(Ns<>(Rt usr_exc_infoR&t interruptableRR8R7R R9R6R.R:RvRtgetvarRtopen_remote_stack_viewerRb(Rtcodetjit((s#/usr/lib64/python2.7/idlelib/run.pytruncodeMs"    cCstrtjndS(N(RRR(R((s#/usr/lib64/python2.7/idlelib/run.pytinterrupt_the_serverescCstj|j|S(N(Rtstart_debuggerRv(Rt gui_adap_oid((s#/usr/lib64/python2.7/idlelib/run.pytstart_the_debuggeriscCs|jj|dS(sDUnregister the Idb Adapter. Link objects and Idb then subject to GCN(Rvt unregister(Rt idb_adap_oid((s#/usr/lib64/python2.7/idlelib/run.pytstop_the_debuggerlscCs|jj|S(N(Rt fetch_tip(RR((s#/usr/lib64/python2.7/idlelib/run.pytget_the_calltippscCs|jj||S(N(Rtfetch_completions(Rtwhattmode((s#/usr/lib64/python2.7/idlelib/run.pytget_the_completion_listsscCs|jr|j\}}}ndSd}|dk rI|jj|}nx)|rt|jjddkrt|j}qLW|t_|t_ t j ||}t j |S(NRRtrun(RR(RRRvRttb_framet f_globalsttb_nextR RcRdRt StackTreeItemRtremote_object_tree_item(Rt flist_oidRkRlRGtflisttitem((s#/usr/lib64/python2.7/idlelib/run.pyt stackviewervs     N( RRRRRRRRRRR(((s#/usr/lib64/python2.7/idlelib/run.pyREs       (+R R`RJRNR;RR'R2tidlelibRRRRRRRRRR*RRRRRR&R8R-R6RRHR)RPR:RgRbR.RZt RPCServerRLRRMtobjectR(((s#/usr/lib64/python2.7/idlelib/run.pytsJ             G    !   &@