Current Path: > > > > lib64 > python2.7 > idlelib
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
Icons | Directory | - | - | |
idle_test | Directory | - | - | |
AutoComplete.py | File | 8964 bytes | April 10 2024 04:58:35. | |
AutoComplete.pyc | File | 8012 bytes | April 10 2024 04:58:46. | |
AutoComplete.pyo | File | 8012 bytes | April 10 2024 04:58:46. | |
AutoCompleteWindow.py | File | 17318 bytes | April 10 2024 04:58:35. | |
AutoCompleteWindow.pyc | File | 12480 bytes | April 10 2024 04:58:46. | |
AutoCompleteWindow.pyo | File | 12421 bytes | April 10 2024 04:58:43. | |
AutoExpand.py | File | 3395 bytes | April 10 2024 04:58:35. | |
AutoExpand.pyc | File | 3502 bytes | April 10 2024 04:58:46. | |
AutoExpand.pyo | File | 3502 bytes | April 10 2024 04:58:46. | |
Bindings.py | File | 2976 bytes | April 10 2024 04:58:35. | |
Bindings.pyc | File | 4695 bytes | April 10 2024 04:58:46. | |
Bindings.pyo | File | 4695 bytes | April 10 2024 04:58:46. | |
CREDITS.txt | File | 1866 bytes | April 10 2024 04:58:35. | |
CallTipWindow.py | File | 6065 bytes | April 10 2024 04:58:35. | |
CallTipWindow.pyc | File | 6136 bytes | April 10 2024 04:58:46. | |
CallTipWindow.pyo | File | 6136 bytes | April 10 2024 04:58:46. | |
CallTips.py | File | 7740 bytes | April 10 2024 04:58:35. | |
CallTips.pyc | File | 8133 bytes | April 10 2024 04:58:46. | |
CallTips.pyo | File | 8133 bytes | April 10 2024 04:58:46. | |
ChangeLog | File | 56393 bytes | April 10 2024 04:58:35. | |
ClassBrowser.py | File | 6999 bytes | April 10 2024 04:58:35. | |
ClassBrowser.pyc | File | 9500 bytes | April 10 2024 04:58:46. | |
ClassBrowser.pyo | File | 9500 bytes | April 10 2024 04:58:46. | |
CodeContext.py | File | 8342 bytes | April 10 2024 04:58:35. | |
CodeContext.pyc | File | 6658 bytes | April 10 2024 04:58:46. | |
CodeContext.pyo | File | 6614 bytes | April 10 2024 04:58:43. | |
ColorDelegator.py | File | 9762 bytes | April 10 2024 04:58:35. | |
ColorDelegator.pyc | File | 8898 bytes | April 10 2024 04:58:46. | |
ColorDelegator.pyo | File | 8898 bytes | April 10 2024 04:58:46. | |
Debugger.py | File | 18236 bytes | April 10 2024 04:58:35. | |
Debugger.pyc | File | 17546 bytes | April 10 2024 04:58:46. | |
Debugger.pyo | File | 17546 bytes | April 10 2024 04:58:46. | |
Delegator.py | File | 665 bytes | April 10 2024 04:58:35. | |
Delegator.pyc | File | 1268 bytes | April 10 2024 04:58:46. | |
Delegator.pyo | File | 1268 bytes | April 10 2024 04:58:46. | |
EditorWindow.py | File | 65498 bytes | April 10 2024 04:58:35. | |
EditorWindow.pyc | File | 56858 bytes | April 10 2024 04:58:46. | |
EditorWindow.pyo | File | 56756 bytes | April 10 2024 04:58:43. | |
FileList.py | File | 3718 bytes | April 10 2024 04:58:35. | |
FileList.pyc | File | 4025 bytes | April 10 2024 04:58:46. | |
FileList.pyo | File | 3992 bytes | April 10 2024 04:58:43. | |
FormatParagraph.py | File | 7287 bytes | April 10 2024 04:58:35. | |
FormatParagraph.pyc | File | 7142 bytes | April 10 2024 04:58:46. | |
FormatParagraph.pyo | File | 7142 bytes | April 10 2024 04:58:46. | |
GrepDialog.py | File | 5145 bytes | April 10 2024 04:58:35. | |
GrepDialog.pyc | File | 6425 bytes | April 10 2024 04:58:46. | |
GrepDialog.pyo | File | 6425 bytes | April 10 2024 04:58:46. | |
HISTORY.txt | File | 10317 bytes | April 10 2024 04:58:35. | |
HyperParser.py | File | 10497 bytes | April 10 2024 04:58:35. | |
HyperParser.pyc | File | 6673 bytes | April 10 2024 04:58:46. | |
HyperParser.pyo | File | 6673 bytes | April 10 2024 04:58:46. | |
IOBinding.py | File | 21911 bytes | April 10 2024 04:58:35. | |
IOBinding.pyc | File | 18535 bytes | April 10 2024 04:58:46. | |
IOBinding.pyo | File | 18535 bytes | April 10 2024 04:58:46. | |
IdleHistory.py | File | 4052 bytes | April 10 2024 04:58:35. | |
IdleHistory.pyc | File | 4060 bytes | April 10 2024 04:58:46. | |
IdleHistory.pyo | File | 4060 bytes | April 10 2024 04:58:46. | |
MultiCall.py | File | 17701 bytes | April 10 2024 04:58:35. | |
MultiCall.pyc | File | 16351 bytes | April 10 2024 04:58:46. | |
MultiCall.pyo | File | 16277 bytes | April 10 2024 04:58:43. | |
MultiStatusBar.py | File | 1348 bytes | April 10 2024 04:58:35. | |
MultiStatusBar.pyc | File | 2279 bytes | April 10 2024 04:58:46. | |
MultiStatusBar.pyo | File | 2279 bytes | April 10 2024 04:58:46. | |
NEWS.txt | File | 47247 bytes | April 10 2024 04:58:35. | |
ObjectBrowser.py | File | 4376 bytes | April 10 2024 04:58:35. | |
ObjectBrowser.pyc | File | 7067 bytes | April 10 2024 04:58:46. | |
ObjectBrowser.pyo | File | 7067 bytes | April 10 2024 04:58:46. | |
OutputWindow.py | File | 4576 bytes | April 10 2024 04:58:35. | |
OutputWindow.pyc | File | 5232 bytes | April 10 2024 04:58:46. | |
OutputWindow.pyo | File | 5232 bytes | April 10 2024 04:58:46. | |
ParenMatch.py | File | 6714 bytes | April 10 2024 04:58:35. | |
ParenMatch.pyc | File | 7129 bytes | April 10 2024 04:58:46. | |
ParenMatch.pyo | File | 7129 bytes | April 10 2024 04:58:46. | |
PathBrowser.py | File | 3009 bytes | April 10 2024 04:58:35. | |
PathBrowser.pyc | File | 4486 bytes | April 10 2024 04:58:46. | |
PathBrowser.pyo | File | 4486 bytes | April 10 2024 04:58:46. | |
Percolator.py | File | 3222 bytes | April 10 2024 04:58:35. | |
Percolator.pyc | File | 4608 bytes | April 10 2024 04:58:46. | |
Percolator.pyo | File | 4424 bytes | April 10 2024 04:58:43. | |
PyParse.py | File | 19510 bytes | April 10 2024 04:58:35. | |
PyParse.pyc | File | 10005 bytes | April 10 2024 04:58:46. | |
PyParse.pyo | File | 9567 bytes | April 10 2024 04:58:43. | |
PyShell.py | File | 58862 bytes | April 10 2024 04:58:35. | |
PyShell.pyc | File | 52826 bytes | April 10 2024 04:58:46. | |
PyShell.pyo | File | 52724 bytes | April 10 2024 04:58:43. | |
README.txt | File | 7890 bytes | April 10 2024 04:58:35. | |
RemoteDebugger.py | File | 11632 bytes | April 10 2024 04:58:35. | |
RemoteDebugger.pyc | File | 16325 bytes | April 10 2024 04:58:46. | |
RemoteDebugger.pyo | File | 16171 bytes | April 10 2024 04:58:43. | |
RemoteObjectBrowser.py | File | 942 bytes | April 10 2024 04:58:35. | |
RemoteObjectBrowser.pyc | File | 2150 bytes | April 10 2024 04:58:46. | |
RemoteObjectBrowser.pyo | File | 2150 bytes | April 10 2024 04:58:46. | |
ReplaceDialog.py | File | 6639 bytes | April 10 2024 04:58:35. | |
ReplaceDialog.pyc | File | 7756 bytes | April 10 2024 04:58:46. | |
ReplaceDialog.pyo | File | 7756 bytes | April 10 2024 04:58:46. | |
RstripExtension.py | File | 1050 bytes | April 10 2024 04:58:35. | |
RstripExtension.pyc | File | 1613 bytes | April 10 2024 04:58:46. | |
RstripExtension.pyo | File | 1613 bytes | April 10 2024 04:58:46. | |
ScriptBinding.py | File | 8459 bytes | April 10 2024 04:58:35. | |
ScriptBinding.pyc | File | 8201 bytes | April 10 2024 04:58:46. | |
ScriptBinding.pyo | File | 8201 bytes | April 10 2024 04:58:46. | |
ScrolledList.py | File | 4373 bytes | April 10 2024 04:58:35. | |
ScrolledList.pyc | File | 6482 bytes | April 10 2024 04:58:46. | |
ScrolledList.pyo | File | 6482 bytes | April 10 2024 04:58:46. | |
SearchDialog.py | File | 2630 bytes | April 10 2024 04:58:35. | |
SearchDialog.pyc | File | 3983 bytes | April 10 2024 04:58:46. | |
SearchDialog.pyo | File | 3983 bytes | April 10 2024 04:58:46. | |
SearchDialogBase.py | File | 7094 bytes | April 10 2024 04:58:35. | |
SearchDialogBase.pyc | File | 8462 bytes | April 10 2024 04:58:46. | |
SearchDialogBase.pyo | File | 8462 bytes | April 10 2024 04:58:46. | |
SearchEngine.py | File | 7463 bytes | April 10 2024 04:58:35. | |
SearchEngine.pyc | File | 8302 bytes | April 10 2024 04:58:46. | |
SearchEngine.pyo | File | 8302 bytes | April 10 2024 04:58:46. | |
StackViewer.py | File | 4431 bytes | April 10 2024 04:58:35. | |
StackViewer.pyc | File | 6404 bytes | April 10 2024 04:58:46. | |
StackViewer.pyo | File | 6404 bytes | April 10 2024 04:58:46. | |
TODO.txt | File | 8478 bytes | April 10 2024 04:58:35. | |
ToolTip.py | File | 3173 bytes | April 10 2024 04:58:35. | |
ToolTip.pyc | File | 4669 bytes | April 10 2024 04:58:46. | |
ToolTip.pyo | File | 4669 bytes | April 10 2024 04:58:46. | |
TreeWidget.py | File | 15037 bytes | April 10 2024 04:58:35. | |
TreeWidget.pyc | File | 17694 bytes | April 10 2024 04:58:46. | |
TreeWidget.pyo | File | 17694 bytes | April 10 2024 04:58:46. | |
UndoDelegator.py | File | 10787 bytes | April 10 2024 04:58:35. | |
UndoDelegator.pyc | File | 13555 bytes | April 10 2024 04:58:46. | |
UndoDelegator.pyo | File | 13555 bytes | April 10 2024 04:58:46. | |
WidgetRedirector.py | File | 6906 bytes | April 10 2024 04:58:35. | |
WidgetRedirector.pyc | File | 7769 bytes | April 10 2024 04:58:46. | |
WidgetRedirector.pyo | File | 7769 bytes | April 10 2024 04:58:46. | |
WindowList.py | File | 2473 bytes | April 10 2024 04:58:35. | |
WindowList.pyc | File | 3636 bytes | April 10 2024 04:58:46. | |
WindowList.pyo | File | 3636 bytes | April 10 2024 04:58:46. | |
ZoomHeight.py | File | 1300 bytes | April 10 2024 04:58:35. | |
ZoomHeight.pyc | File | 1646 bytes | April 10 2024 04:58:46. | |
ZoomHeight.pyo | File | 1646 bytes | April 10 2024 04:58:46. | |
__init__.py | File | 288 bytes | April 10 2024 04:58:35. | |
__init__.pyc | File | 431 bytes | April 10 2024 04:58:46. | |
__init__.pyo | File | 431 bytes | April 10 2024 04:58:46. | |
aboutDialog.py | File | 7014 bytes | April 10 2024 04:58:35. | |
aboutDialog.pyc | File | 6848 bytes | April 10 2024 04:58:46. | |
aboutDialog.pyo | File | 6848 bytes | April 10 2024 04:58:46. | |
config-extensions.def | File | 2965 bytes | April 10 2024 04:58:35. | |
config-highlight.def | File | 2515 bytes | April 10 2024 04:58:35. | |
config-keys.def | File | 7777 bytes | April 10 2024 04:58:35. | |
config-main.def | File | 2561 bytes | April 10 2024 04:58:35. | |
configDialog.py | File | 65958 bytes | April 10 2024 04:58:35. | |
configDialog.pyc | File | 53291 bytes | April 10 2024 04:58:46. | |
configDialog.pyo | File | 53291 bytes | April 10 2024 04:58:46. | |
configHandler.py | File | 32485 bytes | April 10 2024 04:58:35. | |
configHandler.pyc | File | 29361 bytes | April 10 2024 04:58:46. | |
configHandler.pyo | File | 29361 bytes | April 10 2024 04:58:46. | |
configHelpSourceEdit.py | File | 6686 bytes | April 10 2024 04:58:35. | |
configHelpSourceEdit.pyc | File | 6595 bytes | April 10 2024 04:58:46. | |
configHelpSourceEdit.pyo | File | 6595 bytes | April 10 2024 04:58:46. | |
configSectionNameDialog.py | File | 4040 bytes | April 10 2024 04:58:35. | |
configSectionNameDialog.pyc | File | 4419 bytes | April 10 2024 04:58:46. | |
configSectionNameDialog.pyo | File | 4419 bytes | April 10 2024 04:58:46. | |
dynOptionMenuWidget.py | File | 1984 bytes | April 10 2024 04:58:35. | |
dynOptionMenuWidget.pyc | File | 2790 bytes | April 10 2024 04:58:46. | |
dynOptionMenuWidget.pyo | File | 2790 bytes | April 10 2024 04:58:46. | |
extend.txt | File | 3642 bytes | April 10 2024 04:58:35. | |
help.html | File | 42414 bytes | April 10 2024 04:58:35. | |
help.py | File | 11035 bytes | April 10 2024 04:58:35. | |
help.pyc | File | 12270 bytes | April 10 2024 04:58:46. | |
help.pyo | File | 12270 bytes | April 10 2024 04:58:46. | |
help.txt | File | 12144 bytes | April 10 2024 04:58:35. | |
idle.py | File | 453 bytes | April 10 2024 04:58:35. | |
idle.pyc | File | 410 bytes | April 10 2024 04:58:46. | |
idle.pyo | File | 410 bytes | April 10 2024 04:58:46. | |
idle.pyw | File | 563 bytes | April 10 2024 04:58:35. | |
idlever.py | File | 415 bytes | April 10 2024 04:58:35. | |
idlever.pyc | File | 578 bytes | April 10 2024 04:58:46. | |
idlever.pyo | File | 578 bytes | April 10 2024 04:58:46. | |
keybindingDialog.py | File | 12468 bytes | April 10 2024 04:58:35. | |
keybindingDialog.pyc | File | 12173 bytes | April 10 2024 04:58:46. | |
keybindingDialog.pyo | File | 12173 bytes | April 10 2024 04:58:46. | |
macosxSupport.py | File | 8435 bytes | April 10 2024 04:58:35. | |
macosxSupport.pyc | File | 8351 bytes | April 10 2024 04:58:46. | |
macosxSupport.pyo | File | 8213 bytes | April 10 2024 04:58:43. | |
rpc.py | File | 20150 bytes | April 10 2024 04:58:35. | |
rpc.pyc | File | 21728 bytes | April 10 2024 04:58:46. | |
rpc.pyo | File | 21622 bytes | April 10 2024 04:58:43. | |
run.py | File | 12917 bytes | April 10 2024 04:58:35. | |
run.pyc | File | 13419 bytes | April 10 2024 04:58:46. | |
run.pyo | File | 13361 bytes | April 10 2024 04:58:43. | |
tabbedpages.py | File | 18439 bytes | April 10 2024 04:58:35. | |
tabbedpages.pyc | File | 18561 bytes | April 10 2024 04:58:46. | |
tabbedpages.pyo | File | 18561 bytes | April 10 2024 04:58:46. | |
textView.py | File | 3520 bytes | April 10 2024 04:58:35. | |
textView.pyc | File | 4025 bytes | April 10 2024 04:58:46. | |
textView.pyo | File | 4025 bytes | April 10 2024 04:58:46. |
from __future__ import print_function from Tkinter import TclError class WidgetRedirector: """Support for redirecting arbitrary widget subcommands. Some Tk operations don't normally pass through tkinter. For example, if a character is inserted into a Text widget by pressing a key, a default Tk binding to the widget's 'insert' operation is activated, and the Tk library processes the insert without calling back into tkinter. Although a binding to <Key> could be made via tkinter, what we really want to do is to hook the Tk 'insert' operation itself. For one thing, we want a text.insert call in idle code to have the same effect as a key press. When a widget is instantiated, a Tcl command is created whose name is the same as the pathname widget._w. This command is used to invoke the various widget operations, e.g. insert (for a Text widget). We are going to hook this command and provide a facility ('register') to intercept the widget operation. We will also intercept method calls on the Tkinter class instance that represents the tk widget. In IDLE, WidgetRedirector is used in Percolator to intercept Text commands. The function being registered provides access to the top of a Percolator chain. At the bottom of the chain is a call to the original Tk widget operation. """ def __init__(self, widget): '''Initialize attributes and setup redirection. _operations: dict mapping operation name to new function. widget: the widget whose tcl command is to be intercepted. tk: widget.tk, a convenience attribute, probably not needed. orig: new name of the original tcl command. Since renaming to orig fails with TclError when orig already exists, only one WidgetDirector can exist for a given widget. ''' self._operations = {} self.widget = widget # widget instance self.tk = tk = widget.tk # widget's root w = widget._w # widget's (full) Tk pathname self.orig = w + "_orig" # Rename the Tcl command within Tcl: tk.call("rename", w, self.orig) # Create a new Tcl command whose name is the widget's pathname, and # whose action is to dispatch on the operation passed to the widget: tk.createcommand(w, self.dispatch) def __repr__(self): return "WidgetRedirector(%s<%s>)" % (self.widget.__class__.__name__, self.widget._w) def close(self): "Unregister operations and revert redirection created by .__init__." for operation in list(self._operations): self.unregister(operation) widget = self.widget tk = widget.tk w = widget._w # Restore the original widget Tcl command. tk.deletecommand(w) tk.call("rename", self.orig, w) del self.widget, self.tk # Should not be needed # if instance is deleted after close, as in Percolator. def register(self, operation, function): '''Return OriginalCommand(operation) after registering function. Registration adds an operation: function pair to ._operations. It also adds a widget function attribute that masks the Tkinter class instance method. Method masking operates independently from command dispatch. If a second function is registered for the same operation, the first function is replaced in both places. ''' self._operations[operation] = function setattr(self.widget, operation, function) return OriginalCommand(self, operation) def unregister(self, operation): '''Return the function for the operation, or None. Deleting the instance attribute unmasks the class attribute. ''' if operation in self._operations: function = self._operations[operation] del self._operations[operation] try: delattr(self.widget, operation) except AttributeError: pass return function else: return None def dispatch(self, operation, *args): '''Callback from Tcl which runs when the widget is referenced. If an operation has been registered in self._operations, apply the associated function to the args passed into Tcl. Otherwise, pass the operation through to Tk via the original Tcl function. Note that if a registered function is called, the operation is not passed through to Tk. Apply the function returned by self.register() to *args to accomplish that. For an example, see ColorDelegator.py. ''' m = self._operations.get(operation) try: if m: return m(*args) else: return self.tk.call((self.orig, operation) + args) except TclError: return "" class OriginalCommand: '''Callable for original tk command that has been redirected. Returned by .register; can be used in the function registered. redir = WidgetRedirector(text) def my_insert(*args): print("insert", args) original_insert(*args) original_insert = redir.register("insert", my_insert) ''' def __init__(self, redir, operation): '''Create .tk_call and .orig_and_operation for .__call__ method. .redir and .operation store the input args for __repr__. .tk and .orig copy attributes of .redir (probably not needed). ''' self.redir = redir self.operation = operation self.tk = redir.tk # redundant with self.redir self.orig = redir.orig # redundant with self.redir # These two could be deleted after checking recipient code. self.tk_call = redir.tk.call self.orig_and_operation = (redir.orig, operation) def __repr__(self): return "OriginalCommand(%r, %r)" % (self.redir, self.operation) def __call__(self, *args): return self.tk_call(self.orig_and_operation + args) def _widget_redirector(parent): # htest # from Tkinter import Tk, Text import re root = Tk() root.title("Test WidgetRedirector") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) root.geometry("+%d+%d"%(x, y + 150)) text = Text(root) text.pack() text.focus_set() redir = WidgetRedirector(text) def my_insert(*args): print("insert", args) original_insert(*args) original_insert = redir.register("insert", my_insert) root.mainloop() if __name__ == "__main__": import unittest unittest.main('idlelib.idle_test.test_widgetredir', verbosity=2, exit=False) from idlelib.idle_test.htest import run run(_widget_redirector)
SILENT KILLER Tool