class_docstr: Base class for all class types that have Bokeh properties.
  
      
class_docstr_tok: ["Base","class","for","all","class","types","that","have","Bokeh","properties","."]
docstr: Find the ``PropertyDescriptor`` for a Bokeh property on a class,
  given the property name.
  
  Args:
      name (str) : name of the property to search for
      raises (bool) : whether to raise or return None if missing
  
  Returns:
      PropertyDescriptor : descriptor for property named ``name``
docstr_tok: ["Find","the","``","PropertyDescriptor","``","for","a","Bokeh","property","on","a","class",",","given","the","property","name",".","Args",":","name","(","str",")",":","name","of","the","property","to","search","for","raises","(","bool",")",":","whether","to","raise","or","return","None","if","missing","Returns",":","PropertyDescriptor",":","descriptor","for","property","named","``","name","``"]
code: def lookup(
      cls, name: str, *, raises: bool = True
  ) -> PropertyDescriptor[Any] | None:
      """Find the ``PropertyDescriptor`` for a Bokeh property on a class,
      given the property name.
  
      Args:
          name (str) : name of the property to search for
          raises (bool) : whether to raise or return None if missing
  
      Returns:
          PropertyDescriptor : descriptor for property named ``name``
  
      """
      attr = getattr(cls, name, None)
      if attr is not None or (attr is None and not raises):
          return attr
      raise AttributeError(
          f"{cls.__name__}.{name} property descriptor does not exist"
      )
  
imports: from __future__ import annotations
  import logging
  import difflib
  from typing import TYPE_CHECKING, Any, Callable, ClassVar, Iterable, Literal, NoReturn, TypedDict, TypeVar, Union, overload
  from weakref import WeakSet
  from ..util.strings import append_docstring, nice_join
  from ..util.warnings import warn
  from .property.descriptor_factory import PropertyDescriptorFactory
  from .property.descriptors import PropertyDescriptor, UnsetValueError
  from .property.override import Override
  from .property.singletons import Intrinsic, Undefined
  from .property.wrappers import PropertyValueContainer
  from .serialization import ObjectRep, Ref, Serializable, Serializer
  from .types import ID
label_desc: Use image node_id 13 for calling the HasProps obj's underlying member method code with example usage: obj.lookup(cls, name) and returns: attr