code: def _safe_setattr(obj, name, value):
      
      okey = id(obj)
      if okey in _set_failures or okey in _final_objs:
          return False
      
      import inspect
      try:
          if inspect.ismethod(obj):
              setattr(obj.__func__, name, value)
              return True
          else:
              if isinstance(obj, dict): # pragma: no cover
                  obj[name] = value
              else:
                  setattr(obj, name, value)
              return True
      except (TypeError, AttributeError):# pragma: no cover
          _set_failures.append(okey)
          msg.warn("Failed {}:{} attribute set on {}.".format(name, value, obj))
          return False
docs: Safely sets the attribute of the specified object. This includes not
      setting attributes for final objects and setting __func__ for instancemethod
      typed objects.
  
      Args:
          obj: object to set an attribute for.
          name (str): new attribute name.
          value: new attribute value.
  
      Returns:
          bool: True if the set attribute was successful.