From 9d20d44b6d394661caada599587538579fc3fd78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Borgstr=C3=B6m?= Date: Tue, 26 Oct 2010 21:03:47 +0200 Subject: [PATCH] Minor code cleanup --- dedupestore/archive.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/dedupestore/archive.py b/dedupestore/archive.py index 2a4b5923f..2a83f70dc 100644 --- a/dedupestore/archive.py +++ b/dedupestore/archive.py @@ -276,11 +276,14 @@ class Archive(object): ids = [] chunks = [] for chunk in chunkify(fd, CHUNK_SIZE, 30): - ids.append(self.crypto.id_hash(chunk)) - chunks.append(chunk) + id = self.crypto.id_hash(chunk) + ids.append(id) + try: + chunks.append(self.chunk_idx[id]) + except KeyError: + chunks.append(self.process_chunk(id, chunk, cache)) size += len(chunk) cache.memorize_file_chunks(path_hash, st, ids) - chunks = [self.process_chunk(chunk, cache) for chunk in chunks] self.items.append({ 'type': 'FILE', 'path': safe_path, 'chunks': chunks, 'size': size, 'mode': st.st_mode, @@ -299,16 +302,12 @@ class Archive(object): self.chunk_idx[id] = idx return idx - def process_chunk(self, data, cache): - id = self.crypto.id_hash(data) - try: - return self.chunk_idx[id] - except KeyError: - idx = len(self.chunks) - size = cache.add_chunk(id, data, self.crypto) - self.chunks.append((id, size)) - self.chunk_idx[id] = idx - return idx + def process_chunk(self, id, data, cache): + idx = len(self.chunks) + size = cache.add_chunk(id, data, self.crypto) + self.chunks.append((id, size)) + self.chunk_idx[id] = idx + return idx @staticmethod def list_archives(store, crypto):