# HG changeset patch # User Yuya Nishihara # Date 2018-04-01 14:34:29 # Node ID 6fb50e912aa8c6c9989a969d35e67116900bed49 # Parent 9ac3e97b299bcc3fa0cfd36300e1f9543b8c1e4b hgweb: make revnav.gen() simply build a list of mappings by one pass There was actually no lazy stuff. diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py --- a/mercurial/hgweb/webutil.py +++ b/mercurial/hgweb/webutil.py @@ -127,8 +127,7 @@ class revnav(object): The return is: - a single element tuple - containing a dictionary with a `before` and `after` key - - values are generator functions taking arbitrary number of kwargs - - yield items are dictionaries with `label` and `node` keys + - values are dictionaries with `label` and `node` keys """ if not self: # empty repo @@ -143,22 +142,21 @@ class revnav(object): targets.sort() first = self._first() - navbefore = [("(%i)" % first, self.hex(first))] + navbefore = [{'label': '(%i)' % first, 'node': self.hex(first)}] navafter = [] for rev in targets: if rev not in self._revlog: continue if pos < rev < limit: - navafter.append(("+%d" % abs(rev - pos), self.hex(rev))) + navafter.append({'label': '+%d' % abs(rev - pos), + 'node': self.hex(rev)}) if 0 < rev < pos: - navbefore.append(("-%d" % abs(rev - pos), self.hex(rev))) - + navbefore.append({'label': '-%d' % abs(rev - pos), + 'node': self.hex(rev)}) - navafter.append(("tip", "tip")) + navafter.append({'label': 'tip', 'node': 'tip'}) - data = lambda i: {"label": i[0], "node": i[1]} - return ({'before': lambda **map: (data(i) for i in navbefore), - 'after': lambda **map: (data(i) for i in navafter)},) + return ({'before': navbefore, 'after': navafter},) class filerevnav(revnav):