comparison mercurial/templateutil.py @ 37277:8c84dc8264dc

templater: mark .gen as a private attribute
author Yuya Nishihara <yuya@tcha.org>
date Sat, 17 Mar 2018 20:56:42 +0900
parents 83e1bbd48991
children b4630e332a99
comparison
equal deleted inserted replaced
37276:45987e2b64f0 37277:8c84dc8264dc
59 - "{files|json}" 59 - "{files|json}"
60 """ 60 """
61 61
62 def __init__(self, gen, values, makemap, joinfmt, keytype=None): 62 def __init__(self, gen, values, makemap, joinfmt, keytype=None):
63 if gen is not None: 63 if gen is not None:
64 self.gen = gen # generator or function returning generator 64 self._gen = gen # generator or function returning generator
65 self._values = values 65 self._values = values
66 self._makemap = makemap 66 self._makemap = makemap
67 self.joinfmt = joinfmt 67 self.joinfmt = joinfmt
68 self.keytype = keytype # hint for 'x in y' where type(x) is unresolved 68 self.keytype = keytype # hint for 'x in y' where type(x) is unresolved
69 def gen(self): 69
70 def _gen(self):
70 """Default generator to stringify this as {join(self, ' ')}""" 71 """Default generator to stringify this as {join(self, ' ')}"""
71 for i, x in enumerate(self._values): 72 for i, x in enumerate(self._values):
72 if i > 0: 73 if i > 0:
73 yield ' ' 74 yield ' '
74 yield self.joinfmt(x) 75 yield self.joinfmt(x)
77 for x in self._values: 78 for x in self._values:
78 yield makemap(x) 79 yield makemap(x)
79 80
80 def show(self, context, mapping): 81 def show(self, context, mapping):
81 # TODO: switch gen to (context, mapping) API? 82 # TODO: switch gen to (context, mapping) API?
82 gen = self.gen 83 gen = self._gen
83 if callable(gen): 84 if callable(gen):
84 return gen() 85 return gen()
85 return gen 86 return gen
86 87
87 def __contains__(self, x): 88 def __contains__(self, x):
111 the inner object. 112 the inner object.
112 """ 113 """
113 114
114 def __init__(self, gen, key, value, makemap): 115 def __init__(self, gen, key, value, makemap):
115 if gen is not None: 116 if gen is not None:
116 self.gen = gen # generator or function returning generator 117 self._gen = gen # generator or function returning generator
117 self._key = key 118 self._key = key
118 self._value = value # may be generator of strings 119 self._value = value # may be generator of strings
119 self._makemap = makemap 120 self._makemap = makemap
120 121
121 def gen(self): 122 def _gen(self):
122 yield pycompat.bytestr(self._value) 123 yield pycompat.bytestr(self._value)
123 124
124 def tomap(self): 125 def tomap(self):
125 return self._makemap(self._key) 126 return self._makemap(self._key)
126 127
127 def itermaps(self): 128 def itermaps(self):
128 yield self.tomap() 129 yield self.tomap()
129 130
130 def show(self, context, mapping): 131 def show(self, context, mapping):
131 # TODO: switch gen to (context, mapping) API? 132 # TODO: switch gen to (context, mapping) API?
132 gen = self.gen 133 gen = self._gen
133 if callable(gen): 134 if callable(gen):
134 return gen() 135 return gen()
135 return gen 136 return gen
136 137
137 def hybriddict(data, key='key', value='value', fmt=None, gen=None): 138 def hybriddict(data, key='key', value='value', fmt=None, gen=None):