code: def deleter(self, can_delete=None):
          
          if can_delete is None:
              self._deleter = not self._deleter
          else:
              self._deleter = bool(can_delete)
          # For use as decorator
          return self
docs: Change if this descriptor's can be invalidated through `del obj.attr`.
  
          `cached_prop.deleter(True)` and::
  
              @cached_prop.deleter
              def cached_prop(self):
                  pass
  
          are equivalent to `cached_prop.can_delete = True`.
  
          :param can_delete: boolean to change to it, and None to toggle
          :type can_delete: Optional[bool]
          :return: self, so this can be used as a decorator like a `property`
          :rtype: CachedProperty