docs: def analyzeThing(originalThing2):
      """analyze an object and all its attirbutes. Returns a dictionary."""
      originalThing = copy.copy(originalThing2)
      things={}
      for name in sorted(dir(originalThing)):
          print("analyzing",name)
          thing = copy.copy(originalThing)
          if name in webinspect.blacklist or name.lower() in webinspect.blacklist:
              item="DID NOT EVALUATE (this will appear as a string)"
          else:
              item=getattr(thing,name)
          itemType=type(item).__name__
          itemStr=thingToString(item)
          itemEval=""
          if "method" in itemStr:
              if name in webinspect.blacklist or name.lower() in webinspect.blacklist:
                  itemEval="DID NOT EVALUATE"
              else:
                  print("executing %s()"%name)
                  print("I'm about to try...")
                  try:
                      itemEval=thingToString(getattr(thing,name)())
                  except Exception as e:
                      exceptionToString(e)
  
  
          #print("[%s] (%s) %s {%s}"%(name,itemType,itemStr,itemEval))
          things[name]=[itemType,itemStr,itemEval]
      return things