'Set the value at position i to value.
You can only do slice assignment to values if you supply a sequence of
equal length to the slice you are replacing.'

def __setitem__(self, index, value):

    if isinstance(index, types.SliceType):
        keys = self._main._sequence[index]
        if (len(keys) != len(value)):
            raise ValueError(('attempt    to    assign    sequence    of    size    %s    to    slice    of    size    %s' % (len(name), len(keys))))
        for (key, val) in zip(keys, value):
            self._main[key] = val
    else:
        self._main[self._main._sequence[index]] = value
