diff options
Diffstat (limited to 'urwid/monitored_list.py')
-rwxr-xr-x | urwid/monitored_list.py | 67 |
1 files changed, 22 insertions, 45 deletions
diff --git a/urwid/monitored_list.py b/urwid/monitored_list.py index a1a6326..f9170ca 100755 --- a/urwid/monitored_list.py +++ b/urwid/monitored_list.py @@ -265,8 +265,10 @@ class MonitoredFocusList(MonitoredList): def __delitem__(self, y): """ - >>> ml = MonitoredFocusList([0,1,2,3], focus=2) + >>> ml = MonitoredFocusList([0,1,2,3,4], focus=2) >>> del ml[3]; ml + MonitoredFocusList([0, 1, 2, 4], focus=2) + >>> del ml[-1]; ml MonitoredFocusList([0, 1, 2], focus=2) >>> del ml[0]; ml MonitoredFocusList([1, 2], focus=1) @@ -279,11 +281,19 @@ class MonitoredFocusList(MonitoredList): MonitoredFocusList([5, 6, 5, 6, 5], focus=2) >>> del ml[::2]; ml MonitoredFocusList([6, 6], focus=1) + >>> ml = MonitoredFocusList([0,1,2,3,4,6,7], focus=2) + >>> del ml[-2:]; ml + MonitoredFocusList([0, 1, 2, 3, 4], focus=2) + >>> del ml[-4:-2]; ml + MonitoredFocusList([0, 3, 4], focus=1) + >>> del ml[:]; ml + MonitoredFocusList([], focus=None) """ if isinstance(y, slice): focus = self._adjust_focus_on_contents_modified(y) else: - focus = self._adjust_focus_on_contents_modified(slice(y, y+1)) + focus = self._adjust_focus_on_contents_modified(slice(y, + y+1 or None)) rval = super(MonitoredFocusList, self).__delitem__(y) self._set_focus(focus) return rval @@ -308,6 +318,14 @@ class MonitoredFocusList(MonitoredList): range(1, 4, 2) <- [12, 13] >>> ml[::2] = [10, 11] range(0, 4, 2) <- [10, 11] + >>> ml[-3:-1] = [21, 22, 23] + range(1, 3, 1) <- [21, 22, 23] + >>> ml + MonitoredFocusList([10, 21, 22, 23, 13], focus=2) + >>> ml[:] = [] + range(0, 5, 1) <- [] + >>> ml + MonitoredFocusList([], focus=None) """ if isinstance(i, slice): focus = self._adjust_focus_on_contents_modified(i, y) @@ -319,51 +337,10 @@ class MonitoredFocusList(MonitoredList): if not PYTHON3: def __delslice__(self, i, j): - """ - >>> def modified(indices, new_items): - ... print "range%r <- %r" % (indices, list(new_items)) - >>> ml = MonitoredFocusList([0,1,2,3,4], focus=2) - >>> ml.set_validate_contents_modified(modified) - >>> del ml[3:5] - range(3, 5, 1) <- [] - >>> ml - MonitoredFocusList([0, 1, 2], focus=2) - >>> del ml[:1] - range(0, 1, 1) <- [] - >>> ml - MonitoredFocusList([1, 2], focus=1) - >>> del ml[1:]; ml - range(1, 2, 1) <- [] - MonitoredFocusList([1], focus=0) - >>> del ml[:]; ml - range(0, 1, 1) <- [] - MonitoredFocusList([], focus=None) - """ - focus = self._adjust_focus_on_contents_modified(slice(i, j)) - rval = super(MonitoredFocusList, self).__delslice__(i, j) - self._set_focus(focus) - return rval + return self.__delitem__(slice(i,j)) def __setslice__(self, i, j, y): - """ - >>> ml = MonitoredFocusList([0,1,2,3,4], focus=2) - >>> ml[3:5] = [-1]; ml - MonitoredFocusList([0, 1, 2, -1], focus=2) - >>> ml[0:1] = []; ml - MonitoredFocusList([1, 2, -1], focus=1) - >>> ml[1:] = [3, 4]; ml - MonitoredFocusList([1, 3, 4], focus=1) - >>> ml[1:] = [2]; ml - MonitoredFocusList([1, 2], focus=1) - >>> ml[0:1] = [9,9,9]; ml - MonitoredFocusList([9, 9, 9, 2], focus=3) - >>> ml[:] = []; ml - MonitoredFocusList([], focus=None) - """ - focus = self._adjust_focus_on_contents_modified(slice(i, j), y) - rval = super(MonitoredFocusList, self).__setslice__(i, j, y) - self._set_focus(focus) - return rval + return self.__setitem__(slice(i, j), y) def __imul__(self, n): """ |