From 2ef015121cbe4191a4c092092ebd610fcad8a89f Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Mon, 8 Feb 2010 19:26:38 -0500 Subject: [PATCH] Fix some list comprehensions that I thought were generator comprehensions. Apparently [x for x in whatever] yields a list, not an iterator, which means two things: - it might use more memory than I thought - you definitely don't need to write list([...]) since it's already a list. Clean up a few of these. You learn something new every day. --- cmd-index.py | 6 +++--- cmd-midx.py | 2 +- git.py | 6 +++--- helpers.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cmd-index.py b/cmd-index.py index fbbc890..ac7e47a 100755 --- a/cmd-index.py +++ b/cmd-index.py @@ -5,10 +5,10 @@ from helpers import * def _simplify_iter(iters): - total = sum([len(it) for it in iters]) - l = list([iter(it) for it in iters]) + total = sum(len(it) for it in iters) + l = [iter(it) for it in iters] del iters - l = list([(next(it),it) for it in l]) + l = [(next(it),it) for it in l] l = filter(lambda x: x[0], l) count = 0 while l: diff --git a/cmd-midx.py b/cmd-midx.py index b421e0e..b63e201 100755 --- a/cmd-midx.py +++ b/cmd-midx.py @@ -55,7 +55,7 @@ def do_midx(outdir, outfilename, infilenames): for e in merge(inp, bits, table): f.write(e) - f.write('\0'.join([os.path.basename(p) for p in infilenames])) + f.write('\0'.join(os.path.basename(p) for p in infilenames)) f.seek(12) f.write(struct.pack('!%dI' % entries, *table)) diff --git a/git.py b/git.py index 9d7bad5..444752f 100644 --- a/git.py +++ b/git.py @@ -234,7 +234,7 @@ class MultiPackIndex: if forget_packs: self.packs = [] skip_midx = skip_midx or ignore_midx - d = dict([(p.name, 1) for p in self.packs]) + d = dict((p.name, 1) for p in self.packs) if os.path.exists(self.dir): if not skip_midx: midxl = [] @@ -282,8 +282,8 @@ def _shalist_sort_key(ent): def idxmerge(idxlist): - total = sum([len(i) for i in idxlist]) - iters = [iter(i) for i in idxlist] + total = sum(len(i) for i in idxlist) + iters = (iter(i) for i in idxlist) heap = [(next(it), it) for it in iters] heapq.heapify(heap) count = 0 diff --git a/helpers.py b/helpers.py index ac04a95..d386185 100644 --- a/helpers.py +++ b/helpers.py @@ -42,7 +42,7 @@ def readpipe(argv): # But it's used in a couple of places, so let's put it here. def pathsplit(p): l = p.split('/') - l = list([i+'/' for i in l[:-1]]) + l[-1:] + l = [i+'/' for i in l[:-1]] + l[-1:] if l[-1] == '': l.pop() # extra blank caused by terminating '/' return l -- 2.39.2