def GetRange(self, user, route, start, end, has_perm = False, need_perm = False):
        self.CheckUpdate()

        # only for permission check
        firstitem = self.GetItem(user, route + [start], has_perm, need_perm)
        if (not firstitem):
            return []
        # range? disabled for partial result
        #lastitem = self.GetItem(user, route + [end], has_perm, need_perm)
        #if (not lastitem):
        #    return None

        parent = self.GetItem(user, route, has_perm, need_perm)
        if (not parent):
            return []
        if (not parent.IsDir()):
            return []

        result = []
        _id = start - 1
        for i in range(start, end + 1):
            target = i - 1
            if (_id >= len(parent.items)):
                return []
            while (parent.items[_id].EffectiveId(user) < target):
                _id += 1
                if (len(parent.items) >= _id):
                    # give partial result instead of error...
                    return result
            item = parent.items[_id]
            # necessary?...
            item.mtitle = item.title
            result += [item]

        return result
dataset/ETHPy150Open HenryHu/pybbs/digest.py/DigestItem.GetRange/swapped operands of `>=`