class_docstr: A ``PropertyDescriptor`` for Bokeh ``UnitsSpec`` properties that
  contribute associated ``_units`` properties automatically as a side effect.
class_docstr_tok: ["A","``","PropertyDescriptor","``","for","Bokeh","``","UnitsSpec","``","properties","that","contribute","associated","``","_units","``","properties","automatically","as","a","side","effect","."]
docstr: Args:
      name (str) :
          The attribute name that this property is for
  
      property (Property) :
          A basic property to create a descriptor for
  
      units_property (Property) :
          An associated property to hold units information
code: def __init__(self, name, property, units_property) -> None:
      """
  
      Args:
          name (str) :
              The attribute name that this property is for
  
          property (Property) :
              A basic property to create a descriptor for
  
          units_property (Property) :
              An associated property to hold units information
  
      """
      super().__init__(name, property)
      self.units_prop = units_property
  
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 1 to create a new UnitsSpecPropertyDescriptor object from inherited base classes: DataSpecPropertyDescriptor with example: obj = UnitsSpecPropertyDescriptor(name, property, units_property)