class_docstr: Base class for Bokeh property instances, which can be added to Bokeh
  Models.
  
  Args:
      default (obj, optional) :
          A default value for attributes created from this property to have.
  
      help (str or None, optional) :
          A documentation string for this property. It will be automatically
          used by the :ref:`bokeh.sphinxext.bokeh_prop` extension when
          generating Spinx documentation. (default: None)
class_docstr_tok: ["Base","class","for","Bokeh","property","instances",",","which","can","be","added","to","Bokeh","Models",".","Args",":","default","(","obj",",","optional",")",":","A","default","value","for","attributes","created","from","this","property","to","have",".","help","(","str","or","None",",","optional",")",":","A","documentation","string","for","this","property",".","It","will","be","automatically","used","by","the",":","ref",":","`","bokeh.sphinxext.bokeh_prop","`","extension","when","generating","Spinx","documentation",".","(","default",":","None",")"]
docstr: Whether this property is read-only.
  
  Read-only properties may only be modified by the client (i.e., by BokehJS
  in the browser).
docstr_tok: ["Whether","this","property","is","read-only",".","Read-only","properties","may","only","be","modified","by","the","client","(","i.e.",",","by","BokehJS","in","the","browser",")","."]
code: def readonly(self) -> bool:
      """Whether this property is read-only.
  
      Read-only properties may only be modified by the client (i.e., by BokehJS
      in the browser).
  
      """
      return self._readonly
  
imports: from __future__ import annotations
  import logging
  from copy import copy
  from typing import TYPE_CHECKING, Any, Callable, ClassVar, TypeVar, Union
  from ...util.dependencies import uses_pandas
  from ...util.strings import nice_join
  from ..has_props import HasProps
  from ._sphinx import property_link, register_type_link, type_link
  from .descriptor_factory import PropertyDescriptorFactory
  from .descriptors import PropertyDescriptor
  from .singletons import Intrinsic, IntrinsicType, Undefined, UndefinedType
label_desc: Use image node_id 14 for calling the Property obj's underlying member method code with example usage: obj.readonly() and returns: self