]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/midx.py
Remove inefficient (or will be) uses of buffer
[bup.git] / lib / bup / midx.py
index 57a478759297228622e32f102976150fe27d7525..9de3ae80d19ccd4651e2ec109315b2654d8bbdbe 100644 (file)
@@ -1,6 +1,11 @@
-import mmap
+
+from __future__ import absolute_import
+import glob, mmap, os, struct
+
 from bup import _helpers
-from bup.helpers import *
+from bup.compat import range
+from bup.helpers import log, mmap_read
+
 
 MIDX_VERSION = 4
 
@@ -53,8 +58,8 @@ class PackMidx:
     def _init_failed(self):
         self.bits = 0
         self.entries = 1
-        self.fanout = buffer('\0\0\0\0')
-        self.shatable = buffer('\0'*20)
+        self.fanout = b'\0\0\0\0'
+        self.shatable = b'\0' * 20
         self.idxnames = []
 
     def _fanget(self, i):
@@ -111,10 +116,14 @@ class PackMidx:
         return None
 
     def __iter__(self):
-        for i in xrange(self._fanget(self.entries-1)):
-            yield buffer(self.shatable, i*20, 20)
+        count = self._fanget(self.entries-1)
+        for ofs in range(0, count * 20, 20):
+            yield self.shatable[ofs : ofs + 20]
 
     def __len__(self):
         return int(self._fanget(self.entries-1))
 
 
+def clear_midxes(dir=None):
+    for midx in glob.glob(os.path.join(dir, '*.midx')):
+        os.unlink(midx)