text: #-----------------------------------------------------------------------------
  # Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors.
  # All rights reserved.
  #
  # The full license is in the file LICENSE.txt, distributed with this software.
  #-----------------------------------------------------------------------------
  '''
  
  '''
  
  #-----------------------------------------------------------------------------
  # Boilerplate
  #-----------------------------------------------------------------------------
  from __future__ import annotations
  
  import logging # isort:skip
  log = logging.getLogger(__name__)
  
  #-----------------------------------------------------------------------------
  # Imports
  #-----------------------------------------------------------------------------
  
  # Bokeh imports
  from ...core.has_props import abstract
  from ...core.properties import Instance, InstanceDefault, Override
  from ..renderers import Renderer
  from ..sources import ColumnDataSource, DataSource
  
  #-----------------------------------------------------------------------------
  # Globals and constants
  #-----------------------------------------------------------------------------
  
  __all__ = (
      'Annotation',
  )
  
  #-----------------------------------------------------------------------------
  # General API
  #-----------------------------------------------------------------------------
  
  @abstract
  class Annotation(Renderer):
      ''' Base class for all annotation models.
  
      '''
  
      # explicit __init__ to support Init signatures
      def __init__(self, *args, **kwargs) -> None:
          super().__init__(*args, **kwargs)
  
      level = Override(default="annotation")
  
  @abstract
  class DataAnnotation(Annotation):
      ''' Base class for annotations that utilize a data source.
  
      '''
  
      # explicit __init__ to support Init signatures
      def __init__(self, *args, **kwargs) -> None:
          super().__init__(*args, **kwargs)
  
      source = Instance(DataSource, default=InstanceDefault(ColumnDataSource), help="""
      Local data source to use when rendering annotations on the plot.
      """)
  
  #-----------------------------------------------------------------------------
  # Dev API
  #-----------------------------------------------------------------------------
  
  #-----------------------------------------------------------------------------
  # Private API
  #-----------------------------------------------------------------------------
  
  #-----------------------------------------------------------------------------
  # Code
  #-----------------------------------------------------------------------------
  