class_docstr: Accept non-negative numeric values.
  
  Args:
      default (float, 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)
  
  Example:
  
      .. code-block:: python
  
          >>> class SizeModel(HasProps):
          ...     prop = Size()
          ...
  
          >>> m = SizeModel()
  
          >>> m.prop = 0
  
          >>> m.prop = 10e6
  
          >>> m.prop = -10   # ValueError !!
  
          >>> m.prop = "foo" # ValueError !!
code: def validate(self, value: Any, detail: bool = True) -> None:
      super().validate(value, detail)
  
      if value < 0:
          msg = (
              ""
              if not detail
              else f"expected a non-negative number, got {value!r}"
          )
          raise ValueError(msg)
  
imports: from __future__ import annotations
  import logging
  from typing import Any, TypeVar, Union
  from ...util.deprecation import deprecated
  from .bases import Init, Property, SingleParameterizedProperty, TypeOrInst
  from .primitive import Float, Int
  from .singletons import Intrinsic, Undefined
label_desc: Use image node_id 1 for calling the Size obj's underlying member method code with example usage: obj.validate(value, detail) without return types