code: def modifies_known_mutable(obj, attr):
      
      for typespec, unsafe in _mutable_spec:
          if isinstance(obj, typespec):
              return attr in unsafe
      return False
docs: This function checks if an attribute on a builtin mutable object
      (list, dict, set or deque) would modify it if called.  It also supports
      the "user"-versions of the objects (`sets.Set`, `UserDict.*` etc.) and
      with Python 2.6 onwards the abstract base classes `MutableSet`,
      `MutableMapping`, and `MutableSequence`.
  
      >>> modifies_known_mutable({}, "clear")
      True
      >>> modifies_known_mutable({}, "keys")
      False
      >>> modifies_known_mutable([], "append")
      True
      >>> modifies_known_mutable([], "index")
      False
  
      If called with an unsupported object (such as unicode) `False` is
      returned.
  
      >>> modifies_known_mutable("foo", "upper")
      False