class_docstr: A rectangular bounding box defined either by two points forming
  an axis-aligned rectangle (or simply a radius for a square).
class_docstr_tok: ["A","rectangular","bounding","box","defined","either","by","two","points","forming","an","axis-aligned","rectangle","(","or","simply","a","radius","for","a","square",")","."]
docstr: Return BoundingBox(points=((left,bottom),(right,top)))
  
  Reimplemented here so that 'print' for a BoundingBox
  will display the bounds.
docstr_tok: ["Return","BoundingBox","(","points=","(","(","left",",","bottom",")",",","(","right",",","top",")",")",")","Reimplemented","here","so","that","'print","'","for","a","BoundingBox","will","display","the","bounds","."]
code: def __str__(self):
      """
      Return BoundingBox(points=((left,bottom),(right,top)))
  
      Reimplemented here so that 'print' for a BoundingBox
      will display the bounds.
      """
      l, b, r, t = self._aarect.lbrt()
      if (
          not isinstance(r, datetime_types)
          and r == -l
          and not isinstance(b, datetime_types)
          and t == -b
          and r == t
      ):
          return f"BoundingBox(radius={r})"
      else:
          return f"BoundingBox(points=(({l},{b}),({r},{t})))"
  
imports: from param.parameterized import get_occupied_slots
  from .util import datetime_types
label_desc: Use image node_id 1 for calling the BoundingBox obj's underlying member method code with example usage: obj.__str__() and returns: str, r, str, str, l, str, b, str, r, str, t, str