diff -r 7f6b8ec691e3 -r f97a0bcfd7a1 mercurial/templater.py --- a/mercurial/templater.py Sun Apr 03 23:18:30 2016 +0900 +++ b/mercurial/templater.py Sun Apr 03 23:26:48 2016 +0900 @@ -1016,10 +1016,9 @@ class templater(object): - def __init__(self, mapfile, filters=None, defaults=None, cache=None, + def __init__(self, filters=None, defaults=None, cache=None, minchunk=1024, maxchunk=65536): '''set up template engine. - mapfile is name of file to read map definitions from. filters is dict of functions. each transforms a value into another. defaults is dict of default map definitions.''' if filters is None: @@ -1036,11 +1035,15 @@ self.minchunk, self.maxchunk = minchunk, maxchunk self.ecache = {} - if not mapfile: - return + @classmethod + def frommapfile(cls, mapfile, filters=None, defaults=None, cache=None, + minchunk=1024, maxchunk=65536): + """Create templater from the specified map file""" + t = cls(filters, defaults, cache, minchunk, maxchunk) cache, tmap = _readmapfile(mapfile) - self.cache.update(cache) - self.map = tmap + t.cache.update(cache) + t.map = tmap + return t def __contains__(self, key): return key in self.cache or key in self.map