comparison 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
comparison
equal deleted inserted replaced
397:88239f28415c 398:b1f82b853290
705 self._base.getvarl(*self._path) 705 self._base.getvarl(*self._path)
706 706
707 def getvarl(self, *path, **kwds): 707 def getvarl(self, *path, **kwds):
708 return self._base.getvarl(*(self._path + path), **kwds) 708 return self._base.getvarl(*(self._path + path), **kwds)
709 709
710 def getfirstvarl(self, *paths, **kwds):
711 real_paths = []
712 for path in paths:
713 if isinstance(path, (list, tuple)):
714 real_paths.append(self._path + path)
715 elif isinstance(path, dict):
716 raise TypeError(
717 "a `dict' is not supported in a jailed configuration")
718 else:
719 raise TypeError("a paths item must be a list or tuple")
720 return self._base.getfirstvarl(*real_paths, **kwds)
721
710 def getvarl_s(self, *path, **kwds): 722 def getvarl_s(self, *path, **kwds):
711 return self._base.getvarl_s(*(self._path + path), **kwds) 723 return self._base.getvarl_s(*(self._path + path), **kwds)
712 724
725 def getfirstvarl_s(self, *paths, **kwds):
726 real_paths = []
727 for path in paths:
728 if isinstance(path, (list, tuple)):
729 real_paths.append(self._path + path)
730 elif isinstance(path, dict):
731 raise TypeError(
732 "a `dict' is not supported in a jailed configuration")
733 else:
734 raise TypeError("a paths item must be a list or tuple")
735 return self._base.getfirstvarl_s(*real_paths, **kwds)
736
713 def getvar(self, varname, default=_MARKER): 737 def getvar(self, varname, default=_MARKER):
714 return self._base.getvar(self._pathstr + varname, default=default) 738 return self._base.getvar(self._pathstr + varname, default=default)
715 739
740 def getfirstvar(self, *varnames, **kwds):
741 real_varnames = [self._pathstr + vn for vn in varnames]
742 return self._base.getfirstvar(*real_varnames, **kwds)
743
716 def getvar_s(self, varname, default=_MARKER): 744 def getvar_s(self, varname, default=_MARKER):
717 return self._base.getvar_s(self._pathstr + varname, default=default) 745 return self._base.getvar_s(self._pathstr + varname, default=default)
746
747 def getfirstvar_s(self, *varnames, **kwds):
748 real_varnames = [self._pathstr + vn for vn in varnames]
749 return self._base.getfirstvar_s(*real_varnames, **kwds)