Mercurial > public > mercurial-scm > hg-stable
diff mercurial/formatter.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 | c6061cadb400 |
children | cafd0586876b |
line wrap: on
line diff
--- a/mercurial/formatter.py Sat Mar 03 21:01:07 2018 +0530 +++ b/mercurial/formatter.py Thu Mar 01 08:07:22 2018 -0500 @@ -176,10 +176,10 @@ def formatdate(self, date, fmt='%a %b %d %H:%M:%S %Y %1%2'): '''convert date tuple to appropriate format''' return self._converter.formatdate(date, fmt) - def formatdict(self, data, key='key', value='value', fmt='%s=%s', sep=' '): + def formatdict(self, data, key='key', value='value', fmt=None, sep=' '): '''convert dict or key-value pairs to appropriate dict format''' return self._converter.formatdict(data, key, value, fmt, sep) - def formatlist(self, data, name, fmt='%s', sep=' '): + def formatlist(self, data, name, fmt=None, sep=' '): '''convert iterable to appropriate list format''' # name is mandatory argument for now, but it could be optional if # we have default template keyword, e.g. {item} @@ -248,10 +248,14 @@ @staticmethod def formatdict(data, key, value, fmt, sep): '''stringify key-value pairs separated by sep''' + if fmt is None: + fmt = '%s=%s' return sep.join(fmt % (k, v) for k, v in _iteritems(data)) @staticmethod def formatlist(data, name, fmt, sep): '''stringify iterable separated by sep''' + if fmt is None: + fmt = '%s' return sep.join(fmt % e for e in data) class plainformatter(baseformatter):