golden hour
/usr/lib64/python2.7/idlelib
⬆️ Go Up
Upload
File/Folder
Size
Actions
AutoComplete.py
8.79 KB
Del
OK
AutoComplete.pyc
7.69 KB
Del
OK
AutoComplete.pyo
7.69 KB
Del
OK
AutoCompleteWindow.py
16.8 KB
Del
OK
AutoCompleteWindow.pyc
12.15 KB
Del
OK
AutoCompleteWindow.pyo
12.09 KB
Del
OK
AutoExpand.py
2.42 KB
Del
OK
AutoExpand.pyc
2.5 KB
Del
OK
AutoExpand.pyo
2.5 KB
Del
OK
Bindings.py
3.22 KB
Del
OK
Bindings.pyc
4.76 KB
Del
OK
Bindings.pyo
4.76 KB
Del
OK
CREDITS.txt
1.82 KB
Del
OK
CallTipWindow.py
5.98 KB
Del
OK
CallTipWindow.pyc
6.14 KB
Del
OK
CallTipWindow.pyo
6.14 KB
Del
OK
CallTips.py
7.75 KB
Del
OK
CallTips.pyc
10.14 KB
Del
OK
CallTips.pyo
10.14 KB
Del
OK
ChangeLog
55.07 KB
Del
OK
ClassBrowser.py
6.22 KB
Del
OK
ClassBrowser.pyc
8.95 KB
Del
OK
ClassBrowser.pyo
8.95 KB
Del
OK
CodeContext.py
8.15 KB
Del
OK
CodeContext.pyc
6.52 KB
Del
OK
CodeContext.pyo
6.47 KB
Del
OK
ColorDelegator.py
10.13 KB
Del
OK
ColorDelegator.pyc
8.71 KB
Del
OK
ColorDelegator.pyo
8.71 KB
Del
OK
Debugger.py
15.45 KB
Del
OK
Debugger.pyc
16.55 KB
Del
OK
Debugger.pyo
16.55 KB
Del
OK
Delegator.py
831 B
Del
OK
Delegator.pyc
1.58 KB
Del
OK
Delegator.pyo
1.58 KB
Del
OK
EditorWindow.py
63.29 KB
Del
OK
EditorWindow.pyc
55.13 KB
Del
OK
EditorWindow.pyo
55.03 KB
Del
OK
FileList.py
3.57 KB
Del
OK
FileList.pyc
3.86 KB
Del
OK
FileList.pyo
3.82 KB
Del
OK
FormatParagraph.py
5.66 KB
Del
OK
FormatParagraph.pyc
4.69 KB
Del
OK
FormatParagraph.pyo
4.69 KB
Del
OK
GrepDialog.py
3.96 KB
Del
OK
GrepDialog.pyc
4.9 KB
Del
OK
GrepDialog.pyo
4.9 KB
Del
OK
HISTORY.txt
10.08 KB
Del
OK
HyperParser.py
10.31 KB
Del
OK
HyperParser.pyc
6.49 KB
Del
OK
HyperParser.pyo
6.49 KB
Del
OK
IOBinding.py
20.69 KB
Del
OK
IOBinding.pyc
17.16 KB
Del
OK
IOBinding.pyo
17.16 KB
Del
OK
Icons
-
Del
OK
IdleHistory.py
3.07 KB
Del
OK
IdleHistory.pyc
3.13 KB
Del
OK
IdleHistory.pyo
3.13 KB
Del
OK
MultiCall.py
17.07 KB
Del
OK
MultiCall.pyc
15.55 KB
Del
OK
MultiCall.pyo
15.48 KB
Del
OK
MultiStatusBar.py
783 B
Del
OK
MultiStatusBar.pyc
1.49 KB
Del
OK
MultiStatusBar.pyo
1.49 KB
Del
OK
NEWS.txt
28.32 KB
Del
OK
ObjectBrowser.py
4.05 KB
Del
OK
ObjectBrowser.pyc
6.56 KB
Del
OK
ObjectBrowser.pyo
6.56 KB
Del
OK
OutputWindow.py
4.47 KB
Del
OK
OutputWindow.pyc
5.11 KB
Del
OK
OutputWindow.pyo
5.11 KB
Del
OK
ParenMatch.py
6.47 KB
Del
OK
ParenMatch.pyc
6.82 KB
Del
OK
ParenMatch.pyo
6.82 KB
Del
OK
PathBrowser.py
2.58 KB
Del
OK
PathBrowser.pyc
4.02 KB
Del
OK
PathBrowser.pyo
4.02 KB
Del
OK
Percolator.py
2.55 KB
Del
OK
Percolator.pyc
3.55 KB
Del
OK
Percolator.pyo
3.37 KB
Del
OK
PyParse.py
19.05 KB
Del
OK
PyParse.pyc
9.77 KB
Del
OK
PyParse.pyo
9.34 KB
Del
OK
PyShell.py
54.81 KB
Del
OK
PyShell.pyc
49.14 KB
Del
OK
PyShell.pyo
49.04 KB
Del
OK
README.txt
2.56 KB
Del
OK
RemoteDebugger.py
11.38 KB
Del
OK
RemoteDebugger.pyc
15.97 KB
Del
OK
RemoteDebugger.pyo
15.82 KB
Del
OK
RemoteObjectBrowser.py
942 B
Del
OK
RemoteObjectBrowser.pyc
2.1 KB
Del
OK
RemoteObjectBrowser.pyo
2.1 KB
Del
OK
ReplaceDialog.py
5.69 KB
Del
OK
ReplaceDialog.pyc
6.32 KB
Del
OK
ReplaceDialog.pyo
6.32 KB
Del
OK
RstripExtension.py
824 B
Del
OK
RstripExtension.pyc
1.45 KB
Del
OK
RstripExtension.pyo
1.45 KB
Del
OK
ScriptBinding.py
8.22 KB
Del
OK
ScriptBinding.pyc
7.96 KB
Del
OK
ScriptBinding.pyo
7.96 KB
Del
OK
ScrolledList.py
3.9 KB
Del
OK
ScrolledList.pyc
6.03 KB
Del
OK
ScrolledList.pyo
6.03 KB
Del
OK
SearchDialog.py
1.99 KB
Del
OK
SearchDialog.pyc
2.93 KB
Del
OK
SearchDialog.pyo
2.93 KB
Del
OK
SearchDialogBase.py
4.28 KB
Del
OK
SearchDialogBase.pyc
5.37 KB
Del
OK
SearchDialogBase.pyo
5.37 KB
Del
OK
SearchEngine.py
6.57 KB
Del
OK
SearchEngine.pyc
7.02 KB
Del
OK
SearchEngine.pyo
7.02 KB
Del
OK
StackViewer.py
3.77 KB
Del
OK
StackViewer.pyc
5.79 KB
Del
OK
StackViewer.pyo
5.79 KB
Del
OK
TODO.txt
8.28 KB
Del
OK
ToolTip.py
2.67 KB
Del
OK
ToolTip.pyc
4.05 KB
Del
OK
ToolTip.pyo
4.05 KB
Del
OK
TreeWidget.py
14.87 KB
Del
OK
TreeWidget.pyc
17.48 KB
Del
OK
TreeWidget.pyo
17.48 KB
Del
OK
UndoDelegator.py
10.04 KB
Del
OK
UndoDelegator.pyc
12.27 KB
Del
OK
UndoDelegator.pyo
12.27 KB
Del
OK
WidgetRedirector.py
4.37 KB
Del
OK
WidgetRedirector.pyc
5.23 KB
Del
OK
WidgetRedirector.pyo
5.23 KB
Del
OK
WindowList.py
2.42 KB
Del
OK
WindowList.pyc
3.55 KB
Del
OK
WindowList.pyo
3.55 KB
Del
OK
ZoomHeight.py
1.28 KB
Del
OK
ZoomHeight.pyc
1.61 KB
Del
OK
ZoomHeight.pyo
1.61 KB
Del
OK
__init__.py
37 B
Del
OK
__init__.pyc
127 B
Del
OK
__init__.pyo
127 B
Del
OK
aboutDialog.py
6.42 KB
Del
OK
aboutDialog.pyc
6.63 KB
Del
OK
aboutDialog.pyo
6.63 KB
Del
OK
config-extensions.def
2.72 KB
Del
OK
config-highlight.def
1.7 KB
Del
OK
config-keys.def
7.35 KB
Del
OK
config-main.def
2.45 KB
Del
OK
configDialog.py
52.23 KB
Del
OK
configDialog.pyc
43.81 KB
Del
OK
configDialog.pyo
43.81 KB
Del
OK
configHandler.py
28.68 KB
Del
OK
configHandler.pyc
26.83 KB
Del
OK
configHandler.pyo
26.83 KB
Del
OK
configHelpSourceEdit.py
6.52 KB
Del
OK
configHelpSourceEdit.pyc
6.56 KB
Del
OK
configHelpSourceEdit.pyo
6.56 KB
Del
OK
configSectionNameDialog.py
3.63 KB
Del
OK
configSectionNameDialog.pyc
4.21 KB
Del
OK
configSectionNameDialog.pyo
4.21 KB
Del
OK
dynOptionMenuWidget.py
1.27 KB
Del
OK
dynOptionMenuWidget.pyc
1.66 KB
Del
OK
dynOptionMenuWidget.pyo
1.66 KB
Del
OK
extend.txt
3.56 KB
Del
OK
help.txt
11.72 KB
Del
OK
idle.py
400 B
Del
OK
idle.pyc
406 B
Del
OK
idle.pyo
406 B
Del
OK
idle.pyw
664 B
Del
OK
idlever.py
23 B
Del
OK
idlever.pyc
159 B
Del
OK
idlever.pyo
159 B
Del
OK
keybindingDialog.py
12.12 KB
Del
OK
keybindingDialog.pyc
12.05 KB
Del
OK
keybindingDialog.pyo
12.05 KB
Del
OK
macosxSupport.py
6.08 KB
Del
OK
macosxSupport.pyc
6.25 KB
Del
OK
macosxSupport.pyo
6.25 KB
Del
OK
rpc.py
19.75 KB
Del
OK
rpc.pyc
21.26 KB
Del
OK
rpc.pyo
21.16 KB
Del
OK
run.py
11.54 KB
Del
OK
run.pyc
12.14 KB
Del
OK
run.pyo
12.08 KB
Del
OK
tabbedpages.py
17.76 KB
Del
OK
tabbedpages.pyc
17.67 KB
Del
OK
tabbedpages.pyo
17.67 KB
Del
OK
textView.py
3.46 KB
Del
OK
textView.pyc
4.2 KB
Del
OK
textView.pyo
4.2 KB
Del
OK
Edit: run.py
import sys import io import linecache import time import socket import traceback import thread import threading import Queue 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__ LOCALHOST = '127.0.0.1' try: import warnings except ImportError: pass else: def idle_formatwarning_subproc(message, category, filename, lineno, line=None): """Format warnings the IDLE way""" s = "\nWarning (from warnings module):\n" s += ' File \"%s\", line %s\n' % (filename, lineno) if line is None: line = linecache.getline(filename, lineno) line = line.strip() if line: s += " %s\n" % line s += "%s: %s\n" % (category.__name__, message) return s warnings.formatwarning = idle_formatwarning_subproc # 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>>sys.stderr, "IDLE Subprocess: no IP port passed in sys.argv." return sys.argv[:] = [""] sockthread = threading.Thread(target=manage_socket, name='SockThread', args=((LOCALHOST, port),)) sockthread.setDaemon(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: 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: 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 socket.error, err: print>>sys.__stderr__,"IDLE Subprocess: socket error: "\ + err.args[1] + ", retrying...." else: print>>sys.__stderr__, "IDLE Subprocess: Connection to "\ "IDLE GUI failed, exiting." show_socket_error(err, address) global exit_now exit_now = True return server.handle_request() # A single request only def show_socket_error(err, address): import Tkinter import 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]) 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 tbe = traceback.extract_tb(tb) print>>efile, '\nTraceback (most recent call last):' 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, val) for line in lines: print>>efile, line, 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>>sys.stderr, "** IDLE Internal Exception: " 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("<pyshell#"): line = rpchandler.remotecall('linecache', 'getline', (fn, ln), {}) tb[i] = fn, ln, nm, line def flush_stdout(): try: if sys.stdout.softspace: sys.stdout.softspace = 0 sys.stdout.write("\n") except (AttributeError, EOFError): pass def exit(): """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) """ if no_exitfunc: try: del sys.exitfunc except AttributeError: pass sys.exit(0) class MyRPCServer(rpc.RPCServer): def handle_error(self, request, client_address): """Override RPCServer method for IDLE Interrupt the MainThread and exit server if link is dropped. """ global quitting try: raise except SystemExit: raise except EOFError: global exit_now exit_now = True thread.interrupt_main() except: erf = sys.__stderr__ print>>erf, '\n' + '-'*40 print>>erf, 'Unhandled server exception!' print>>erf, 'Thread: %s' % threading.currentThread().getName() print>>erf, 'Client Address: ', client_address print>>erf, 'Request: ', repr(request) traceback.print_exc(file=erf) print>>erf, '\n*** Unrecoverable, server exiting!' print>>erf, '-'*40 quitting = True thread.interrupt_main() class MyHandler(rpc.RPCHandler): def handle(self): """Override base method""" executive = Executive(self) self.register("exec", executive) self.console = self.get_remote_proxy("console") sys.stdin = PyShell.PseudoInputFile(self.console, "stdin", IOBinding.encoding) sys.stdout = PyShell.PseudoOutputFile(self.console, "stdout", IOBinding.encoding) sys.stderr = PyShell.PseudoOutputFile(self.console, "stderr", IOBinding.encoding) # Keep a reference to stdin so that it won't try to exit IDLE if # sys.stdin gets changed from within IDLE's shell. See issue17838. self._keep_stdin = sys.stdin self.interp = self.get_remote_proxy("interp") rpc.RPCHandler.getresponse(self, myseq=None, wait=0.05) def exithook(self): "override SocketIO method - wait for MainThread to shut us down" time.sleep(10) def EOFhook(self): "Override SocketIO method - terminate wait on callback and exit thread" global quitting quitting = True thread.interrupt_main() def decode_interrupthook(self): "interrupt awakened thread" global quitting quitting = True thread.interrupt_main() class Executive(object): def __init__(self, rpchandler): self.rpchandler = rpchandler self.locals = __main__.__dict__ self.calltip = CallTips.CallTips() self.autocomplete = AutoComplete.AutoComplete() def runcode(self, code): global interruptable try: self.usr_exc_info = None interruptable = True try: exec code in self.locals finally: interruptable = False except SystemExit: # Scripts that raise SystemExit should just # return to the interactive prompt pass except: self.usr_exc_info = sys.exc_info() if quitting: exit() print_exception() jit = self.rpchandler.console.getvar("<<toggle-jit-stack-viewer>>") 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)
Save