Можно ли сказать, был ли курсор NDB перевернут?


Из GAE docs обратный курсор можно сделать следующим образом:

rev_cursor = cursor.reversed()

Я ищу что-то вроде cursor.is_reversed(), которое вернет, был ли курсор перевернут или нет.

Существует ли это?

1 3

1 ответ:

Нет, такая информация не сохраняется. Вызов .reversed() просто возвращает новый курсор с обратными позициями:

def reversed(self):
    """Creates a cursor for use in a query with a reversed sort order."""
    for pos in self.__compiled_cursor.position_list():
        if pos.has_start_key():
            raise datastore_errors.BadRequestError('Cursor cannot be reversed.')

    rev_pb = datastore_pb.CompiledCursor()
    rev_pb.CopyFrom(self.__compiled_cursor)
    for pos in rev_pb.position_list():
        pos.set_start_inclusive(not pos.start_inclusive())
    return Cursor(_cursor_pb=rev_pb)

(исходный текст с отступом в 4 пробела для удобства чтения).