def __init__(self, colors=(), continuous=False, serpentine=False, scale=<NUM_LIT:1>,<EOL>offset=<NUM_LIT:0>, autoscale=False, length=None):
super().__init__(colors)<EOL>if not self:<EOL><INDENT>self.append(Black)<EOL><DEDENT>self.continuous = continuous<EOL>self.serpentine = serpentine<EOL>self.scale = scale<EOL>self.offset = offset<EOL>self.autoscale = autoscale<EOL>self.length = length<EOL>
Arguments:
    colors: an iterable of colors

    continuous: if True, interpolate linearly between colors; if False,
      use the nearest color from the original list

    serpentine: if True, palette colors are used in reverse order every
      other iteration, giving a back-and-forth effect.  If False,
      palette colors always restart on each iteration

    scale: Scales the incoming index ``i``.  As ``i`` moves from 0
      to ``len(colors) - 1``, the whole palette repeats itself
      ``self.scale`` times

    offset: offset to the incoming index ``i``, applied after scaling

    autoscale: If True, automatically rescale the Palette size to
      match the length of the output.  ``autoscale`` happens before
      ``scale``, so the two work well together to give banding or
      striping effects across your display

   ``length``:
     The length of the output color_list.  If None, use the length of
     the palette itself.  If autoscale=True, ``length`` is used to scale
     the palette to match the output.