Mercurial > hgrepos > Python > libs > ConfigMix
diff configmix/config.py @ 398:b1f82b853290
Jailed configuration: implement more methods: getfirstvarl, getfirstvarl_s, getfirstvar and getfirstvar_s
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 19 Nov 2021 01:39:18 +0100 |
| parents | 88239f28415c |
| children | b45403d175a0 |
line wrap: on
line diff
--- a/configmix/config.py Thu Nov 18 22:29:05 2021 +0100 +++ b/configmix/config.py Fri Nov 19 01:39:18 2021 +0100 @@ -707,11 +707,43 @@ def getvarl(self, *path, **kwds): return self._base.getvarl(*(self._path + path), **kwds) + def getfirstvarl(self, *paths, **kwds): + real_paths = [] + for path in paths: + if isinstance(path, (list, tuple)): + real_paths.append(self._path + path) + elif isinstance(path, dict): + raise TypeError( + "a `dict' is not supported in a jailed configuration") + else: + raise TypeError("a paths item must be a list or tuple") + return self._base.getfirstvarl(*real_paths, **kwds) + def getvarl_s(self, *path, **kwds): return self._base.getvarl_s(*(self._path + path), **kwds) + def getfirstvarl_s(self, *paths, **kwds): + real_paths = [] + for path in paths: + if isinstance(path, (list, tuple)): + real_paths.append(self._path + path) + elif isinstance(path, dict): + raise TypeError( + "a `dict' is not supported in a jailed configuration") + else: + raise TypeError("a paths item must be a list or tuple") + return self._base.getfirstvarl_s(*real_paths, **kwds) + def getvar(self, varname, default=_MARKER): return self._base.getvar(self._pathstr + varname, default=default) + def getfirstvar(self, *varnames, **kwds): + real_varnames = [self._pathstr + vn for vn in varnames] + return self._base.getfirstvar(*real_varnames, **kwds) + def getvar_s(self, varname, default=_MARKER): return self._base.getvar_s(self._pathstr + varname, default=default) + + def getfirstvar_s(self, *varnames, **kwds): + real_varnames = [self._pathstr + vn for vn in varnames] + return self._base.getfirstvar_s(*real_varnames, **kwds)
