X7ROOT File Manager
Current Path:
/lib64/python2.7/idlelib
lib64
/
python2.7
/
idlelib
/
??
..
??
AutoComplete.py
(8.75 KB)
??
AutoComplete.pyc
(7.82 KB)
??
AutoComplete.pyo
(7.82 KB)
??
AutoCompleteWindow.py
(16.91 KB)
??
AutoCompleteWindow.pyc
(12.19 KB)
??
AutoCompleteWindow.pyo
(12.13 KB)
??
AutoExpand.py
(3.32 KB)
??
AutoExpand.pyc
(3.42 KB)
??
AutoExpand.pyo
(3.42 KB)
??
Bindings.py
(2.91 KB)
??
Bindings.pyc
(4.58 KB)
??
Bindings.pyo
(4.58 KB)
??
CREDITS.txt
(1.82 KB)
??
CallTipWindow.py
(5.92 KB)
??
CallTipWindow.pyc
(5.99 KB)
??
CallTipWindow.pyo
(5.99 KB)
??
CallTips.py
(7.56 KB)
??
CallTips.pyc
(7.94 KB)
??
CallTips.pyo
(7.94 KB)
??
ChangeLog
(55.07 KB)
??
ClassBrowser.py
(6.83 KB)
??
ClassBrowser.pyc
(9.28 KB)
??
ClassBrowser.pyo
(9.28 KB)
??
CodeContext.py
(8.15 KB)
??
CodeContext.pyc
(6.5 KB)
??
CodeContext.pyo
(6.46 KB)
??
ColorDelegator.py
(9.53 KB)
??
ColorDelegator.pyc
(8.69 KB)
??
ColorDelegator.pyo
(8.69 KB)
??
Debugger.py
(17.81 KB)
??
Debugger.pyc
(17.13 KB)
??
Debugger.pyo
(17.13 KB)
??
Delegator.py
(665 B)
??
Delegator.pyc
(1.24 KB)
??
Delegator.pyo
(1.24 KB)
??
EditorWindow.py
(63.96 KB)
??
EditorWindow.pyc
(55.53 KB)
??
EditorWindow.pyo
(55.43 KB)
??
FileList.py
(3.63 KB)
??
FileList.pyc
(3.93 KB)
??
FileList.pyo
(3.9 KB)
??
FormatParagraph.py
(7.12 KB)
??
FormatParagraph.pyc
(6.97 KB)
??
FormatParagraph.pyo
(6.97 KB)
??
GrepDialog.py
(5.02 KB)
??
GrepDialog.pyc
(6.27 KB)
??
GrepDialog.pyo
(6.27 KB)
??
HISTORY.txt
(10.08 KB)
??
HyperParser.py
(10.25 KB)
??
HyperParser.pyc
(6.52 KB)
??
HyperParser.pyo
(6.52 KB)
??
IOBinding.py
(21.4 KB)
??
IOBinding.pyc
(18.1 KB)
??
IOBinding.pyo
(18.1 KB)
??
Icons
??
IdleHistory.py
(3.96 KB)
??
IdleHistory.pyc
(3.96 KB)
??
IdleHistory.pyo
(3.96 KB)
??
MultiCall.py
(17.29 KB)
??
MultiCall.pyc
(15.97 KB)
??
MultiCall.pyo
(15.9 KB)
??
MultiStatusBar.py
(1.32 KB)
??
MultiStatusBar.pyc
(2.23 KB)
??
MultiStatusBar.pyo
(2.23 KB)
??
NEWS.txt
(46.14 KB)
??
ObjectBrowser.py
(4.27 KB)
??
ObjectBrowser.pyc
(6.9 KB)
??
ObjectBrowser.pyo
(6.9 KB)
??
OutputWindow.py
(4.47 KB)
??
OutputWindow.pyc
(5.11 KB)
??
OutputWindow.pyo
(5.11 KB)
??
ParenMatch.py
(6.56 KB)
??
ParenMatch.pyc
(6.96 KB)
??
ParenMatch.pyo
(6.96 KB)
??
PathBrowser.py
(2.94 KB)
??
PathBrowser.pyc
(4.38 KB)
??
PathBrowser.pyo
(4.38 KB)
??
Percolator.py
(3.15 KB)
??
Percolator.pyc
(4.5 KB)
??
Percolator.pyo
(4.32 KB)
??
PyParse.py
(19.05 KB)
??
PyParse.pyc
(9.77 KB)
??
PyParse.pyo
(9.34 KB)
??
PyShell.py
(57.48 KB)
??
PyShell.pyc
(51.59 KB)
??
PyShell.pyo
(51.49 KB)
??
README.txt
(7.71 KB)
??
RemoteDebugger.py
(11.36 KB)
??
RemoteDebugger.pyc
(15.94 KB)
??
RemoteDebugger.pyo
(15.79 KB)
??
RemoteObjectBrowser.py
(942 B)
??
RemoteObjectBrowser.pyc
(2.1 KB)
??
RemoteObjectBrowser.pyo
(2.1 KB)
??
ReplaceDialog.py
(6.48 KB)
??
ReplaceDialog.pyc
(7.57 KB)
??
ReplaceDialog.pyo
(7.57 KB)
??
RstripExtension.py
(1.03 KB)
??
RstripExtension.pyc
(1.58 KB)
??
RstripExtension.pyo
(1.58 KB)
??
ScriptBinding.py
(8.26 KB)
??
ScriptBinding.pyc
(8.01 KB)
??
ScriptBinding.pyo
(8.01 KB)
??
ScrolledList.py
(4.27 KB)
??
ScrolledList.pyc
(6.33 KB)
??
ScrolledList.pyo
(6.33 KB)
??
SearchDialog.py
(2.57 KB)
??
SearchDialog.pyc
(3.89 KB)
??
SearchDialog.pyo
(3.89 KB)
??
SearchDialogBase.py
(6.93 KB)
??
SearchDialogBase.pyc
(8.26 KB)
??
SearchDialogBase.pyo
(8.26 KB)
??
SearchEngine.py
(7.29 KB)
??
SearchEngine.pyc
(8.11 KB)
??
SearchEngine.pyo
(8.11 KB)
??
StackViewer.py
(4.33 KB)
??
StackViewer.pyc
(6.25 KB)
??
StackViewer.pyo
(6.25 KB)
??
TODO.txt
(8.28 KB)
??
ToolTip.py
(3.1 KB)
??
ToolTip.pyc
(4.56 KB)
??
ToolTip.pyo
(4.56 KB)
??
TreeWidget.py
(14.68 KB)
??
TreeWidget.pyc
(17.28 KB)
??
TreeWidget.pyo
(17.28 KB)
??
UndoDelegator.py
(10.53 KB)
??
UndoDelegator.pyc
(13.24 KB)
??
UndoDelegator.pyo
(13.24 KB)
??
WidgetRedirector.py
(6.74 KB)
??
WidgetRedirector.pyc
(7.59 KB)
??
WidgetRedirector.pyo
(7.59 KB)
??
WindowList.py
(2.42 KB)
??
WindowList.pyc
(3.55 KB)
??
WindowList.pyo
(3.55 KB)
??
ZoomHeight.py
(1.27 KB)
??
ZoomHeight.pyc
(1.61 KB)
??
ZoomHeight.pyo
(1.61 KB)
??
__init__.py
(288 B)
??
__init__.pyc
(431 B)
??
__init__.pyo
(431 B)
??
aboutDialog.py
(6.85 KB)
??
aboutDialog.pyc
(6.69 KB)
??
aboutDialog.pyo
(6.69 KB)
??
config-extensions.def
(2.9 KB)
??
config-highlight.def
(2.46 KB)
??
config-keys.def
(7.59 KB)
??
config-main.def
(2.5 KB)
??
configDialog.py
(64.41 KB)
??
configDialog.pyc
(52.04 KB)
??
configDialog.pyo
(52.04 KB)
??
configHandler.py
(31.72 KB)
??
configHandler.pyc
(28.67 KB)
??
configHandler.pyo
(28.67 KB)
??
configHelpSourceEdit.py
(6.53 KB)
??
configHelpSourceEdit.pyc
(6.44 KB)
??
configHelpSourceEdit.pyo
(6.44 KB)
??
configSectionNameDialog.py
(3.95 KB)
??
configSectionNameDialog.pyc
(4.32 KB)
??
configSectionNameDialog.pyo
(4.32 KB)
??
dynOptionMenuWidget.py
(1.94 KB)
??
dynOptionMenuWidget.pyc
(2.72 KB)
??
dynOptionMenuWidget.pyo
(2.72 KB)
??
extend.txt
(3.56 KB)
??
help.html
(41.42 KB)
??
help.py
(10.78 KB)
??
help.pyc
(11.98 KB)
??
help.pyo
(11.98 KB)
??
help.txt
(11.86 KB)
??
idle.py
(453 B)
??
idle.pyc
(410 B)
??
idle.pyo
(410 B)
??
idle.pyw
(563 B)
??
idle_test
??
idlever.py
(415 B)
??
idlever.pyc
(578 B)
??
idlever.pyo
(578 B)
??
keybindingDialog.py
(12.18 KB)
??
keybindingDialog.pyc
(11.89 KB)
??
keybindingDialog.pyo
(11.89 KB)
??
macosxSupport.py
(8.24 KB)
??
macosxSupport.pyc
(8.16 KB)
??
macosxSupport.pyo
(8.02 KB)
??
rpc.py
(19.68 KB)
??
rpc.pyc
(21.22 KB)
??
rpc.pyo
(21.12 KB)
??
run.py
(12.61 KB)
??
run.pyc
(13.1 KB)
??
run.pyo
(13.05 KB)
??
tabbedpages.py
(18.01 KB)
??
tabbedpages.pyc
(18.13 KB)
??
tabbedpages.pyo
(18.13 KB)
??
textView.py
(3.44 KB)
??
textView.pyc
(3.93 KB)
??
textView.pyo
(3.93 KB)
Editing: ReplaceDialog.py
from Tkinter import * from idlelib import SearchEngine from idlelib.SearchDialogBase import SearchDialogBase import re def replace(text): root = text._root() engine = SearchEngine.get(root) if not hasattr(engine, "_replacedialog"): engine._replacedialog = ReplaceDialog(root, engine) dialog = engine._replacedialog dialog.open(text) class ReplaceDialog(SearchDialogBase): title = "Replace Dialog" icon = "Replace" def __init__(self, root, engine): SearchDialogBase.__init__(self, root, engine) self.replvar = StringVar(root) def open(self, text): SearchDialogBase.open(self, text) try: first = text.index("sel.first") except TclError: first = None try: last = text.index("sel.last") except TclError: last = None first = first or text.index("insert") last = last or first self.show_hit(first, last) self.ok = 1 def create_entries(self): SearchDialogBase.create_entries(self) self.replent = self.make_entry("Replace with:", self.replvar)[0] def create_command_buttons(self): SearchDialogBase.create_command_buttons(self) self.make_button("Find", self.find_it) self.make_button("Replace", self.replace_it) self.make_button("Replace+Find", self.default_command, 1) self.make_button("Replace All", self.replace_all) def find_it(self, event=None): self.do_find(0) def replace_it(self, event=None): if self.do_find(self.ok): self.do_replace() def default_command(self, event=None): if self.do_find(self.ok): if self.do_replace(): # Only find next match if replace succeeded. # A bad re can cause it to fail. self.do_find(0) def _replace_expand(self, m, repl): """ Helper function for expanding a regular expression in the replace field, if needed. """ if self.engine.isre(): try: new = m.expand(repl) except re.error: self.engine.report_error(repl, 'Invalid Replace Expression') new = None else: new = repl return new def replace_all(self, event=None): prog = self.engine.getprog() if not prog: return repl = self.replvar.get() text = self.text res = self.engine.search_text(text, prog) if not res: text.bell() return text.tag_remove("sel", "1.0", "end") text.tag_remove("hit", "1.0", "end") line = res[0] col = res[1].start() if self.engine.iswrap(): line = 1 col = 0 ok = 1 first = last = None # XXX ought to replace circular instead of top-to-bottom when wrapping text.undo_block_start() while 1: res = self.engine.search_forward(text, prog, line, col, 0, ok) if not res: break line, m = res chars = text.get("%d.0" % line, "%d.0" % (line+1)) orig = m.group() new = self._replace_expand(m, repl) if new is None: break i, j = m.span() first = "%d.%d" % (line, i) last = "%d.%d" % (line, j) if new == orig: text.mark_set("insert", last) else: text.mark_set("insert", first) if first != last: text.delete(first, last) if new: text.insert(first, new) col = i + len(new) ok = 0 text.undo_block_stop() if first and last: self.show_hit(first, last) self.close() def do_find(self, ok=0): if not self.engine.getprog(): return False text = self.text res = self.engine.search_text(text, None, ok) if not res: text.bell() return False line, m = res i, j = m.span() first = "%d.%d" % (line, i) last = "%d.%d" % (line, j) self.show_hit(first, last) self.ok = 1 return True def do_replace(self): prog = self.engine.getprog() if not prog: return False text = self.text try: first = pos = text.index("sel.first") last = text.index("sel.last") except TclError: pos = None if not pos: first = last = pos = text.index("insert") line, col = SearchEngine.get_line_col(pos) chars = text.get("%d.0" % line, "%d.0" % (line+1)) m = prog.match(chars, col) if not prog: return False new = self._replace_expand(m, self.replvar.get()) if new is None: return False text.mark_set("insert", first) text.undo_block_start() if m.group(): text.delete(first, last) if new: text.insert(first, new) text.undo_block_stop() self.show_hit(first, text.index("insert")) self.ok = 0 return True def show_hit(self, first, last): text = self.text text.mark_set("insert", first) text.tag_remove("sel", "1.0", "end") text.tag_add("sel", first, last) text.tag_remove("hit", "1.0", "end") if first == last: text.tag_add("hit", first) else: text.tag_add("hit", first, last) text.see("insert") text.update_idletasks() def close(self, event=None): SearchDialogBase.close(self, event) self.text.tag_remove("hit", "1.0", "end") def _replace_dialog(parent): root = Tk() root.title("Test ReplaceDialog") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) root.geometry("+%d+%d"%(x, y + 150)) # mock undo delegator methods def undo_block_start(): pass def undo_block_stop(): pass text = Text(root) text.undo_block_start = undo_block_start text.undo_block_stop = undo_block_stop text.pack() text.insert("insert","This is a sample string.\n"*10) def show_replace(): text.tag_add(SEL, "1.0", END) replace(text) text.tag_remove(SEL, "1.0", END) button = Button(root, text="Replace", command=show_replace) button.pack() if __name__ == '__main__': from idlelib.idle_test.htest import run run(_replace_dialog)
Upload File
Create Folder