/opt/alt/python35/lib64/python3.5/idlelib
NameSizeModeActions
Icons/-0755rm
idle_test/-0755rm
__pycache__/-0755rm
aboutDialog.py69870644editdlrm
AutoComplete.py92010644editdlrm
AutoCompleteWindow.py177390644editdlrm
AutoExpand.py33950644editdlrm
Bindings.py31110644editdlrm
CallTips.py59320644editdlrm
CallTipWindow.py60350644editdlrm
ChangeLog563880644editdlrm
ClassBrowser.py69990644editdlrm
CodeContext.py83570644editdlrm
ColorDelegator.py105980644editdlrm
config-extensions.def29650644editdlrm
config-highlight.def25150644editdlrm
config-keys.def77770644editdlrm
config-main.def25630644editdlrm
configDialog.py650610644editdlrm
configHandler.py324510644editdlrm
configHelpSourceEdit.py68170644editdlrm
configSectionNameDialog.py40070644editdlrm
CREDITS.txt18660644editdlrm
Debugger.py187580644editdlrm
Delegator.py10430644editdlrm
dynOptionMenuWidget.py19900644editdlrm
EditorWindow.py655950644editdlrm
extend.txt36420644editdlrm
FileList.py38130644editdlrm
FormatParagraph.py72870644editdlrm
GrepDialog.py51240644editdlrm
help.html434110644editdlrm
help.py109520644editdlrm
help.txt179000644editdlrm
HISTORY.txt103120644editdlrm
HyperParser.py128770644editdlrm
idle.py4530644editdlrm
idle.pyw5700644editdlrm
IdleHistory.py40520644editdlrm
idlever.py4150644editdlrm
IOBinding.py205990644editdlrm
keybindingDialog.py124160644editdlrm
macosxSupport.py86840644editdlrm
MultiCall.py185710644editdlrm
MultiStatusBar.py13480644editdlrm
NEWS.txt155360644editdlrm
NEWS2x.txt271720644editdlrm
ObjectBrowser.py39750644editdlrm
OutputWindow.py43940644editdlrm
ParenMatch.py67140644editdlrm
PathBrowser.py32070644editdlrm
Percolator.py31790644editdlrm
PyParse.py204610644editdlrm
PyShell.py588460755editdlrm
README.txt78910644editdlrm
RemoteDebugger.py120070644editdlrm
RemoteObjectBrowser.py9640644editdlrm
ReplaceDialog.py74810644editdlrm
rpc.py207840644editdlrm
RstripExtension.py10500644editdlrm
run.py138690644editdlrm
ScriptBinding.py80610644editdlrm
ScrolledList.py43750644editdlrm
SearchDialog.py31270644editdlrm
SearchDialogBase.py70090644editdlrm
SearchEngine.py74850644editdlrm
StackViewer.py44260644editdlrm
tabbedpages.py184180644editdlrm
textView.py34190644editdlrm
TODO.txt84780644editdlrm
ToolTip.py31730644editdlrm
TreeWidget.py150240644editdlrm
UndoDelegator.py109800644editdlrm
WidgetRedirector.py69390644editdlrm
WindowList.py24720644editdlrm
ZoomHeight.py13000644editdlrm
__init__.py3350644editdlrm
__main__.py1590644editdlrm
Edit: /opt/alt/python35/lib64/python3.5/idlelib/run.py (13869B)
import sys import linecache import time import traceback import _thread as thread import threading import queue import tkinter from idlelib import CallTips from idlelib import AutoComplete from idlelib import RemoteDebugger from idlelib import RemoteObjectBrowser from idlelib import StackViewer from idlelib import rpc from idlelib import PyShell from idlelib import IOBinding import __main__ for mod in ('simpledialog', 'messagebox', 'font', 'dialog', 'filedialog', 'commondialog', 'colorchooser'): delattr(tkinter, mod) del sys.modules['tkinter.' + mod] LOCALHOST = '127.0.0.1' import warnings def idle_showwarning_subproc( message, category, filename, lineno, file=None, line=None): """Show Idle-format warning after replacing warnings.showwarning. The only difference is the formatter called. """ if file is None: file = sys.stderr try: file.write(PyShell.idle_formatwarning( message, category, filename, lineno, line)) except IOError: pass # the file (probably stderr) is invalid - this warning gets lost. _warnings_showwarning = None def capture_warnings(capture): "Replace warning.showwarning with idle_showwarning_subproc, or reverse." global _warnings_showwarning if capture: if _warnings_showwarning is None: _warnings_showwarning = warnings.showwarning warnings.showwarning = idle_showwarning_subproc else: if _warnings_showwarning is not None: warnings.showwarning = _warnings_showwarning _warnings_showwarning = None capture_warnings(True) tcl = tkinter.Tcl() def handle_tk_events(tcl=tcl): """Process 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.""" tcl.eval("update") # Thread shared globals: Establish a queue between a subthread (which handles # the socket) and the main thread (which runs user code), plus global # completion, exit and interruptable (the main thread) flags: exit_now = False quitting = False interruptable = False def main(del_exitfunc=False): """Start 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. """ global exit_now global quitting global no_exitfunc no_exitfunc = del_exitfunc #time.sleep(15) # test subprocess not responding try: assert(len(sys.argv) > 1) port = int(sys.argv[-1]) except: print("IDLE Subprocess: no IP port passed in sys.argv.", file=sys.__stderr__) return capture_warnings(True) sys.argv[:] = [""] sockthread = threading.Thread(target=manage_socket, name='SockThread', args=((LOCALHOST, port),)) sockthread.daemon = True sockthread.start() while 1: try: if exit_now: try: exit() except KeyboardInterrupt: # exiting but got an extra KBI? Try again! continue try: seq, request = rpc.request_queue.get(block=True, timeout=0.05) except queue.Empty: handle_tk_events() continue method, args, kwargs = request ret = method(*args, **kwargs) rpc.response_queue.put((seq, ret)) except KeyboardInterrupt: if quitting: exit_now = True continue except SystemExit: capture_warnings(False) raise except: type, value, tb = sys.exc_info() try: print_exception() rpc.response_queue.put((seq, None)) except: # Link didn't work, print same exception to __stderr__ traceback.print_exception(type, value, tb, file=sys.__stderr__) exit() else: continue def manage_socket(address): for i in range(3): time.sleep(i) try: server = MyRPCServer(address, MyHandler) break except OSError as err: print("IDLE Subprocess: OSError: " + err.args[1] + ", retrying....", file=sys.__stderr__) socket_error = err else: print("IDLE Subprocess: Connection to " "IDLE GUI failed, exiting.", file=sys.__stderr__) show_socket_error(socket_error, address) global exit_now exit_now = True return server.handle_request() # A single request only def show_socket_error(err, address): import tkinter import tkinter.messagebox as tkMessageBox root = tkinter.Tk() root.withdraw() if err.args[0] == 61: # connection refused msg = "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." % address tkMessageBox.showerror("IDLE Subprocess Error", msg, parent=root) else: tkMessageBox.showerror("IDLE Subprocess Error", "Socket Error: %s" % err.args[1], parent=root) root.destroy() def print_exception(): import linecache linecache.checkcache() flush_stdout() efile = sys.stderr typ, val, tb = excinfo = sys.exc_info() sys.last_type, sys.last_value, sys.last_traceback = excinfo seen = set() def print_exc(typ, exc, tb): seen.add(exc) context = exc.__context__ cause = exc.__cause__ if cause is not None and cause not in seen: print_exc(type(cause), cause, cause.__traceback__) print("\nThe above exception was the direct cause " "of the following exception:\n", file=efile) elif (context is not None and not exc.__suppress_context__ and context not in seen): print_exc(type(context), context, context.__traceback__) print("\nDuring handling of the above exception, " "another exception occurred:\n", file=efile) if tb: tbe = traceback.extract_tb(tb) print('Traceback (most recent call last):', file=efile) exclude = ("run.py", "rpc.py", "threading.py", "queue.py", "RemoteDebugger.py", "bdb.py") cleanup_traceback(tbe, exclude) traceback.print_list(tbe, file=efile) lines = traceback.format_exception_only(typ, exc) for line in lines: print(line, end='', file=efile) print_exc(typ, val, tb) def cleanup_traceback(tb, exclude): "Remove excluded traces from beginning/end of tb; get cached lines" orig_tb = tb[:] while tb: for rpcfile in exclude: if tb[0][0].count(rpcfile): break # found an exclude, break for: and delete tb[0] else: break # no excludes, have left RPC code, break while: del tb[0] while tb: for rpcfile in exclude: if tb[-1][0].count(rpcfile): break else: break del tb[-1] if len(tb) == 0: # exception was in IDLE internals, don't prune! tb[:] = orig_tb[:] print("** IDLE Internal Exception: ", file=sys.stderr) rpchandler = rpc.objecttable['exec'].rpchandler for i in range(len(tb)): fn, ln, nm, line = tb[i] if nm == '?': nm = "-toplevel-" if not line and fn.startswith(">") if jit: self.rpchandler.interp.open_remote_stack_viewer() else: flush_stdout() def interrupt_the_server(self): if interruptable: thread.interrupt_main() def start_the_debugger(self, gui_adap_oid): return RemoteDebugger.start_debugger(self.rpchandler, gui_adap_oid) def stop_the_debugger(self, idb_adap_oid): "Unregister the Idb Adapter. Link objects and Idb then subject to GC" self.rpchandler.unregister(idb_adap_oid) def get_the_calltip(self, name): return self.calltip.fetch_tip(name) def get_the_completion_list(self, what, mode): return self.autocomplete.fetch_completions(what, mode) def stackviewer(self, flist_oid=None): if self.usr_exc_info: typ, val, tb = self.usr_exc_info else: return None flist = None if flist_oid is not None: flist = self.rpchandler.get_remote_proxy(flist_oid) while tb and tb.tb_frame.f_globals["__name__"] in ["rpc", "run"]: tb = tb.tb_next sys.last_type = typ sys.last_value = val item = StackViewer.StackTreeItem(flist, tb) return RemoteObjectBrowser.remote_object_tree_item(item) capture_warnings(False) # Make sure turned off; see issue 18081