Browse Source

Clean-up helpers.prune_split

Dan Christensen 11 years ago
parent
commit
d3ff6ac25d
1 changed files with 10 additions and 11 deletions
  1. 10 11
      attic/helpers.py

+ 10 - 11
attic/helpers.py

@@ -92,18 +92,17 @@ class Manifest:
 
 
 
 
 def prune_split(archives, pattern, n, skip=[]):
 def prune_split(archives, pattern, n, skip=[]):
-    items = {}
+    last = None
     keep = []
     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
     return keep