(self)
return chunk_data
Reads a chunk at a time. If the current position is within a
        chunk the remainder of the chunk is returned.
Reads a chunk at a time. If the current position is within a
        chunk the remainder of the chunk is returned.
Reads a chunk at a time . If the current position is within a chunk the remainder of the chunk is returned .
def readchunk(self):
        """Reads a chunk at a time. If the current position is within a
        chunk the remainder of the chunk is returned.
        """
        received = len(self.__buffer)
        chunk_data = EMPTY
        chunk_size = int(self.chunk_size)

        if received > 0:
            chunk_data = self.__buffer
        elif self.__position < int(self.length):
            chunk_number = int((received + self.__position) / chunk_size)
            chunk = self.__chunks.find_one({"files_id": self._id,
                                            "n": chunk_number})
            if not chunk:
                raise CorruptGridFile("no chunk #%d" % chunk_number)

            chunk_data = chunk["data"][self.__position % chunk_size:]

            if not chunk_data:
                raise CorruptGridFile("truncated chunk")

        self.__position += len(chunk_data)
        self.__buffer = EMPTY
        return chunk_data
def readchunk ( self ) : received = len ( self . __buffer ) chunk_data = EMPTY chunk_size = int ( self . chunk_size ) if received > 0 : chunk_data = self . __buffer elif self . __position < int ( self . length ) : chunk_number = int ( ( received + self . __position ) / chunk_size ) chunk = self . __chunks . find_one ( { "files_id" : self . _id , "n" : chunk_number } ) if not chunk : raise CorruptGridFile ( "no chunk #%d" % chunk_number ) chunk_data = chunk [ "data" ] [ self . __position % chunk_size : ] if not chunk_data : raise CorruptGridFile ( "truncated chunk" ) self . __position += len ( chunk_data ) self . __buffer = EMPTY return chunk_data