Patchwork [2,of,7] templater: pass context to itermaps() for future extension

login
register
mail settings
Submitter Yuya Nishihara
Date April 4, 2018, 2:48 p.m.
Message ID <1dba3dd3243a9fd0429c.1522853333@mimosa>
Download mbox | patch
Permalink /patch/30258/
State Accepted
Headers show

Comments

Yuya Nishihara - April 4, 2018, 2:48 p.m.
# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1521383090 -32400
#      Sun Mar 18 23:24:50 2018 +0900
# Node ID 1dba3dd3243a9fd0429c2abc28271b17f1e4c097
# Parent  e4dcb782c79b3d7c286a398bc51646c244e0ce9e
templater: pass context to itermaps() for future extension

Unlike show() and tovalue(), a base mapping isn't passed to itermaps()
since it is the function to generate a partial mapping.

Patch

diff --git a/mercurial/templateutil.py b/mercurial/templateutil.py
--- a/mercurial/templateutil.py
+++ b/mercurial/templateutil.py
@@ -38,7 +38,7 @@  class wrapped(object):
     __metaclass__ = abc.ABCMeta
 
     @abc.abstractmethod
-    def itermaps(self):
+    def itermaps(self, context):
         """Yield each template mapping"""
 
     @abc.abstractmethod
@@ -88,7 +88,7 @@  class hybrid(wrapped):
             if i > 0:
                 yield ' '
             yield self.joinfmt(x)
-    def itermaps(self):
+    def itermaps(self, context):
         makemap = self._makemap
         for x in self._values:
             yield makemap(x)
@@ -139,7 +139,7 @@  class mappable(wrapped):
     def tomap(self):
         return self._makemap(self._key)
 
-    def itermaps(self):
+    def itermaps(self, context):
         yield self.tomap()
 
     def show(self, context, mapping):
@@ -498,7 +498,7 @@  def runmap(context, mapping, data):
     darg, targ = data
     d = evalrawexp(context, mapping, darg)
     if isinstance(d, wrapped):
-        diter = d.itermaps()
+        diter = d.itermaps(context)
     else:
         try:
             diter = iter(d)