Avoid doing a str(object) since in some cases it can result in very
large strings git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -56,11 +56,11 @@ def getAttributeNames(object, includeMagic=1, includeSingle=1,
|
|||||||
attrdict = getAllAttributeNames(object)
|
attrdict = getAllAttributeNames(object)
|
||||||
# Store the object's dir.
|
# Store the object's dir.
|
||||||
object_dir = dir(object)
|
object_dir = dir(object)
|
||||||
for (str_obj, technique, count), attrlist in attrdict.items():
|
for (obj_type_name, technique, count), attrlist in attrdict.items():
|
||||||
# This complexity is necessary to avoid accessing all the
|
# This complexity is necessary to avoid accessing all the
|
||||||
# attributes of the object. This is very handy for objects
|
# attributes of the object. This is very handy for objects
|
||||||
# whose attributes are lazily evaluated.
|
# whose attributes are lazily evaluated.
|
||||||
if str(object) == str_obj and technique == 'dir':
|
if type(object).__name__ == obj_type_name and technique == 'dir':
|
||||||
attributes += attrlist
|
attributes += attrlist
|
||||||
else:
|
else:
|
||||||
attributes += [attr for attr in attrlist \
|
attributes += [attr for attr in attrlist \
|
||||||
@@ -97,10 +97,9 @@ def getAllAttributeNames(object):
|
|||||||
# They always return true for hasattr().
|
# They always return true for hasattr().
|
||||||
# !!!
|
# !!!
|
||||||
try:
|
try:
|
||||||
# Yes, this can fail if object is an instance of a class with
|
# This could(?) fail if the type is poorly defined without
|
||||||
# __str__ (or __repr__) having a bug or raising an
|
# even a name.
|
||||||
# exception. :-(
|
key = type(object).__name__
|
||||||
key = str(object)
|
|
||||||
except:
|
except:
|
||||||
key = 'anonymous'
|
key = 'anonymous'
|
||||||
# Wake up sleepy objects - a hack for ZODB objects in "ghost" state.
|
# Wake up sleepy objects - a hack for ZODB objects in "ghost" state.
|
||||||
|
Reference in New Issue
Block a user