mirror of https://github.com/python/cpython
Bug #1697782: remove all remaining code that uses types.InstanceType.
This commit is contained in:
parent
b5ddcfd2a2
commit
57b39e0916
16
Lib/cgitb.py
16
Lib/cgitb.py
|
@ -167,11 +167,10 @@ function calls leading up to the error, in the order they occurred.</p>'''
|
|||
|
||||
exception = ['<p>%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<br>%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<br>%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) + '''
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue