'Return source & offset for index `i`.'

def info(self, i):

    try:
        return self.items[i]
    except IndexError:
        if (i == len(self.data)):
            return (self.items[(i - 1)][0], None)
        else:
            raise
