code: def parse_color(color):
      r
      if isinstance(color, basestring):
          color = grapefruit.Color.NewFromHtml(color)
      if isinstance(color, int):
          (r, g, b) = xterm256.xterm_to_rgb(color)
      elif hasattr(color, 'rgb'):
          (r, g, b) = [int(c * 255.0) for c in color.rgb]
      else:
          (r, g, b) = color
      assert isinstance(r, int) and 0 <= r <= 255
      assert isinstance(g, int) and 0 <= g <= 255
      assert isinstance(b, int) and 0 <= b <= 255
      return (r, g, b)
docs: r"""Turns a color into an (r, g, b) tuple
  
      >>> parse_color('white')
      (255, 255, 255)
      >>> parse_color('#ff0000')
      (255, 0, 0)
      >>> parse_color('#f00')
      (255, 0, 0)
      >>> parse_color((255, 0, 0))
      (255, 0, 0)
      >>> from fabulous import grapefruit
      >>> parse_color(grapefruit.Color((0.0, 1.0, 0.0)))
      (0, 255, 0)