mercurial/templatekw.py
changeset 36634 cafd0586876b
parent 36633 034a07e60e98
child 36921 32f9b7e3f056
equal deleted inserted replaced
36633:034a07e60e98 36634:cafd0586876b
    97     def itermaps(self):
    97     def itermaps(self):
    98         yield self.tomap()
    98         yield self.tomap()
    99 
    99 
   100 def hybriddict(data, key='key', value='value', fmt=None, gen=None):
   100 def hybriddict(data, key='key', value='value', fmt=None, gen=None):
   101     """Wrap data to support both dict-like and string-like operations"""
   101     """Wrap data to support both dict-like and string-like operations"""
       
   102     prefmt = pycompat.identity
   102     if fmt is None:
   103     if fmt is None:
   103         fmt = '%s=%s'
   104         fmt = '%s=%s'
       
   105         prefmt = pycompat.bytestr
   104     return _hybrid(gen, data, lambda k: {key: k, value: data[k]},
   106     return _hybrid(gen, data, lambda k: {key: k, value: data[k]},
   105                    lambda k: fmt % (k, data[k]))
   107                    lambda k: fmt % (prefmt(k), prefmt(data[k])))
   106 
   108 
   107 def hybridlist(data, name, fmt=None, gen=None):
   109 def hybridlist(data, name, fmt=None, gen=None):
   108     """Wrap data to support both list-like and string-like operations"""
   110     """Wrap data to support both list-like and string-like operations"""
       
   111     prefmt = pycompat.identity
   109     if fmt is None:
   112     if fmt is None:
   110         fmt = '%s'
   113         fmt = '%s'
   111     return _hybrid(gen, data, lambda x: {name: x}, lambda x: fmt % x)
   114         prefmt = pycompat.bytestr
       
   115     return _hybrid(gen, data, lambda x: {name: x}, lambda x: fmt % prefmt(x))
   112 
   116 
   113 def unwraphybrid(thing):
   117 def unwraphybrid(thing):
   114     """Return an object which can be stringified possibly by using a legacy
   118     """Return an object which can be stringified possibly by using a legacy
   115     template"""
   119     template"""
   116     gen = getattr(thing, 'gen', None)
   120     gen = getattr(thing, 'gen', None)