# HG changeset patch # User Yuya Nishihara <y...@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, _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel