[PATCH 2 of 2] coding style: use iterators instead of list comprehensions when possible
Nicolas Dumazet
nicdumz at gmail.com
Wed Dec 16 22:08:06 CST 2009
# HG changeset patch
# User Nicolas Dumazet <nicdumz.commits at gmail.com>
# Date 1260525915 -32400
# Node ID ceae6ff0555208531dc996a64bf268e5bde4dd4c
# Parent bdbd6e8667af6ba2fa42971bb02b003fc48b7633
coding style: use iterators instead of list comprehensions when possible
Most of the core functions now support any iterable as an argument, and
f([x for x in ...]) is exactly similar to f(x for x in ...).
Omitting a level of braces then gives more readable code.
It is in particular true for the following calls:
* sorted()
* tuple(), list(), set(), dict()
* min(), max()
* str.join()
* dict.*(), list.extend()
Calls out of this scope were left alone. In particular:
* list.append()
* len()
* return ([x for x in ...], ...)
were ignored, as replacing the comprehensions in those would have just been
bogus.
Candidates were selected using grep, but changes were done manually.
diff --git a/contrib/memory.py b/contrib/memory.py
--- a/contrib/memory.py
+++ b/contrib/memory.py
@@ -29,8 +29,8 @@
finally:
if status is not None:
status.close()
- ui.write_err(", ".join(["%s: %.1f MiB" % (key, value/1024.0)
- for key, value in result.iteritems()]) + "\n")
+ ui.write_err(", ".join("%s: %.1f MiB" % (key, value/1024.0)
+ for key, value in result.iteritems()) + "\n")
def extsetup(ui):
atexit.register(memusage, ui)
diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -37,7 +37,7 @@
out_opts.append(('%2s%s' % (shortopt and '-%s' % shortopt,
longopt and ' --%s' % longopt),
'%s' % desc))
- opts_len = max([len(opt[0]) for opt in out_opts])
+ opts_len = max(len(opt[0]) for opt in out_opts)
for first, second in out_opts:
sys.stdout.write(' %-*s %s\n' % (opts_len, first, second))
diff --git a/doc/gendoc.py b/doc/gendoc.py
--- a/doc/gendoc.py
+++ b/doc/gendoc.py
@@ -86,7 +86,7 @@
# options
opt_output = list(d['opts'])
if opt_output:
- opts_len = max([len(line[0]) for line in opt_output])
+ opts_len = max(len(line[0]) for line in opt_output)
ui.write(_(" options:\n\n"))
for optstr, desc in opt_output:
if desc:
diff --git a/hgext/bugzilla.py b/hgext/bugzilla.py
--- a/hgext/bugzilla.py
+++ b/hgext/bugzilla.py
@@ -192,7 +192,7 @@
def filter_real_bug_ids(self, ids):
'''filter not-existing bug ids from list.'''
self.run('select bug_id from bugs where bug_id in %s' % buglist(ids))
- return sorted([c[0] for c in self.cursor.fetchall()])
+ return sorted(c[0] for c in self.cursor.fetchall())
def filter_unknown_bug_ids(self, node, ids):
'''filter bug ids from list that already refer to this changeset.'''
diff --git a/hgext/convert/bzr.py b/hgext/convert/bzr.py
--- a/hgext/convert/bzr.py
+++ b/hgext/convert/bzr.py
@@ -239,7 +239,7 @@
<http://bazaar-vcs.org/GhostRevision>
"""
parentmap = self.sourcerepo.get_parent_map(ids)
- parents = tuple([parent for parent in ids if parent in parentmap])
+ parents = tuple(parent for parent in ids if parent in parentmap)
return parents
def recode(self, s, encoding=None):
diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py
--- a/hgext/convert/convcmd.py
+++ b/hgext/convert/convcmd.py
@@ -189,7 +189,7 @@
return dates[n]
def picknext(nodes):
- return min([(getdate(n), n) for n in nodes])[1]
+ return min((getdate(n), n) for n in nodes)[1]
return picknext
diff --git a/hgext/convert/cvs.py b/hgext/convert/cvs.py
--- a/hgext/convert/cvs.py
+++ b/hgext/convert/cvs.py
@@ -76,7 +76,7 @@
files = {}
for f in cs.entries:
- files[f.file] = "%s%s" % ('.'.join([str(x) for x in f.revision]),
+ files[f.file] = "%s%s" % ('.'.join(str(x) for x in f.revision),
['', '(DEAD)'][f.dead])
# add current commit to set
diff --git a/hgext/convert/cvsps.py b/hgext/convert/cvsps.py
--- a/hgext/convert/cvsps.py
+++ b/hgext/convert/cvsps.py
@@ -163,7 +163,7 @@
cachefile = root.split(":") + [directory, "cache"]
cachefile = ['-'.join(re.findall(r'\w+', s)) for s in cachefile if s]
cachefile = os.path.join(cachedir,
- '.'.join([s for s in cachefile if s]))
+ '.'.join(s for s in cachefile if s))
if cache == 'update':
try:
@@ -291,7 +291,7 @@
match = re_50.match(line)
assert match, _('expected revision number')
e = logentry(rcs=scache(rcs), file=scache(filename),
- revision=tuple([int(x) for x in match.group(1).split('.')]),
+ revision=tuple(int(x) for x in match.group(1).split('.')),
branches=[], parent=None,
synthetic=False)
state = 6
@@ -343,7 +343,7 @@
# or store the commit log message otherwise
m = re_70.match(line)
if m:
- e.branches = [tuple([int(y) for y in x.strip().split('.')])
+ e.branches = [tuple(int(y) for y in x.strip().split('.'))
for x in m.group(1).split(';')]
state = 8
elif re_31.match(line) and re_50.match(peek):
@@ -385,7 +385,7 @@
if store:
# clean up the results and save in the log.
store = False
- e.tags = sorted([scache(x) for x in tags.get(e.revision, [])])
+ e.tags = sorted(scache(x) for x in tags.get(e.revision, []))
e.comment = scache('\n'.join(e.comment))
revn = len(e.revision)
@@ -397,7 +397,7 @@
# find the branches starting from this revision
branchpoints = set()
for branch, revision in branchmap.iteritems():
- revparts = tuple([int(i) for i in revision.split('.')])
+ revparts = tuple(int(i) for i in revision.split('.'))
if revparts[-2] == 0 and revparts[-1] % 2 == 0:
# normal branch
if revparts[:-2] == e.revision:
@@ -794,7 +794,7 @@
ui.write('Branchpoints: %s \n' % ', '.join(branchpoints))
if opts["parents"] and cs.parents:
if len(cs.parents)>1:
- ui.write('Parents: %s\n' % (','.join([str(p.id) for p in cs.parents])))
+ ui.write('Parents: %s\n' % (','.join(str(p.id) for p in cs.parents)))
else:
ui.write('Parent: %d\n' % cs.parents[0].id)
@@ -814,8 +814,8 @@
fn = f.file
if fn.startswith(opts["prefix"]):
fn = fn[len(opts["prefix"]):]
- ui.write('\t%s:%s->%s%s \n' % (fn, '.'.join([str(x) for x in f.parent]) or 'INITIAL',
- '.'.join([str(x) for x in f.revision]), ['', '(DEAD)'][f.dead]))
+ ui.write('\t%s:%s->%s%s \n' % (fn, '.'.join(str(x) for x in f.parent) or 'INITIAL',
+ '.'.join(str(x) for x in f.revision), ['', '(DEAD)'][f.dead]))
ui.write('\n')
# have we seen the start tag?
diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py
--- a/hgext/convert/hg.py
+++ b/hgext/convert/hg.py
@@ -189,7 +189,7 @@
except:
oldlines = []
- newlines = sorted([("%s %s\n" % (tags[tag], tag)) for tag in tags])
+ newlines = sorted(("%s %s\n" % (tags[tag], tag)) for tag in tags)
if newlines == oldlines:
return None, None
data = "".join(newlines)
@@ -330,8 +330,8 @@
def gettags(self):
tags = [t for t in self.repo.tagslist() if t[0] != 'tip']
- return dict([(name, hex(node)) for name, node in tags
- if self.keep(node)])
+ return dict((name, hex(node)) for name, node in tags
+ if self.keep(node))
def getchangedfiles(self, rev, i):
ctx = self.changectx(rev)
diff --git a/hgext/convert/p4.py b/hgext/convert/p4.py
--- a/hgext/convert/p4.py
+++ b/hgext/convert/p4.py
@@ -202,4 +202,4 @@
return self.tags
def getchangedfiles(self, rev, i):
- return sorted([x[0] for x in self.files[rev]])
+ return sorted(x[0] for x in self.files[rev])
diff --git a/hgext/gpg.py b/hgext/gpg.py
--- a/hgext/gpg.py
+++ b/hgext/gpg.py
@@ -252,9 +252,9 @@
message = opts['message']
if not message:
# we don't translate commit messages
- message = "\n".join(["Added signature for changeset %s"
+ message = "\n".join("Added signature for changeset %s"
% hgnode.short(n)
- for n in nodes])
+ for n in nodes)
try:
m = match.exact(repo.root, '', ['.hgsigs'])
repo.commit(message, opts['user'], opts['date'], match=m)
diff --git a/hgext/hgk.py b/hgext/hgk.py
--- a/hgext/hgk.py
+++ b/hgext/hgk.py
@@ -306,7 +306,7 @@
def view(ui, repo, *etc, **opts):
"start interactive history viewer"
os.chdir(repo.root)
- optstr = ' '.join(['--%s %s' % (k, v) for k, v in opts.iteritems() if v])
+ optstr = ' '.join('--%s %s' % (k, v) for k, v in opts.iteritems() if v)
cmd = ui.config("hgk", "path", "hgk") + " %s %s" % (optstr, " ".join(etc))
ui.debug("running %s\n" % cmd)
util.system(cmd)
diff --git a/hgext/inotify/server.py b/hgext/inotify/server.py
--- a/hgext/inotify/server.py
+++ b/hgext/inotify/server.py
@@ -177,7 +177,7 @@
self.tree = directory()
self.statcache = {}
- self.statustrees = dict([(s, directory()) for s in self.statuskeys])
+ self.statustrees = dict((s, directory()) for s in self.statuskeys)
self.ds_info = self.dirstate_info()
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -352,7 +352,7 @@
if bad:
raise util.Abort(bad)
drop = self.guard_re.sub('', self.full_series[idx])
- self.full_series[idx] = drop + ''.join([' #' + g for g in guards])
+ self.full_series[idx] = drop + ''.join(' #' + g for g in guards)
self.parse_series()
self.series_dirty = True
@@ -661,7 +661,7 @@
del self.applied[:numrevs]
self.applied_dirty = 1
- for i in sorted([self.find_series(p) for p in patches], reverse=True):
+ for i in sorted((self.find_series(p) for p in patches), reverse=True):
del self.full_series[i]
self.parse_series()
self.series_dirty = 1
@@ -1396,7 +1396,7 @@
msg = pfx + patchname
self.ui.write(msg + '\n')
- applied = set([p.name for p in self.applied])
+ applied = set(p.name for p in self.applied)
if length is None:
length = len(self.series) - start
if not missing:
@@ -1513,7 +1513,7 @@
pp = r.dirstate.parents()
msg += "\nDirstate: %s %s" % (hex(pp[0]), hex(pp[1]))
msg += "\n\nPatch Data:\n"
- text = msg + "\n".join([str(x) for x in self.applied]) + '\n' + (ar and
+ text = msg + "\n".join(str(x) for x in self.applied) + '\n' + (ar and
"\n".join(ar) + '\n' or "")
n = repo.commit(text, force=True)
if not n:
@@ -2240,7 +2240,7 @@
ui.write('renaming %s to %s\n' % (patch, name))
i = q.find_series(patch)
guards = q.guard_re.findall(q.full_series[i])
- q.full_series[i] = name + ''.join([' #' + g for g in guards])
+ q.full_series[i] = name + ''.join(' #' + g for g in guards)
q.parse_series()
q.series_dirty = 1
diff --git a/hgext/record.py b/hgext/record.py
--- a/hgext/record.py
+++ b/hgext/record.py
@@ -97,7 +97,7 @@
if h.startswith('---'):
fp.write(_('%d hunks, %d lines changed\n') %
(len(self.hunks),
- sum([h.added + h.removed for h in self.hunks])))
+ sum(h.added + h.removed for h in self.hunks)))
break
fp.write(h)
diff --git a/mercurial/ancestor.py b/mercurial/ancestor.py
--- a/mercurial/ancestor.py
+++ b/mercurial/ancestor.py
@@ -37,7 +37,7 @@
if p not in depth:
visit.append(p)
if visit[-1] == vertex:
- depth[vertex] = min([depth[p] for p in pl]) - 1
+ depth[vertex] = min(depth[p] for p in pl) - 1
visit.pop()
# traverse ancestors in order of decreasing distance from root
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -210,7 +210,7 @@
% repr(user))
# strip trailing whitespace and leading and trailing empty lines
- desc = '\n'.join([l.rstrip() for l in desc.splitlines()]).strip('\n')
+ desc = '\n'.join(l.rstrip() for l in desc.splitlines()).strip('\n')
user, desc = encoding.fromlocal(user), encoding.fromlocal(desc)
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1136,10 +1136,10 @@
if ctx.branch():
edittext.append(_("HG: branch '%s'")
% encoding.tolocal(ctx.branch()))
- edittext.extend([_("HG: subrepo %s") % s for s in subs])
- edittext.extend([_("HG: added %s") % f for f in added])
- edittext.extend([_("HG: changed %s") % f for f in modified])
- edittext.extend([_("HG: removed %s") % f for f in removed])
+ edittext.extend(_("HG: subrepo %s") % s for s in subs)
+ edittext.extend(_("HG: added %s") % f for f in added)
+ edittext.extend(_("HG: changed %s") % f for f in modified)
+ edittext.extend(_("HG: removed %s") % f for f in removed)
if not added and not modified and not removed:
edittext.append(_("HG: no files changed"))
edittext.append("")
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -454,8 +454,8 @@
realhead = tag in activebranches
open = node in repo.branchheads(tag, closed=False)
return realhead and open
- branches = sorted([(testactive(tag, node), repo.changelog.rev(node), tag)
- for tag, node in repo.branchtags().items()],
+ branches = sorted(((testactive(tag, node), repo.changelog.rev(node), tag)
+ for tag, node in repo.branchtags().items()),
reverse=True)
for isactive, node, tag in branches:
@@ -738,7 +738,7 @@
def debugcommands(ui, cmd='', *args):
for cmd, vals in sorted(table.iteritems()):
cmd = cmd.split('|')[0].strip('^')
- opts = ', '.join([i[1] for i in vals[1]])
+ opts = ', '.join(i[1] for i in vals[1])
ui.write('%s: %s\n' % (cmd, opts))
def debugcomplete(ui, cmd='', **opts):
@@ -1065,8 +1065,8 @@
if not items:
return
fmt = 'f %%-%ds %%-%ds %%s' % (
- max([len(abs) for abs in items]),
- max([len(m.rel(abs)) for abs in items]))
+ max(len(abs) for abs in items),
+ max(len(m.rel(abs)) for abs in items))
for abs in items:
line = fmt % (abs, m.rel(abs), m.exact(abs) and 'exact' or '')
ui.write("%s\n" % line.rstrip())
@@ -1597,7 +1597,7 @@
except AttributeError:
ct = {}
- modcmds = set([c.split('|', 1)[0] for c in ct])
+ modcmds = set(c.split('|', 1)[0] for c in ct)
helplist(_('list of commands:\n\n'), modcmds.__contains__)
if name and name != 'shortlist':
@@ -1651,7 +1651,7 @@
topics = []
for names, header, doc in help.helptable:
topics.append((sorted(names, key=len, reverse=True)[0], header))
- topics_len = max([len(s[0]) for s in topics])
+ topics_len = max(len(s[0]) for s in topics)
for t, desc in topics:
ui.write(" %-*s %s\n" % (topics_len, t, desc))
@@ -1709,10 +1709,10 @@
if default or id or num:
changed = ctx.files() + ctx.deleted()
if default or id:
- output = ["%s%s" % ('+'.join([hexfunc(p.node()) for p in parents]),
+ output = ["%s%s" % ('+'.join(hexfunc(p.node()) for p in parents),
(changed) and "+" or "")]
if num:
- output.append("%s%s" % ('+'.join([str(p.rev()) for p in parents]),
+ output.append("%s%s" % ('+'.join(str(p.rev()) for p in parents),
(changed) and "+" or ""))
else:
ctx = repo[rev]
@@ -2907,7 +2907,7 @@
tags = repo.tags()
for p in parents:
- t = ' '.join([t for t in tags if tags[t] == p.node()])
+ t = ' '.join(t for t in tags if tags[t] == p.node())
if p.rev() == -1:
if not len(repo):
t += _(' (empty repository)')
diff --git a/mercurial/copies.py b/mercurial/copies.py
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -11,7 +11,7 @@
def _nonoverlap(d1, d2, d3):
"Return list of elements in d1 not in d2 or d3"
- return sorted([d for d in d1 if d not in d3 and d not in d2])
+ return sorted(d for d in d1 if d not in d3 and d not in d2)
def _dirname(f):
s = f.rfind("/")
diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -556,8 +556,8 @@
# step 3: report unseen items in the dmap hash
if not skipstep3 and not exact:
- visit = sorted([f for f in dmap if f not in results and matchfn(f)])
- for nf, st in zip(visit, util.statfiles([join(i) for i in visit])):
+ visit = sorted(f for f in dmap if f not in results and matchfn(f))
+ for nf, st in zip(visit, util.statfiles(join(i) for i in visit)):
if not st is None and not getkind(st.st_mode) in (regkind, lnkkind):
st = None
results[nf] = st
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -151,7 +151,7 @@
ui.warn(_("** Mercurial Distributed SCM (version %s)\n")
% util.version())
ui.warn(_("** Extensions loaded: %s\n")
- % ", ".join([x[0] for x in extensions.extensions()]))
+ % ", ".join(x[0] for x in extensions.extensions()))
raise
return -1
diff --git a/mercurial/encoding.py b/mercurial/encoding.py
--- a/mercurial/encoding.py
+++ b/mercurial/encoding.py
@@ -72,6 +72,6 @@
d = s.decode(encoding, 'replace')
if hasattr(unicodedata, 'east_asian_width'):
w = unicodedata.east_asian_width
- return sum([w(c) in 'WF' and 2 or 1 for c in d])
+ return sum(w(c) in 'WF' and 2 or 1 for c in d)
return len(d)
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -70,7 +70,7 @@
if t not in tools:
tools[t] = int(_toolstr(ui, t, "priority", "0"))
names = tools.keys()
- tools = sorted([(-p,t) for t,p in tools.items()])
+ tools = sorted((-p,t) for t,p in tools.items())
uimerge = ui.config("ui", "merge")
if uimerge:
if uimerge not in names:
diff --git a/mercurial/hbisect.py b/mercurial/hbisect.py
--- a/mercurial/hbisect.py
+++ b/mercurial/hbisect.py
@@ -25,11 +25,11 @@
"""
clparents = changelog.parentrevs
- skip = set([changelog.rev(n) for n in state['skip']])
+ skip = set(changelog.rev(n) for n in state['skip'])
def buildancestors(bad, good):
# only the earliest bad revision matters
- badrev = min([changelog.rev(n) for n in bad])
+ badrev = min(changelog.rev(n) for n in bad)
goodrevs = [changelog.rev(n) for n in good]
goodrev = min(goodrevs)
# build visit array
diff --git a/mercurial/httprepo.py b/mercurial/httprepo.py
--- a/mercurial/httprepo.py
+++ b/mercurial/httprepo.py
@@ -114,7 +114,7 @@
if proto.startswith('application/mercurial-'):
try:
version = proto.split('-', 1)[1]
- version_info = tuple([int(n) for n in version.split('.')])
+ version_info = tuple(int(n) for n in version.split('.'))
except ValueError:
raise error.RepoError(_("'%s' sent a broken Content-Type "
"header (%s)") % (safeurl, proto))
@@ -180,7 +180,7 @@
batch = 8 # avoid giant requests
r = []
for i in xrange(0, len(pairs), batch):
- n = " ".join(["-".join(map(hex, p)) for p in pairs[i:i + batch]])
+ n = " ".join("-".join(map(hex, p)) for p in pairs[i:i + batch])
d = self.do_read("between", pairs=n)
try:
r += [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ]
@@ -195,8 +195,8 @@
def changegroupsubset(self, bases, heads, source):
self.requirecap('changegroupsubset', _('look up remote changes'))
- baselst = " ".join([hex(n) for n in bases])
- headlst = " ".join([hex(n) for n in heads])
+ baselst = " ".join(hex(n) for n in bases)
+ headlst = " ".join(hex(n) for n in heads)
f = self.do_cmd("changegroupsubset", bases=baselst, heads=headlst)
return util.chunkbuffer(zgenerator(f))
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -279,8 +279,8 @@
if node != nullid:
tags[encoding.tolocal(name)] = node
tags['tip'] = self.changelog.tip()
- tagtypes = dict([(encoding.tolocal(name), value)
- for (name, value) in tagtypes.iteritems()])
+ tagtypes = dict((encoding.tolocal(name), value)
+ for (name, value) in tagtypes.iteritems())
return (tags, tagtypes)
def tagtype(self, tagname):
@@ -419,7 +419,7 @@
latest = newnodes.pop()
if latest not in bheads:
continue
- minbhrev = self[min([self[bh].rev() for bh in bheads])].node()
+ minbhrev = self[min(self[bh].rev() for bh in bheads)].node()
reachable = self.changelog.reachable(latest, minbhrev)
bheads = [b for b in bheads if b not in reachable]
newbheads.insert(0, latest)
@@ -1379,7 +1379,7 @@
raise util.Abort(_("repository is unrelated"))
self.ui.debug("found new changesets starting at " +
- " ".join([short(f) for f in fetch]) + "\n")
+ " ".join(short(f) for f in fetch) + "\n")
self.ui.debug("%d total queries\n" % reqcnt)
@@ -1919,7 +1919,7 @@
self.hook('preoutgoing', throw=True, source=source)
cl = self.changelog
- revset = set([cl.rev(n) for n in nodes])
+ revset = set(cl.rev(n) for n in nodes)
self.changegroupinfo(nodes, source)
def identity(x):
diff --git a/mercurial/match.py b/mercurial/match.py
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -195,7 +195,7 @@
def _buildmatch(pats, tail):
"""build a matching function from a set of patterns"""
try:
- pat = '(?:%s)' % '|'.join([_regex(k, p, tail) for (k, p) in pats])
+ pat = '(?:%s)' % '|'.join(_regex(k, p, tail) for (k, p) in pats)
if len(pat) > 20000:
raise OverflowError()
return re.compile(pat).match
diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -72,7 +72,7 @@
if opts.git:
parts.append('--git')
if revs and not opts.git:
- parts.append(' '.join(["-r %s" % rev for rev in revs]))
+ parts.append(' '.join("-r %s" % rev for rev in revs))
if opts.git:
parts.append('a/%s' % a)
parts.append('b/%s' % b)
diff --git a/mercurial/patch.py b/mercurial/patch.py
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -1057,7 +1057,7 @@
util.set_flags(dst, islink, isexec)
cmdutil.addremove(repo, cfiles, similarity=similarity)
files = patches.keys()
- files.extend([r for r in removes if r not in files])
+ files.extend(r for r in removes if r not in files)
return sorted(files)
def externalpatch(patcher, args, patchname, ui, strip, cwd, files):
@@ -1325,7 +1325,7 @@
'''export changesets as hg patches.'''
total = len(revs)
- revwidth = max([len(str(rev)) for rev in revs])
+ revwidth = max(len(str(rev)) for rev in revs)
def single(rev, seqno, fp):
ctx = repo[rev]
diff --git a/mercurial/posix.py b/mercurial/posix.py
--- a/mercurial/posix.py
+++ b/mercurial/posix.py
@@ -27,9 +27,9 @@
rcs = [os.path.join(path, 'hgrc')]
rcdir = os.path.join(path, 'hgrc.d')
try:
- rcs.extend([os.path.join(rcdir, f)
+ rcs.extend(os.path.join(rcdir, f)
for f, kind in osutil.listdir(rcdir)
- if f.endswith(".rc")])
+ if f.endswith(".rc"))
except OSError:
pass
return rcs
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -680,7 +680,7 @@
roots = list(roots)
if not roots:
return nonodes
- lowestrev = min([self.rev(n) for n in roots])
+ lowestrev = min(self.rev(n) for n in roots)
else:
roots = [nullid] # Everybody's a descendent of nullid
lowestrev = nullrev
@@ -707,7 +707,7 @@
# Start at the top and keep marking parents until we're done.
nodestotag = set(heads)
# Remember where the top was so we can use it as a limit later.
- highestrev = max([self.rev(n) for n in nodestotag])
+ highestrev = max(self.rev(n) for n in nodestotag)
while nodestotag:
# grab a node to tag
n = nodestotag.pop()
@@ -723,8 +723,8 @@
# and we haven't already been marked as an ancestor
ancestors.add(n) # Mark as ancestor
# Add non-nullid parents to list of nodes to tag.
- nodestotag.update([p for p in self.parents(n) if
- p != nullid])
+ nodestotag.update(p for p in self.parents(n) if
+ p != nullid)
elif n in heads: # We've seen it before, is it a fake head?
# So it is, real heads should not be the ancestors of
# any other heads.
@@ -743,7 +743,7 @@
roots = [n for n in roots if n in ancestors]
# Recompute the lowest revision
if roots:
- lowestrev = min([self.rev(n) for n in roots])
+ lowestrev = min(self.rev(n) for n in roots)
else:
# No more roots? Return empty list
return nonodes
@@ -832,7 +832,7 @@
start = nullid
if stop is None:
stop = []
- stoprevs = set([self.rev(n) for n in stop])
+ stoprevs = set(self.rev(n) for n in stop)
startrev = self.rev(start)
reachable = set((startrev,))
heads = set((startrev,))
diff --git a/mercurial/sshrepo.py b/mercurial/sshrepo.py
--- a/mercurial/sshrepo.py
+++ b/mercurial/sshrepo.py
@@ -196,7 +196,7 @@
self.abort(error.ResponseError(_("unexpected response:"), d))
def between(self, pairs):
- n = " ".join(["-".join(map(hex, p)) for p in pairs])
+ n = " ".join("-".join(map(hex, p)) for p in pairs)
d = self.call("between", pairs=n)
try:
p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ]
diff --git a/mercurial/store.py b/mercurial/store.py
--- a/mercurial/store.py
+++ b/mercurial/store.py
@@ -32,7 +32,7 @@
def _buildencodefun():
e = '_'
win_reserved = [ord(x) for x in '\\:*?"<>|']
- cmap = dict([ (chr(x), chr(x)) for x in xrange(127) ])
+ cmap = dict((chr(x), chr(x)) for x in xrange(127))
for x in (range(32) + range(126, 256) + win_reserved):
cmap[chr(x)] = "~%02x" % x
for x in range(ord("A"), ord("Z")+1) + [ord(e)]:
@@ -52,19 +52,19 @@
pass
else:
raise KeyError
- return (lambda s: "".join([cmap[c] for c in encodedir(s)]),
+ return (lambda s: "".join(cmap[c] for c in encodedir(s)),
lambda s: decodedir("".join(list(decode(s)))))
encodefilename, decodefilename = _buildencodefun()
def _build_lower_encodefun():
win_reserved = [ord(x) for x in '\\:*?"<>|']
- cmap = dict([ (chr(x), chr(x)) for x in xrange(127) ])
+ cmap = dict((chr(x), chr(x)) for x in xrange(127))
for x in (range(32) + range(126, 256) + win_reserved):
cmap[chr(x)] = "~%02x" % x
for x in range(ord("A"), ord("Z")+1):
cmap[chr(x)] = chr(x).lower()
- return lambda s: "".join([cmap[c] for c in s])
+ return lambda s: "".join(cmap[c] for c in s)
lowerencode = _build_lower_encodefun()
diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -41,8 +41,8 @@
def writestate(repo, state):
repo.wwrite('.hgsubstate',
- ''.join(['%s %s\n' % (state[s][1], s)
- for s in sorted(state)]), '')
+ ''.join('%s %s\n' % (state[s][1], s)
+ for s in sorted(state)), '')
def submerge(repo, wctx, mctx, actx):
if mctx == actx: # backwards?
diff --git a/mercurial/tags.py b/mercurial/tags.py
--- a/mercurial/tags.py
+++ b/mercurial/tags.py
@@ -173,7 +173,7 @@
if (bnode != anode and anode in bhist and
(bnode not in ahist or len(bhist) > len(ahist))):
anode = bnode
- ahist.extend([n for n in bhist if n not in ahist])
+ ahist.extend(n for n in bhist if n not in ahist)
alltags[name] = anode, ahist
tagtypes[name] = tagtype
diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py
--- a/mercurial/templatefilters.py
+++ b/mercurial/templatefilters.py
@@ -11,7 +11,7 @@
def stringify(thing):
'''turn nested template iterator into string.'''
if hasattr(thing, '__iter__') and not isinstance(thing, str):
- return "".join([stringify(t) for t in thing if t is not None])
+ return "".join(stringify(t) for t in thing if t is not None)
return str(thing)
agescales = [("second", 1),
@@ -70,8 +70,8 @@
yield text[start:m.start(0)], m.group(1)
start = m.end(1)
- return "".join([space_re.sub(' ', textwrap.fill(para, width)) + rest
- for para, rest in findparas()])
+ return "".join(space_re.sub(' ', textwrap.fill(para, width)) + rest
+ for para, rest in findparas())
def firstline(text):
'''return the first line of text'''
@@ -86,7 +86,7 @@
def obfuscate(text):
text = unicode(text, encoding.encoding, 'replace')
- return ''.join(['&#%d;' % ord(c) for c in text])
+ return ''.join('&#%d;' % ord(c) for c in text)
def domain(author):
'''get domain of author, or empty string if none.'''
diff --git a/mercurial/transaction.py b/mercurial/transaction.py
--- a/mercurial/transaction.py
+++ b/mercurial/transaction.py
@@ -68,7 +68,7 @@
@active
def endgroup(self):
q = self._queue.pop()
- d = ''.join(['%s\0%d\n' % (x[0], x[1]) for x in q])
+ d = ''.join('%s\0%d\n' % (x[0], x[1]) for x in q)
self.entries.extend(q)
self.file.write(d)
self.file.flush()
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -227,7 +227,7 @@
def write(self, *args):
if self._buffers:
- self._buffers[-1].extend([str(a) for a in args])
+ self._buffers[-1].extend(str(a) for a in args)
else:
for a in args:
sys.stdout.write(str(a))
diff --git a/mercurial/url.py b/mercurial/url.py
--- a/mercurial/url.py
+++ b/mercurial/url.py
@@ -181,11 +181,11 @@
# see if we should use a proxy for this url
no_list = [ "localhost", "127.0.0.1" ]
- no_list.extend([p.lower() for
- p in ui.configlist("http_proxy", "no")])
- no_list.extend([p.strip().lower() for
+ no_list.extend(p.lower() for
+ p in ui.configlist("http_proxy", "no"))
+ no_list.extend(p.strip().lower() for
p in os.getenv("no_proxy", '').split(',')
- if p.strip()])
+ if p.strip())
# "http_proxy.always" config is for running tests on localhost
if ui.configbool("http_proxy", "always"):
self.no_list = []
@@ -540,7 +540,7 @@
handlers.extend((urllib2.HTTPBasicAuthHandler(passmgr),
httpdigestauthhandler(passmgr)))
- handlers.extend([h(ui, passmgr) for h in handlerfuncs])
+ handlers.extend(h(ui, passmgr) for h in handlerfuncs)
opener = urllib2.build_opener(*handlers)
# 1.0 here is the _protocol_ version
diff --git a/mercurial/verify.py b/mercurial/verify.py
--- a/mercurial/verify.py
+++ b/mercurial/verify.py
@@ -155,7 +155,7 @@
ui.status(_("crosschecking files in changesets and manifests\n"))
if havemf:
- for c,m in sorted([(c, m) for m in mflinkrevs for c in mflinkrevs[m]]):
+ for c,m in sorted((c, m) for m in mflinkrevs for c in mflinkrevs[m]):
err(c, _("changeset refers to unknown manifest %s") % short(m))
mflinkrevs = None # del is bad here due to scope issues
@@ -169,7 +169,7 @@
if f not in filelinkrevs:
try:
fl = repo.file(f)
- lr = min([fl.linkrev(fl.rev(n)) for n in filenodes[f]])
+ lr = min(fl.linkrev(fl.rev(n)) for n in filenodes[f])
except:
lr = None
err(lr, _("in manifest but not in changeset"), f)
diff --git a/mercurial/windows.py b/mercurial/windows.py
--- a/mercurial/windows.py
+++ b/mercurial/windows.py
@@ -225,8 +225,8 @@
cache = dircache.get(dir, None)
if cache is None:
try:
- dmap = dict([(ncase(n), s)
- for n, k, s in osutil.listdir(dir, True)])
+ dmap = dict((ncase(n), s)
+ for n, k, s in osutil.listdir(dir, True))
except OSError, err:
# handle directory not found in Python version prior to 2.5
# Python <= 2.4 returns native Windows code 3 in errno
diff --git a/tests/test-convert-git b/tests/test-convert-git
--- a/tests/test-convert-git
+++ b/tests/test-convert-git
@@ -137,7 +137,7 @@
mkdir git-repo3
cd git-repo3
git init-db >/dev/null 2>/dev/null
-python -c 'file("b", "wb").write("".join([chr(i) for i in range(256)])*16)'
+python -c 'file("b", "wb").write("".join(chr(i) for i in range(256))*16)'
git add b
commit -a -m addbinary
cd ..
diff --git a/tests/test-convert-svn-encoding b/tests/test-convert-svn-encoding
--- a/tests/test-convert-svn-encoding
+++ b/tests/test-convert-svn-encoding
@@ -13,5 +13,5 @@
cd A-hg
hg up
echo '% check tags are in UTF-8'
-python -c "print '\n'.join([('%r' % l) for l in file('.hgtags', 'rb').readlines()])"
+python -c "print '\n'.join(('%r' % l) for l in file('.hgtags', 'rb').readlines())"
cd ..
diff --git a/tests/test-extension b/tests/test-extension
--- a/tests/test-extension
+++ b/tests/test-extension
@@ -141,7 +141,7 @@
def debugextensions(ui):
"yet another debug command"
- ui.write("%s\n" % '\n'.join([x for x, y in extensions.extensions()]))
+ ui.write("%s\n" % '\n'.join(x for x, y in extensions.extensions()))
cmdtable = {"debugextensions": (debugextensions, (), "hg debugextensions")}
commands.norepo += " debugextensions"
diff --git a/tests/test-hgweb-auth.py b/tests/test-hgweb-auth.py
--- a/tests/test-hgweb-auth.py
+++ b/tests/test-hgweb-auth.py
@@ -16,7 +16,7 @@
return ui
def dumpdict(dict):
- return '{' + ', '.join(['%s: %s' % (k, dict[k]) for k in sorted(dict.iterkeys())]) + '}'
+ return '{' + ', '.join('%s: %s' % (k, dict[k]) for k in sorted(dict.iterkeys())) + '}'
def test(auth):
print 'CFG:', dumpdict(auth)
diff --git a/tests/test-non-interactive-wsgi b/tests/test-non-interactive-wsgi
--- a/tests/test-non-interactive-wsgi
+++ b/tests/test-non-interactive-wsgi
@@ -65,9 +65,9 @@
print '---- ERRORS'
print errors.getvalue()
print '---- OS.ENVIRON wsgi variables'
-print sorted([x for x in os.environ if x.startswith('wsgi')])
+print sorted(x for x in os.environ if x.startswith('wsgi'))
print '---- request.ENVIRON wsgi variables'
-print sorted([x for x in i.repo.ui.environ if x.startswith('wsgi')])
+print sorted(x for x in i.repo.ui.environ if x.startswith('wsgi'))
EOF
python request.py
More information about the Mercurial-devel
mailing list