comparison mercurial/formatter.py @ 31924:21f129354dd0

templatekw: add public function to wrap a list by _hybrid object
author Yuya Nishihara <yuya@tcha.org>
date Wed, 05 Apr 2017 22:25:36 +0900
parents e6eb86b154c5
children 5b2241e84982
comparison
equal deleted inserted replaced
31923:68c910fa9ee2 31924:21f129354dd0
327 def formatlist(data, name, fmt, sep): 327 def formatlist(data, name, fmt, sep):
328 '''build object that can be evaluated as either plain string or list''' 328 '''build object that can be evaluated as either plain string or list'''
329 data = list(data) 329 data = list(data)
330 def f(): 330 def f():
331 yield _plainconverter.formatlist(data, name, fmt, sep) 331 yield _plainconverter.formatlist(data, name, fmt, sep)
332 return templatekw._hybrid(f(), data, lambda x: {name: x}, 332 return templatekw.hybridlist(data, name=name, fmt=fmt, gen=f())
333 lambda d: fmt % d[name])
334 333
335 class templateformatter(baseformatter): 334 class templateformatter(baseformatter):
336 def __init__(self, ui, out, topic, opts): 335 def __init__(self, ui, out, topic, opts):
337 baseformatter.__init__(self, ui, topic, opts, _templateconverter) 336 baseformatter.__init__(self, ui, topic, opts, _templateconverter)
338 self._out = out 337 self._out = out