]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/hlinkdb.py
Use absolute_import from the __future__ everywhere
[bup.git] / lib / bup / hlinkdb.py
index 3a53b4059952af61828198ed5e783cf1da818ad8..17957bd9a6bb54888c9daef6d4e95bfcae0e6b1d 100644 (file)
@@ -1,5 +1,9 @@
+
+from __future__ import absolute_import
 import cPickle, errno, os, tempfile
 
+from bup import compat
+
 class Error(Exception):
     pass
 
@@ -15,7 +19,7 @@ class HLinkDB:
         f = None
         try:
             f = open(filename, 'r')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 pass
             else:
@@ -27,7 +31,7 @@ class HLinkDB:
                 f.close()
                 f = None
         # Set up the reverse hard link index.
-        for node, paths in self._node_paths.iteritems():
+        for node, paths in compat.items(self._node_paths):
             for path in paths:
                 self._path_node[path] = node
 
@@ -40,20 +44,21 @@ class HLinkDB:
             (dir, name) = os.path.split(self._filename)
             (ffd, self._tmpname) = tempfile.mkstemp('.tmp', name, dir)
             try:
-                f = os.fdopen(ffd, 'wb', 65536)
-            except:
-                os.close(ffd)
-                raise
-            try:
-                cPickle.dump(self._node_paths, f, 2)
+                try:
+                    f = os.fdopen(ffd, 'wb', 65536)
+                except:
+                    os.close(ffd)
+                    raise
+                try:
+                    cPickle.dump(self._node_paths, f, 2)
+                finally:
+                    f.close()
+                    f = None
             except:
-                f.close()
-                os.unlink(self._tmpname)
+                tmpname = self._tmpname
                 self._tmpname = None
+                os.unlink(tmpname)
                 raise
-            else:
-                f.close()
-                f = None
         self._save_prepared = True
 
     def commit_save(self):
@@ -66,7 +71,7 @@ class HLinkDB:
         else: # No data -- delete _filename if it exists.
             try:
                 os.unlink(self._filename)
-            except OSError, e:
+            except OSError as e:
                 if e.errno == errno.ENOENT:
                     pass
                 else: