class_docstr: A base class for Bokeh properties with simple get/set and serialization
  behavior.
class_docstr_tok: ["A","base","class","for","Bokeh","properties","with","simple","get\/set","and","serialization","behavior","."]
docstr: Implement the deleter for the Python `descriptor protocol`_.
  
  Args:
      obj (HasProps) : An instance to delete this property from
code: def __delete__(self, obj: HasProps) -> None:
      """Implement the deleter for the Python `descriptor protocol`_.
  
      Args:
          obj (HasProps) : An instance to delete this property from
  
      """
  
      if self.name in obj._property_values:
          old_value = obj._property_values[self.name]
          del obj._property_values[self.name]
          self.trigger_if_changed(obj, old_value)
  
      if self.name in obj._unstable_default_values:
          del obj._unstable_default_values[self.name]
  
imports: from __future__ import annotations
  import logging
  from copy import copy
  from types import FunctionType
  from typing import TYPE_CHECKING, Any, Callable, Generic, TypeVar
  from ...util.deprecation import deprecated
  from .singletons import Undefined
  from .wrappers import PropertyValueColumnData, PropertyValueContainer
label_desc: Use image node_id 5 for calling the PropertyDescriptor obj's underlying member method code with example usage: obj.__delete__(obj) without return types