+ def close(self):
+ self.closed = True
+ try:
+ if self.map and self.readwrite:
+ debug2("bloom: closing with %d entries\n" % self.entries)
+ self.map[12:16] = struct.pack('!I', self.entries)
+ if self.delaywrite:
+ self.file.seek(0)
+ self.file.write(self.map)
+ else:
+ self.map.flush()
+ self.file.seek(16 + 2**self.bits)
+ if self.idxnames:
+ self.file.write(b'\0'.join(self.idxnames))
+ finally: # This won't handle pending exceptions correctly in py2
+ self._init_failed()
+