Browse Source

py3k support __setitem__ and __delitem__ of SmartList.

tags/v0.1
Ben Kurtovic 12 years ago
parent
commit
0487661c99
1 changed files with 4 additions and 2 deletions
  1. +4
    -2
      mwparserfromhell/smart_list.py

+ 4
- 2
mwparserfromhell/smart_list.py View File

@@ -48,8 +48,9 @@ class SmartList(list):
item = list(item) item = list(item)
super(SmartList, self).__setitem__(key, item) super(SmartList, self).__setitem__(key, item)
diff = len(item) - key.stop + key.start diff = len(item) - key.stop + key.start
values = self._children.values if py3k else self._children.itervalues
if diff: if diff:
for child, (start, stop, step) in self._children.itervalues():
for child, (start, stop, step) in values():
if start >= key.stop: if start >= key.stop:
self._children[id(child)][1][0] += diff self._children[id(child)][1][0] += diff
if stop >= key.stop and stop != maxsize: if stop >= key.stop and stop != maxsize:
@@ -60,7 +61,8 @@ class SmartList(list):
if not isinstance(key, slice): if not isinstance(key, slice):
key = slice(key, key + 1) key = slice(key, key + 1)
diff = key.stop - key.start diff = key.stop - key.start
for child, (start, stop, step) in self._children.itervalues():
values = self._children.values if py3k else self._children.itervalues
for child, (start, stop, step) in values():
if start > key.start: if start > key.start:
self._children[id(child)][1][0] -= diff self._children[id(child)][1][0] -= diff
if stop >= key.stop: if stop >= key.stop:


Loading…
Cancel
Save