'Retrieves an item or slice from the set of results.'

def __getitem__(self, k):

    if (not isinstance(k, ((slice,) + integer_types))):
        raise TypeError
    assert (((not isinstance(k, slice)) and (k >= 0)) or (isinstance(k, slice) and ((k.start is None) or (k.start >= 0)) and ((k.stop is None) or (k.stop >= 0)))), 'Negative    indexing    is    not    supported.'
    if (self._result_cache is None):
        len(self)
    return self._result_cache.__getitem__(k)
