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:
parent
6f25918850
commit
006f35560e
@ -56,11 +56,11 @@ def getAttributeNames(object, includeMagic=1, includeSingle=1,
|
||||
attrdict = getAllAttributeNames(object)
|
||||
# Store the object's dir.
|
||||
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
|
||||
# attributes of the object. This is very handy for objects
|
||||
# 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
|
||||
else:
|
||||
attributes += [attr for attr in attrlist \
|
||||
@ -97,10 +97,9 @@ def getAllAttributeNames(object):
|
||||
# They always return true for hasattr().
|
||||
# !!!
|
||||
try:
|
||||
# Yes, this can fail if object is an instance of a class with
|
||||
# __str__ (or __repr__) having a bug or raising an
|
||||
# exception. :-(
|
||||
key = str(object)
|
||||
# This could(?) fail if the type is poorly defined without
|
||||
# even a name.
|
||||
key = type(object).__name__
|
||||
except:
|
||||
key = 'anonymous'
|
||||
# Wake up sleepy objects - a hack for ZODB objects in "ghost" state.
|
||||
|
Loading…
Reference in New Issue
Block a user