code: def _iter_text_wave(
              self, text, numbers, step=1,
              fore=None, back=None, style=None, rgb_mode=False):
          
          if fore and back:
              raise ValueError('Both fore and back colors cannot be specified.')
  
          pos = 0
          end = len(text)
          numbergen = self._iter_wave(numbers)
  
          def make_color(n):
              try:
                  r, g, b = n
              except TypeError:
                  if rgb_mode:
                      return n, n, n
                  return n
              return r, g, b
  
          for value in numbergen:
              lastchar = pos + step
              yield self.color(
                  text[pos:lastchar],
                  fore=make_color(value) if fore is None else fore,
                  back=make_color(value) if fore is not None else back,
                  style=style
              )
              if lastchar >= end:
                  numbergen.send(True)
              pos = lastchar
docs: Yield colorized characters from `text`, using a wave of `numbers`.
              Arguments:
                  text      : String to be colorized.
                  numbers   : A list/tuple of numbers (256 colors).
                  step      : Number of characters to colorize per color.
                  fore      : Fore color to use (name or number).
                              (Back will be gradient)
                  back      : Background color to use (name or number).
                              (Fore will be gradient)
                  style     : Style name to use.
                  rgb_mode  : Use number for rgb value.
                              This should never be used when the numbers
                              are rgb values themselves.