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: Actual descriptor value assignment. 
code: def _set_value(self, obj: HasProps, value: Any) -> None:
      """Actual descriptor value assignment."""
      if isinstance(value, PropertyValueContainer):
          value._register_owner(obj, self)
  
      if self.name in obj._unstable_themed_values:
          del obj._unstable_themed_values[self.name]
  
      if self.name in obj._unstable_default_values:
          del obj._unstable_default_values[self.name]
  
      obj._property_values[self.name] = value
  
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 18 for calling the PropertyDescriptor obj's underlying member method code with example usage: obj._set_value(obj, value) without return types