From 57b39e0916d741d9851ac875d8f443bfc6005def Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 11 Apr 2007 19:24:50 +0000 Subject: [PATCH] Bug #1697782: remove all remaining code that uses types.InstanceType. --- Lib/cgitb.py | 16 +++++++--------- Lib/idlelib/ObjectBrowser.py | 10 ---------- Lib/idlelib/rpc.py | 2 -- Lib/plat-mac/aetypes.py | 3 +-- Lib/plat-mac/findertools.py | 4 ++-- Lib/pydoc.py | 2 -- Lib/test/crashers/infinite_rec_5.py | 10 ---------- Lib/test/test_isinstance.py | 1 - 8 files changed, 10 insertions(+), 38 deletions(-) delete mode 100644 Lib/test/crashers/infinite_rec_5.py diff --git a/Lib/cgitb.py b/Lib/cgitb.py index ae25cf13ad7..19118ea53d4 100644 --- a/Lib/cgitb.py +++ b/Lib/cgitb.py @@ -167,11 +167,10 @@ function calls leading up to the error, in the order they occurred.

''' exception = ['

%s: %s' % (strong(pydoc.html.escape(str(etype))), pydoc.html.escape(str(evalue)))] - if type(evalue) is types.InstanceType: - for name in dir(evalue): - if name[:1] == '_': continue - value = pydoc.html.repr(getattr(evalue, name)) - exception.append('\n
%s%s =\n%s' % (indent, name, value)) + for name in dir(evalue): + if name[:1] == '_': continue + value = pydoc.html.repr(getattr(evalue, name)) + exception.append('\n
%s%s =\n%s' % (indent, name, value)) import traceback return head + ''.join(frames) + ''.join(exception) + ''' @@ -239,10 +238,9 @@ function calls leading up to the error, in the order they occurred. frames.append('\n%s\n' % '\n'.join(rows)) exception = ['%s: %s' % (str(etype), str(evalue))] - if type(evalue) is types.InstanceType: - for name in dir(evalue): - value = pydoc.text.repr(getattr(evalue, name)) - exception.append('\n%s%s = %s' % (" "*4, name, value)) + for name in dir(evalue): + value = pydoc.text.repr(getattr(evalue, name)) + exception.append('\n%s%s = %s' % (" "*4, name, value)) import traceback return head + ''.join(frames) + ''.join(exception) + ''' diff --git a/Lib/idlelib/ObjectBrowser.py b/Lib/idlelib/ObjectBrowser.py index b4f64b6fb24..3ef5bb905de 100644 --- a/Lib/idlelib/ObjectBrowser.py +++ b/Lib/idlelib/ObjectBrowser.py @@ -57,15 +57,6 @@ class ObjectTreeItem(TreeItem): sublist.append(item) return sublist -class InstanceTreeItem(ObjectTreeItem): - def IsExpandable(self): - return True - def GetSubList(self): - sublist = ObjectTreeItem.GetSubList(self) - sublist.insert(0, - make_objecttreeitem("__class__ =", self.object.__class__)) - return sublist - class ClassTreeItem(ObjectTreeItem): def IsExpandable(self): return True @@ -120,7 +111,6 @@ dispatch = { TupleType: SequenceTreeItem, ListType: SequenceTreeItem, DictType: DictTreeItem, - InstanceType: InstanceTreeItem, ClassType: ClassTreeItem, } diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 169bcebcc57..57a975a510a 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -574,8 +574,6 @@ def _getmethods(obj, methods): attr = getattr(obj, name) if callable(attr): methods[name] = 1 - if type(obj) == types.InstanceType: - _getmethods(obj.__class__, methods) if type(obj) == types.ClassType: for super in obj.__bases__: _getmethods(super, methods) diff --git a/Lib/plat-mac/aetypes.py b/Lib/plat-mac/aetypes.py index 14e48d683a9..9dfb39fed3a 100644 --- a/Lib/plat-mac/aetypes.py +++ b/Lib/plat-mac/aetypes.py @@ -518,8 +518,7 @@ class ComponentItem(SelectableItem): ss = repr(seld) elif IsRange(seld): start, stop = seld.start, seld.stop - if type(start) == InstanceType == type(stop) and \ - start.__class__ == self.__class__ == stop.__class__: + if type(start) == type(stop) == type(self): ss = str(start.seld) + " thru " + str(stop.seld) else: ss = str(seld) diff --git a/Lib/plat-mac/findertools.py b/Lib/plat-mac/findertools.py index 282cc27975f..6c124193d1f 100644 --- a/Lib/plat-mac/findertools.py +++ b/Lib/plat-mac/findertools.py @@ -484,8 +484,8 @@ def windowposition(folder, pos=None): openwindow(fsr) if not pos: return _getwindowposition(folder_alias) - if type(pos) == InstanceType: - # pos might be a QDPoint object as returned by _getwindowposition + if aetypes.IsQDPoint(pos): + # QDPoint object as returned by _getwindowposition pos = (pos.h, pos.v) return _setwindowposition(folder_alias, pos) diff --git a/Lib/pydoc.py b/Lib/pydoc.py index a74b97b4d09..9fca8c268b2 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1433,8 +1433,6 @@ def describe(thing): return 'function ' + thing.__name__ if inspect.ismethod(thing): return 'method ' + thing.__name__ - if type(thing) is types.InstanceType: - return 'instance of ' + thing.__class__.__name__ return type(thing).__name__ def locate(path, forceload=0): diff --git a/Lib/test/crashers/infinite_rec_5.py b/Lib/test/crashers/infinite_rec_5.py deleted file mode 100644 index 18d29632334..00000000000 --- a/Lib/test/crashers/infinite_rec_5.py +++ /dev/null @@ -1,10 +0,0 @@ - -# http://python.org/sf/1267884 - -import types - -class C: - __str__ = types.InstanceType.__str__ - -if __name__ == '__main__': - str(C()) # segfault: infinite recursion in C diff --git a/Lib/test/test_isinstance.py b/Lib/test/test_isinstance.py index cc2b5fd57c9..366ced7c33c 100644 --- a/Lib/test/test_isinstance.py +++ b/Lib/test/test_isinstance.py @@ -15,7 +15,6 @@ class TestIsInstanceExceptions(unittest.TestCase): # (leading to an "undetected error" in the debug build). Set up is, # isinstance(inst, cls) where: # - # - inst isn't an InstanceType # - cls isn't a ClassType, a TypeType, or a TupleType # - cls has a __bases__ attribute # - inst has a __class__ attribute