diff --git a/mwparserfromhell/smart_list.py b/mwparserfromhell/smart_list.py index 47f7232..e42dbae 100644 --- a/mwparserfromhell/smart_list.py +++ b/mwparserfromhell/smart_list.py @@ -86,6 +86,7 @@ class SmartList(list): return super(SmartList, self).__setitem__(key, item) item = list(item) super(SmartList, self).__setitem__(key, item) + key = slice(key.start or 0, key.stop or maxsize) diff = len(item) - key.stop + key.start values = self._children.values if py3k else self._children.itervalues if diff: @@ -97,7 +98,9 @@ class SmartList(list): def __delitem__(self, 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) diff = key.stop - key.start values = self._children.values if py3k else self._children.itervalues