

def _refresh(self):
    'Refreshes the cursor with more data from Mongo.\n\n        Returns the length of self.__data after refresh. Will exit early if\n        self.__data is already non-empty. Raises OperationFailure when the\n        cursor cannot be refreshed due to an error on the query.\n        '
    if (len(self.__data) or self.__killed):
        return len(self.__data)
    if (self.__id is None):
        ntoreturn = self.__batch_size
        if self.__limit:
            if self.__batch_size:
                ntoreturn = min(self.__limit, self.__batch_size)
            else:
                ntoreturn = self.__limit
        self.__send_message(message.query(self.__query_options(), self.__collection.full_name, self.__skip, ntoreturn, self.__query_spec(), self.__fields, self.__uuid_subtype))
        if (not self.__id):
            self.__killed = True
    elif self.__id:
        if self.__limit:
            limit = (self.__limit - self.__retrieved)
            if self.__batch_size:
                limit = min(limit, self.__batch_size)
        else:
            limit = self.__batch_size
        if self.__exhaust:
            self.__send_message(None)
        else:
            self.__send_message(message.get_more(self.__collection.full_name, limit, self.__id))
    else:
        self.__killed = True
    return len(self.__data)

dataset/ETHPy150Open blynch/CloudMemeBackend/pymongo/cursor.py Cursor._refresh/original