X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbup%2Fhlinkdb.py;h=d4125aef44837084983e712ad67f483a88943f9a;hb=f0a4b3b6ef7d00e64b04dee51b8e15db71b693d3;hp=5c1ec0099621b46130217c4622937b7617473e7c;hpb=be10c911bbe8c51357b20bf1ea6d472d908670d4;p=bup.git diff --git a/lib/bup/hlinkdb.py b/lib/bup/hlinkdb.py index 5c1ec00..d4125ae 100644 --- a/lib/bup/hlinkdb.py +++ b/lib/bup/hlinkdb.py @@ -1,7 +1,15 @@ -import cPickle, errno, os, tempfile + +from __future__ import absolute_import +import errno, os, tempfile from bup import compat +if compat.py_maj > 2: + import pickle +else: + import cPickle as pickle + + class Error(Exception): pass @@ -16,7 +24,7 @@ class HLinkDB: self._tmpname = None f = None try: - f = open(filename, 'r') + f = open(filename, 'rb') except IOError as e: if e.errno == errno.ENOENT: pass @@ -24,7 +32,7 @@ class HLinkDB: raise if f: try: - self._node_paths = cPickle.load(f) + self._node_paths = pickle.load(f) finally: f.close() f = None @@ -40,7 +48,7 @@ class HLinkDB: raise Error('save of %r already in progress' % self._filename) if self._node_paths: (dir, name) = os.path.split(self._filename) - (ffd, self._tmpname) = tempfile.mkstemp('.tmp', name, dir) + (ffd, self._tmpname) = tempfile.mkstemp(b'.tmp', name, dir) try: try: f = os.fdopen(ffd, 'wb', 65536) @@ -48,7 +56,7 @@ class HLinkDB: os.close(ffd) raise try: - cPickle.dump(self._node_paths, f, 2) + pickle.dump(self._node_paths, f, 2) finally: f.close() f = None