code: def _patch_original_class(self):
          
          cls = self._cls
          base_names = self._base_names
  
          # Clean class of attribute definitions (`attr.ib()`s).
          if self._delete_attribs:
              for name in self._attr_names:
                  if (
                      name not in base_names
                      and getattr(cls, name, None) is not None
                  ):
                      try:
                          delattr(cls, name)
                      except AttributeError:
                          # This can happen if a base class defines a class
                          # variable and we want to set an attribute with the
                          # same name by using only a type annotation.
                          pass
  
          # Attach our dunder methods.
          for name, value in self._cls_dict.items():
              setattr(cls, name, value)
  
          # Attach __setstate__. This is necessary to clear the hash code
          # cache on deserialization. See issue
          # https://github.com/python-attrs/attrs/issues/482 .
          # Note that this code only handles setstate for dict classes.
          # For slotted classes, see similar code in _create_slots_class .
          if self._cache_hash:
              existing_set_state_method = getattr(cls, "__setstate__", None)
              if existing_set_state_method:
                  raise NotImplementedError(
                      "Currently you cannot use hash caching if "
                      "you specify your own __setstate__ method."
                      "See https://github.com/python-attrs/attrs/issues/494 ."
                  )
  
              def cache_hash_set_state(chss_self, _):
                  # clear hash code cache
                  setattr(chss_self, _hash_cache_field, None)
  
              setattr(cls, "__setstate__", cache_hash_set_state)
  
          return cls
docs: Apply accumulated methods and return the class.