comparison configmix/config.py @ 531:be740ed67d16

Optimize jailed configuration somewhat: do not append empty tuples
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 20 Dec 2021 22:31:58 +0100
parents 28191d61b042
children 9546d38cd3f8
comparison
equal deleted inserted replaced
530:28191d61b042 531:be740ed67d16
1070 raise TypeError("a paths item must be a list or tuple") 1070 raise TypeError("a paths item must be a list or tuple")
1071 return self._base.getfirstvarl_s(*real_paths, **kwds) 1071 return self._base.getfirstvarl_s(*real_paths, **kwds)
1072 1072
1073 def getvar(self, varname, **kwds): 1073 def getvar(self, varname, **kwds):
1074 if varname: 1074 if varname:
1075 varnameparts = tuple([unquote(vp) 1075 varnameparts = self._path \
1076 for vp in varname.split(_HIER_SEPARATOR)]) 1076 + tuple([unquote(vp)
1077 else: 1077 for vp in varname.split(_HIER_SEPARATOR)])
1078 varnameparts = tuple() 1078 else:
1079 return self._base.getvarl(*(self._path + varnameparts), **kwds) 1079 varnameparts = self._path
1080 return self._base.getvarl(*varnameparts, **kwds)
1080 1081
1081 def getkeys(self, varname): 1082 def getkeys(self, varname):
1082 if varname: 1083 if varname:
1083 varnameparts = tuple([unquote(vp) 1084 varnameparts = self._path \
1084 for vp in varname.split(_HIER_SEPARATOR)]) 1085 + tuple([unquote(vp)
1085 else: 1086 for vp in varname.split(_HIER_SEPARATOR)])
1086 varnameparts = tuple() 1087 else:
1087 for k in self._base.getkeysl(*(self._path + varnameparts)): 1088 varnameparts = self._path
1089 for k in self._base.getkeysl(*varnameparts):
1088 yield k 1090 yield k
1089 1091
1090 def getfirstvar(self, *varnames, **kwds): 1092 def getfirstvar(self, *varnames, **kwds):
1091 real_varnames = [self._pathstr + vn for vn in varnames] 1093 real_varnames = [self._pathstr + vn for vn in varnames]
1092 return self._base.getfirstvar(*real_varnames, **kwds) 1094 return self._base.getfirstvar(*real_varnames, **kwds)
1093 1095
1094 def getvar_s(self, varname, **kwds): 1096 def getvar_s(self, varname, **kwds):
1095 if varname: 1097 if varname:
1096 varnameparts = tuple([unquote(vp) 1098 varnameparts = self._path \
1097 for vp in varname.split(_HIER_SEPARATOR)]) 1099 + tuple([unquote(vp)
1098 else: 1100 for vp in varname.split(_HIER_SEPARATOR)])
1099 varnameparts = tuple() 1101 else:
1100 return self._base.getvarl_s(*(self._path + varnameparts), **kwds) 1102 varnameparts = self._path
1103 return self._base.getvarl_s(*varnameparts, **kwds)
1101 1104
1102 def getfirstvar_s(self, *varnames, **kwds): 1105 def getfirstvar_s(self, *varnames, **kwds):
1103 real_varnames = [self._pathstr + vn for vn in varnames] 1106 real_varnames = [self._pathstr + vn for vn in varnames]
1104 return self._base.getfirstvar_s(*real_varnames, **kwds) 1107 return self._base.getfirstvar_s(*real_varnames, **kwds)
1105 1108