comparison configmix/config.py @ 442:94cf5a8722d6

Add proper .get() support for jailed and unjailed configurations
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 Dec 2021 03:00:11 +0100
parents 9d20fab53a19
children 23941c014130
comparison
equal deleted inserted replaced
441:9d20fab53a19 442:94cf5a8722d6
244 """ 244 """
245 if isinstance(key, (tuple, list)): 245 if isinstance(key, (tuple, list)):
246 return self.getvarl_s(*key) 246 return self.getvarl_s(*key)
247 else: 247 else:
248 return self.getvarl_s(key) 248 return self.getvarl_s(key)
249
250 def get(self, key, default=None):
251 """Mapping interface that forwards to :meth:`~.getvarl_s`
252
253 """
254 if isinstance(key, (tuple, list)):
255 return self.getvarl_s(*key, default=default)
256 else:
257 return self.getvarl_s(key, default=default)
249 258
250 def __contains__(self, key): 259 def __contains__(self, key):
251 if isinstance(key, (tuple, list)): 260 if isinstance(key, (tuple, list)):
252 # No namespace and quoting support here 261 # No namespace and quoting support here
253 try: 262 try:
839 elif isinstance(key, list): 848 elif isinstance(key, list):
840 return self._base.getvarl_s(*(self._path + tuple(key))) 849 return self._base.getvarl_s(*(self._path + tuple(key)))
841 else: 850 else:
842 return self._base.getvarl_s(*(self._path + (key, ))) 851 return self._base.getvarl_s(*(self._path + (key, )))
843 852
853 def get(self, key, default=None):
854 if isinstance(key, tuple):
855 return self._base.get(self._path + key, default=default)
856 elif isinstance(key, list):
857 return self._base.get(self._path + tuple(key), default=default)
858 else:
859 return self._base.get(self._path + (key, ), default=default)
860
844 def __contains__(self, key): 861 def __contains__(self, key):
845 if isinstance(key, tuple): 862 if isinstance(key, tuple):
846 return (self._path + key) in self._base 863 return (self._path + key) in self._base
847 elif isinstance(key, list): 864 elif isinstance(key, list):
848 return (self._path + tuple(key)) in self._base 865 return (self._path + tuple(key)) in self._base