X7ROOT File Manager
Current Path:
/opt/alt/python37/lib64/python3.7/idlelib
opt
/
alt
/
python37
/
lib64
/
python3.7
/
idlelib
/
??
..
??
CREDITS.txt
(1.82 KB)
??
ChangeLog
(55.04 KB)
??
HISTORY.txt
(10.07 KB)
??
Icons
??
NEWS.txt
(47.65 KB)
??
NEWS2x.txt
(26.54 KB)
??
README.txt
(9.37 KB)
??
TODO.txt
(8.28 KB)
??
__init__.py
(396 B)
??
__main__.py
(159 B)
??
__pycache__
??
autocomplete.py
(8.74 KB)
??
autocomplete_w.py
(19.64 KB)
??
autoexpand.py
(3.14 KB)
??
browser.py
(8.12 KB)
??
calltip.py
(6.17 KB)
??
calltip_w.py
(6.99 KB)
??
codecontext.py
(11.06 KB)
??
colorizer.py
(12.69 KB)
??
config-extensions.def
(2.21 KB)
??
config-highlight.def
(2.8 KB)
??
config-keys.def
(10.65 KB)
??
config-main.def
(3.09 KB)
??
config.py
(37.28 KB)
??
config_key.py
(14.13 KB)
??
configdialog.py
(102.07 KB)
??
debugger.py
(18.66 KB)
??
debugger_r.py
(11.86 KB)
??
debugobj.py
(3.96 KB)
??
debugobj_r.py
(1.06 KB)
??
delegator.py
(1.02 KB)
??
dynoption.py
(1.97 KB)
??
editor.py
(64.08 KB)
??
extend.txt
(3.56 KB)
??
filelist.py
(3.8 KB)
??
format.py
(15.41 KB)
??
grep.py
(7.3 KB)
??
help.html
(60.76 KB)
??
help.py
(11.46 KB)
??
help_about.py
(8.77 KB)
??
history.py
(3.95 KB)
??
hyperparser.py
(12.58 KB)
??
idle.py
(454 B)
??
idle.pyw
(570 B)
??
idle_test
??
iomenu.py
(20.15 KB)
??
macosx.py
(9.44 KB)
??
mainmenu.py
(3.83 KB)
??
multicall.py
(18.21 KB)
??
outwin.py
(5.65 KB)
??
parenmatch.py
(7.04 KB)
??
pathbrowser.py
(3.12 KB)
??
percolator.py
(3.06 KB)
??
pyparse.py
(19.48 KB)
??
pyshell.py
(55.91 KB)
??
query.py
(14.55 KB)
??
redirector.py
(6.71 KB)
??
replace.py
(9.66 KB)
??
rpc.py
(20.64 KB)
??
run.py
(19.82 KB)
??
runscript.py
(8.58 KB)
??
scrolledlist.py
(4.36 KB)
??
search.py
(5.44 KB)
??
searchbase.py
(7.36 KB)
??
searchengine.py
(7.3 KB)
??
sidebar.py
(13.27 KB)
??
squeezer.py
(12.54 KB)
??
stackviewer.py
(4.35 KB)
??
statusbar.py
(1.41 KB)
??
textview.py
(6.65 KB)
??
tooltip.py
(6.41 KB)
??
tree.py
(15.97 KB)
??
undo.py
(10.79 KB)
??
window.py
(2.55 KB)
??
zoomheight.py
(4.1 KB)
??
zzdummy.py
(961 B)
Editing: debugobj.py
# XXX TO DO: # - popup menu # - support partial or total redisplay # - more doc strings # - tooltips # object browser # XXX TO DO: # - for classes/modules, add "open source" to object browser from reprlib import Repr from idlelib.tree import TreeItem, TreeNode, ScrolledCanvas myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 class ObjectTreeItem(TreeItem): def __init__(self, labeltext, object, setfunction=None): self.labeltext = labeltext self.object = object self.setfunction = setfunction def GetLabelText(self): return self.labeltext def GetText(self): return myrepr.repr(self.object) def GetIconName(self): if not self.IsExpandable(): return "python" def IsEditable(self): return self.setfunction is not None def SetText(self, text): try: value = eval(text) self.setfunction(value) except: pass else: self.object = value def IsExpandable(self): return not not dir(self.object) def GetSubList(self): keys = dir(self.object) sublist = [] for key in keys: try: value = getattr(self.object, key) except AttributeError: continue item = make_objecttreeitem( str(key) + " =", value, lambda value, key=key, object=self.object: setattr(object, key, value)) sublist.append(item) return sublist class ClassTreeItem(ObjectTreeItem): def IsExpandable(self): return True def GetSubList(self): sublist = ObjectTreeItem.GetSubList(self) if len(self.object.__bases__) == 1: item = make_objecttreeitem("__bases__[0] =", self.object.__bases__[0]) else: item = make_objecttreeitem("__bases__ =", self.object.__bases__) sublist.insert(0, item) return sublist class AtomicObjectTreeItem(ObjectTreeItem): def IsExpandable(self): return False class SequenceTreeItem(ObjectTreeItem): def IsExpandable(self): return len(self.object) > 0 def keys(self): return range(len(self.object)) def GetSubList(self): sublist = [] for key in self.keys(): try: value = self.object[key] except KeyError: continue def setfunction(value, key=key, object=self.object): object[key] = value item = make_objecttreeitem("%r:" % (key,), value, setfunction) sublist.append(item) return sublist class DictTreeItem(SequenceTreeItem): def keys(self): keys = list(self.object.keys()) try: keys.sort() except: pass return keys dispatch = { int: AtomicObjectTreeItem, float: AtomicObjectTreeItem, str: AtomicObjectTreeItem, tuple: SequenceTreeItem, list: SequenceTreeItem, dict: DictTreeItem, type: ClassTreeItem, } def make_objecttreeitem(labeltext, object, setfunction=None): t = type(object) if t in dispatch: c = dispatch[t] else: c = ObjectTreeItem return c(labeltext, object, setfunction) def _object_browser(parent): # htest # import sys from tkinter import Toplevel top = Toplevel(parent) top.title("Test debug object browser") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("+%d+%d" % (x + 100, y + 175)) top.configure(bd=0, bg="yellow") top.focus_set() sc = ScrolledCanvas(top, bg="white", highlightthickness=0, takefocus=1) sc.frame.pack(expand=1, fill="both") item = make_objecttreeitem("sys", sys) node = TreeNode(sc.canvas, None, item) node.update() if __name__ == '__main__': from unittest import main main('idlelib.idle_test.test_debugobj', verbosity=2, exit=False) from idlelib.idle_test.htest import run run(_object_browser)
Upload File
Create Folder