def initMemory(self, pageSize=None): if pageSize is None: pageSize = default["pageSize"] if pageSize <= 0: raise ValueError("UniTable pageSize must be positive (not %d)" % pageSize) self.pageSize = pageSize page = UniPage(self.fields, self.types) page.initMemory(self.pageSize) self.pages = [page] self.starts = [0] self.length = 0
def fill(self, values): try: self.pages[-1].fill(values) self.length += 1 except BeyondPageException: self.starts.append(self.starts[-1] + self.pages[-1].allocation) self._writing() page = UniPage(self.fields, self.types) page.initMemory(self.pageSize) page.categories = self.pages[-1].categories self.pages.append(page) self.pages[-1].fill(values) self.length += 1 self._cullPages() except AttributeError: raise UninitializedError("UniTable initMemory or initExisting must be called before fill")
def fill(self, values): try: self.pages[-1].fill(values) self.length += 1 except BeyondPageException: self.starts.append(self.starts[-1] + self.pages[-1].allocation) self._writing() page = UniPage(self.fields, self.types) page.initMemory(self.pageSize) page.categories = self.pages[-1].categories self.pages.append(page) self.pages[-1].fill(values) self.length += 1 self._cullPages() except AttributeError: raise UninitializedError( "UniTable initMemory or initExisting must be called before fill" )