comparison mercurial/templater.py @ 45245:8ec3062b7047

templater: switch to lower-level config.parse() in _readmapfile() I hope to modify this code to also work with resources loaded from memory (for PyOxidizer support). For that, we'll need to handle the lookup of relative `%include` path (not joined with the base directory of the containing file). This patch prepares for that by using `config.parse()` instead of `config.read()`, since the latter expects a file in the file system. As it happens, this change also lets us clean up the `config` class to not need the `_includepaths` field. That will happen next. Differential Revision: https://phab.mercurial-scm.org/D8791
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 21 Jul 2020 21:59:12 -0700
parents 4e9b39033d3f
children 4ccd5ec565c2
comparison
equal deleted inserted replaced
45244:f7f142d74df3 45245:8ec3062b7047
822 hint=_(b"available styles: %s") % stylelist(), 822 hint=_(b"available styles: %s") % stylelist(),
823 ) 823 )
824 824
825 base = os.path.dirname(mapfile) 825 base = os.path.dirname(mapfile)
826 conf = config.config(includepaths=[templatedir()]) 826 conf = config.config(includepaths=[templatedir()])
827 conf.read(mapfile, remap={b'': b'templates'}) 827
828 def include(rel, abs, remap, sections):
829 data = util.posixfile(abs, b'rb').read()
830 conf.parse(abs, data, sections=sections, remap=remap, include=include)
831
832 data = util.posixfile(mapfile, b'rb').read()
833 conf.parse(mapfile, data, remap={b'': b'templates'}, include=include)
828 834
829 cache = {} 835 cache = {}
830 tmap = {} 836 tmap = {}
831 aliases = [] 837 aliases = []
832 838