From 17952dff4828c284c13f5718b46ba076d6e95412 Mon Sep 17 00:00:00 2001 From: Jakob Schnitzer Date: Mon, 7 Dec 2015 14:17:36 +0100 Subject: [PATCH] helpers: remove functions that are only used once The read_msgpack and write_msgpack functions were only used in one place each. Since msgpack is read and written in lots of places, having functions with these generic names is confusing. Also, the helpers module is quite a mess, so reducing its size seems to be a good idea. --- borg/helpers.py | 13 ------------- borg/repository.py | 14 ++++++++++---- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/borg/helpers.py b/borg/helpers.py index 813d22770..df6f1163b 100644 --- a/borg/helpers.py +++ b/borg/helpers.py @@ -697,19 +697,6 @@ def location_validator(archive=None): return validator -def read_msgpack(filename): - with open(filename, 'rb') as fd: - return msgpack.unpack(fd) - - -def write_msgpack(filename, d): - with open(filename + '.tmp', 'wb') as fd: - msgpack.pack(d, fd) - fd.flush() - os.fsync(fd.fileno()) - os.rename(filename + '.tmp', filename) - - def decode_dict(d, keys, encoding='utf-8', errors='surrogateescape'): for key in keys: if isinstance(d.get(key), bytes): diff --git a/borg/repository.py b/borg/repository.py index 49e3ac23d..80c8ed789 100644 --- a/borg/repository.py +++ b/borg/repository.py @@ -10,8 +10,8 @@ import shutil import struct from zlib import crc32 -from .helpers import Error, ErrorWithTraceback, IntegrityError, read_msgpack, write_msgpack, \ - unhexlify, ProgressIndicatorPercent +import msgpack +from .helpers import Error, ErrorWithTraceback, IntegrityError, unhexlify, ProgressIndicatorPercent from .hashindex import NSIndex from .locking import UpgradableLock, LockError, LockErrorT from .lrucache import LRUCache @@ -189,7 +189,8 @@ class Repository: else: if do_cleanup: self.io.cleanup(transaction_id) - hints = read_msgpack(os.path.join(self.path, 'hints.%d' % transaction_id)) + with open(os.path.join(self.path, 'hints.%d' % transaction_id), 'rb') as fd: + hints = msgpack.unpack(fd) if hints[b'version'] != 1: raise ValueError('Unknown hints file version: %d' % hints['version']) self.segments = hints[b'segments'] @@ -200,7 +201,12 @@ class Repository: b'segments': self.segments, b'compact': list(self.compact)} transaction_id = self.io.get_segments_transaction_id() - write_msgpack(os.path.join(self.path, 'hints.%d' % transaction_id), hints) + hints_file = os.path.join(self.path, 'hints.%d' % transaction_id) + with open(hints_file + '.tmp', 'wb') as fd: + msgpack.pack(hints, fd) + fd.flush() + os.fsync(fd.fileno()) + os.rename(hints_file + '.tmp', hints_file) self.index.write(os.path.join(self.path, 'index.tmp')) os.rename(os.path.join(self.path, 'index.tmp'), os.path.join(self.path, 'index.%d' % transaction_id))