def getAllAttributeNames(object):
 attrdict = {}
 try:
  key = type(object).__name__
 except Exception:
  key = 'anonymous'
 wakeupcall = dir(object)
 del wakeupcall
 attributes = dir(object)
 attrdict[(key, 'dir', len(attributes))] = attributes
 try:
  attributes = object.__dict__.keys()
  attributes.sort()
 except Exception:
  pass
 else:
  attrdict[(key, '__dict__', len(attributes))] = attributes
 try:
  klass = object.__class__
 except Exception:
  pass
 else:
  if (klass is object):
   pass
  else:
   attrdict.update(getAllAttributeNames(klass))
 try:
  bases = object.__bases__
 except Exception:
  pass
 else:
  if isinstance(bases, types.TupleType):
   for base in bases:
    if (type(base) is types.TypeType):
     pass
    else:
     attrdict.update(getAllAttributeNames(base))
 return attrdict

def getAllAttributeNames ( object ) : attrdict = { } try : key = type ( object ) . __name__ except Exception : key = 'anonymous' wakeupcall = dir ( object ) del wakeupcall attributes = dir ( object ) attrdict [ ( key , 'dir' , len ( attributes ) ) ] = attributes try : attributes = object . __dict__ . keys ( ) attributes . sort ( ) except Exception : pass else : attrdict [ ( key , '__dict__' , len ( attributes ) ) ] = attributes try : klass = object . __class__ except Exception : pass else : if ( klass is object ) : pass else : attrdict . update ( getAllAttributeNames ( klass ) ) try : bases = object . __bases__ except Exception : pass else : if isinstance ( bases , types . TupleType ) : for base in bases : if ( type ( base ) is types . TypeType ) : pass else : attrdict . update ( getAllAttributeNames ( base ) ) return attrdict
return dict of all attributes .