e fi5@sddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl m Z ddl mZddl mZddl mZdd l mZddlZd ZddlZddd d Zdad dZedejZeddZdadadadddZddZddZ ddZ!ddZ"ddZ#dd Z$Gd!d"d"ej%Z&Gd#d$d$ej'Z(Gd%d&d&e)Z*eddS)'N)CallTips) AutoComplete)RemoteDebugger)RemoteObjectBrowser) StackViewer)rpc)PyShell) IOBindingz 127.0.0.1c CsW|dkrtj}ny&|jtj|||||Wntk rRYnXdS)zuShow Idle-format warning after replacing warnings.showwarning. The only difference is the formatter called. N)sysstderrwriterZidle_formatwarningIOError)messagecategoryfilenamelinenofileliner0/opt/alt/python34/lib64/python3.4/idlelib/run.pyidle_showwarning_subprocs    rcCsL|r*tdkrHtjatt_qHntdk rHtt_dandS)zFReplace warning.showwarning with idle_showwarning_subproc, or reverse.N)_warnings_showwarningwarnings showwarningr)Zcapturerrrcapture_warnings*s    rTcCs|jddS)zProcess any tk events that are ready to be dispatched if tkinter has been imported, a tcl interpreter has been created and tk has been loaded.updateN)eval)tclrrrhandle_tk_events:srFc Cs|ayttjd}WntddtjdSYnXtddgtjdd.print_exc) linecache checkcache flush_stdoutr r r6 last_type last_valuelast_tracebackset)rjravalr?Zexcinfor)rgrhrirr7s    r7c Cs}|dd}x>|rPx*|D]!}|ddj|r Pq q WP|d=qWx>|rx*|D]!}|d dj|raPqaqaWP|d =qTWt|dkr|dd|ddoverride SocketIO method - wait for MainThread to shut us down N)rCrD)rrrrexithook@szMyHandler.exithookcCsdatjdS)zEOverride SocketIO method - terminate wait on callback and exit threadTN)r4rr)rrrrEOFhookDszMyHandler.EOFhookcCsdatjdS)zinterrupt awakened threadTN)r4rr)rrrrdecode_interrupthookJszMyHandler.decode_interrupthookN)rrrrrrrrrrrrF&s    rFc@sseZdZddZddZddZddZd d Zd d Zd dZ dddZ dS)rcCs7||_tj|_tj|_tj|_dS)N)rw__main____dict__localsrcalltipr autocomplete)rrwrrr__init__Ss  zExecutive.__init__cCsy1d|_dazt||jWddaXWnmtk rEYnctj|_trgtnt |j j j d}|r|j j jnYnXtdS)NTFz<>) usr_exc_info interruptablerrrr5r r6r4r0r7rwrZgetvarrZopen_remote_stack_viewerrl)rcodeZjitrrrruncodeYs"    zExecutive.runcodecCstrtjndS)N)rrr)rrrrinterrupt_the_serverrszExecutive.interrupt_the_servercCstj|j|S)N)rZstart_debuggerrw)rZ gui_adap_oidrrrstart_the_debuggervszExecutive.start_the_debuggercCs|jj|dS)zDUnregister the Idb Adapter. Link objects and Idb then subject to GCN)rwZ unregister)rZ idb_adap_oidrrrstop_the_debuggeryszExecutive.stop_the_debuggercCs|jj|S)N)rZ fetch_tip)rr"rrrget_the_calltip}szExecutive.get_the_calltipcCs|jj||S)N)rZfetch_completions)rZwhatmoderrrget_the_completion_listsz!Executive.get_the_completion_listNcCs|jr|j\}}}ndSd}|dk rI|jj|}nx)|rt|jjddkrt|j}qLW|t_|t_t j ||}t j |S)Nrrrun)zrpcr) rrwrtb_frame f_globalstb_nextr rmrnrZ StackTreeItemrZremote_object_tree_item)rZ flist_oidrarqr?Zflistitemrrr stackviewers     zExecutive.stackviewer) rrrrrrrrrrrrrrrrQs        r)+r rjrCr8_threadrr+r3rNZidlelibrrrrrrrr rr-rrrrZTclrrr/r4rr@r,rHr7r^rlr0Z RPCServerrErrFobjectrrrrrsL              I   $   +A