| @@ -86,6 +86,7 @@ class SmartList(list): | |||||
| return super(SmartList, self).__setitem__(key, item) | return super(SmartList, self).__setitem__(key, item) | ||||
| item = list(item) | item = list(item) | ||||
| super(SmartList, self).__setitem__(key, item) | super(SmartList, self).__setitem__(key, item) | ||||
| key = slice(key.start or 0, key.stop or maxsize) | |||||
| diff = len(item) - key.stop + key.start | diff = len(item) - key.stop + key.start | ||||
| values = self._children.values if py3k else self._children.itervalues | values = self._children.values if py3k else self._children.itervalues | ||||
| if diff: | if diff: | ||||
| @@ -97,7 +98,9 @@ class SmartList(list): | |||||
| def __delitem__(self, key): | def __delitem__(self, key): | ||||
| super(SmartList, self).__delitem__(key) | super(SmartList, self).__delitem__(key) | ||||
| if not isinstance(key, slice): | |||||
| if isinstance(key, slice): | |||||
| key = slice(key.start or 0, key.stop or maxsize) | |||||
| else: | |||||
| key = slice(key, key + 1) | key = slice(key, key + 1) | ||||
| diff = key.stop - key.start | diff = key.stop - key.start | ||||
| values = self._children.values if py3k else self._children.itervalues | values = self._children.values if py3k else self._children.itervalues | ||||