[PATCH 7 of 7] hgweb: convert _siblings to a factory function of mappinggenerator
Yuya Nishihara
yuya at tcha.org
Sat Apr 14 08:49:17 EDT 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1522594234 -32400
# Sun Apr 01 23:50:34 2018 +0900
# Node ID fe959b32685068231cad8ef26387c7c16fe0961a
# Parent 8e479b1d96bf94e81f76c78605c16b2864b219a5
hgweb: convert _siblings to a factory function of mappinggenerator
IIUC, only reason it was a class is to make the generator restartable,
which is now served by the mappinggenerator.
diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py
--- a/mercurial/hgweb/webutil.py
+++ b/mercurial/hgweb/webutil.py
@@ -183,7 +183,7 @@ class filerevnav(revnav):
# TODO: maybe this can be a wrapper class for changectx/filectx list, which
# yields {'ctx': ctx}
-def _ctxsgen(ctxs):
+def _ctxsgen(context, ctxs):
for s in ctxs:
d = {
'node': s.hex(),
@@ -197,19 +197,13 @@ def _ctxsgen(ctxs):
d['file'] = s.path()
yield d
-class _siblings(object):
- def __init__(self, siblings=None, hiderev=None):
- if siblings is None:
- siblings = []
- self.siblings = [s for s in siblings if s.node() != nullid]
- if len(self.siblings) == 1 and self.siblings[0].rev() == hiderev:
- self.siblings = []
-
- def __iter__(self):
- return _ctxsgen(self.siblings)
-
- def __len__(self):
- return len(self.siblings)
+def _siblings(siblings=None, hiderev=None):
+ if siblings is None:
+ siblings = []
+ siblings = [s for s in siblings if s.node() != nullid]
+ if len(siblings) == 1 and siblings[0].rev() == hiderev:
+ siblings = []
+ return templateutil.mappinggenerator(_ctxsgen, args=(siblings,))
def difffeatureopts(req, ui, section):
diffopts = patch.difffeatureopts(ui, untrusted=True,
More information about the Mercurial-devel
mailing list