From d3ff6ac25dd3f875c76ba9028d818f205b7c0f92 Mon Sep 17 00:00:00 2001 From: Dan Christensen Date: Sun, 2 Feb 2014 23:45:53 -0500 Subject: [PATCH] Clean-up helpers.prune_split --- attic/helpers.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/attic/helpers.py b/attic/helpers.py index e8a0d8354..c5a7ca125 100644 --- a/attic/helpers.py +++ b/attic/helpers.py @@ -92,18 +92,17 @@ class Manifest: def prune_split(archives, pattern, n, skip=[]): - items = {} + last = None keep = [] - for a in archives: - key = to_localtime(a.ts).strftime(pattern) - items.setdefault(key, []) - items[key].append(a) - for key, values in sorted(items.items(), reverse=True): - if n: - values.sort(key=attrgetter('ts'), reverse=True) - if values[0] not in skip: - keep.append(values[0]) - n -= 1 + if n == 0: + return keep + for a in sorted(archives, key=attrgetter('ts'), reverse=True): + period = a.ts.strftime(pattern) + if period != last: + last = period + if a not in skip: + keep.append(a) + if len(keep) == n: break return keep