Mercurial > public > mercurial-scm > hg-stable
diff mercurial/templatekw.py @ 36662:034a07e60e98
templater: allow dynamically switching the default dict/list formatting
'%s' doesn't work nicely on Python 3 because many Python types don't implement
__bytes__().
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 01 Mar 2018 08:07:22 -0500 |
parents | c9dcc379e2dc |
children | cafd0586876b |
line wrap: on
line diff
--- a/mercurial/templatekw.py Sat Mar 03 21:01:07 2018 +0530 +++ b/mercurial/templatekw.py Thu Mar 01 08:07:22 2018 -0500 @@ -97,13 +97,17 @@ def itermaps(self): yield self.tomap() -def hybriddict(data, key='key', value='value', fmt='%s=%s', gen=None): +def hybriddict(data, key='key', value='value', fmt=None, gen=None): """Wrap data to support both dict-like and string-like operations""" + if fmt is None: + fmt = '%s=%s' return _hybrid(gen, data, lambda k: {key: k, value: data[k]}, lambda k: fmt % (k, data[k])) -def hybridlist(data, name, fmt='%s', gen=None): +def hybridlist(data, name, fmt=None, gen=None): """Wrap data to support both list-like and string-like operations""" + if fmt is None: + fmt = '%s' return _hybrid(gen, data, lambda x: {name: x}, lambda x: fmt % x) def unwraphybrid(thing): @@ -137,7 +141,7 @@ return _mappable(None, key, value, makemap) def compatdict(context, mapping, name, data, key='key', value='value', - fmt='%s=%s', plural=None, separator=' '): + fmt=None, plural=None, separator=' '): """Wrap data like hybriddict(), but also supports old-style list template This exists for backward compatibility with the old-style template. Use @@ -148,7 +152,7 @@ f = _showlist(name, c, t, mapping, plural, separator) return hybriddict(data, key=key, value=value, fmt=fmt, gen=f) -def compatlist(context, mapping, name, data, element=None, fmt='%s', +def compatlist(context, mapping, name, data, element=None, fmt=None, plural=None, separator=' '): """Wrap data like hybridlist(), but also supports old-style list template @@ -160,7 +164,7 @@ return hybridlist(data, name=element or name, fmt=fmt, gen=f) def showdict(name, data, mapping, plural=None, key='key', value='value', - fmt='%s=%s', separator=' '): + fmt=None, separator=' '): ui = mapping.get('ui') if ui: ui.deprecwarn("templatekw.showdict() is deprecated, use compatdict()",