diff mercurial/templater.py @ 31926:932241b8c644

templater: add dict() constructor It's troublesome to build JSON by template, so let's add programmatic way.
author Yuya Nishihara <yuya@tcha.org>
date Mon, 03 Apr 2017 22:54:06 +0900
parents 0f41f1e3c75c
children 2abc556dbe92
line wrap: on
line diff
--- a/mercurial/templater.py	Wed Apr 05 22:28:09 2017 +0900
+++ b/mercurial/templater.py	Mon Apr 03 22:54:06 2017 +0900
@@ -532,6 +532,14 @@
         # i18n: "date" is a keyword
         raise error.ParseError(_("date expects a date information"))
 
+@templatefunc('dict([key=value...])', argspec='**kwargs')
+def dict_(context, mapping, args):
+    """Construct a dict from key-value pairs."""
+    data = util.sortdict()
+    data.update((k, evalfuncarg(context, mapping, v))
+                for k, v in args['kwargs'].iteritems())
+    return templatekw.hybriddict(data)
+
 @templatefunc('diff([includepattern [, excludepattern]])')
 def diff(context, mapping, args):
     """Show a diff, optionally