docs: def highlight(string, fg=None, bg=None, indices=[], end='\n',
                target=sys.stdout):
      """Highlight characters using indices and print it to the target handle.
  
      fg and bg specify foreground- and background colors, respectively. The
      remaining keyword arguments are the same as for Python's built-in print
      function.
  
      """
      if not string or not indices or (fg is bg is None):
          return
  
      p = 0
  
      # The lambda syntax is necessary to support both Python 2 and 3
      for k, g in itertools.groupby(enumerate(sorted(indices)),
                                    lambda x: x[0]-x[1]):
          tmp = list(map(operator.itemgetter(1), g))
          s, e = tmp[0], tmp[-1]+1
          target.write(string[p:s])
          target.flush()  # Needed for Python 3.x
          _color_manager.set_color(fg, bg)
          target.write(string[s:e])
          target.flush()  # Needed for Python 3.x
          _color_manager.set_defaults()
          p = e
  
      if p < len(string):
          target.write(string[p:])
  
      target.write(end)