def default_none(val, default):
if val is None:
return default
return val
class ListProxy(object):
def __init__(self, list, slice):
self._list = list
self._slice = slice
self._start = default_none(slice.start, 0)
self._stop = default_none(slice.stop, len(self._list))
self._step = default_none(slice.step, 1)
self._len = (self._stop - self._start) // self._step
def __len__(self):
return self._len
def __getitem__(self, index):