def __init__(self, *colors, **kwargs):
if len(colors) == <NUM_LIT:1>:<EOL><INDENT>if isinstance(colors[<NUM_LIT:0>], _list)or isinstance(colors[<NUM_LIT:0>], tuple):<EOL><INDENT>self._colors = _list(colors[<NUM_LIT:0>])<EOL><DEDENT>else:<EOL><INDENT>self._colors = [colors[<NUM_LIT:0>]]<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self._colors = _list(colors)<EOL><DEDENT>self._colors = [color(clr) for clr in self._colors]<EOL>self._steps = <NUM_LIT:100><EOL>if kwargs.has_key("<STR_LIT>"):<EOL><INDENT>self._steps = kwargs["<STR_LIT>"]<EOL><DEDENT>if kwargs.has_key("<STR_LIT>"):<EOL><INDENT>self._steps = kwargs["<STR_LIT>"]<EOL><DEDENT>self._spread = <NUM_LIT:0.5><EOL>if kwargs.has_key("<STR_LIT>"):<EOL><INDENT>self._spread = kwargs["<STR_LIT>"]<EOL><DEDENT>self._cache()<EOL>
Creates a list of gradient colors based on a few given base colors.

The colors can be supplied as a list or tuple of colors,
or simply an enumeration of color parameters.

The steps named parameter defining how many colors are in the list.
The spread named parameter controls the midpoint of the gradient