comparison configmix/config.py @ 441:9d20fab53a19

FIX: Handle "list"-type keys in __contains__ and __getitem__ properly: convert to tuples for contatenation with tuple
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 Dec 2021 02:20:54 +0100
parents f297c23f78f0
children 94cf5a8722d6
comparison
equal deleted inserted replaced
440:f297c23f78f0 441:9d20fab53a19
832 832
833 def __getitem__(self, key): 833 def __getitem__(self, key):
834 """Mapping interface that forwards to :meth:`~.getvarl_s` 834 """Mapping interface that forwards to :meth:`~.getvarl_s`
835 835
836 """ 836 """
837 if isinstance(key, (tuple, list)): 837 if isinstance(key, tuple):
838 return self._base.getvarl_s(*(self._path + key)) 838 return self._base.getvarl_s(*(self._path + key))
839 elif isinstance(key, list):
840 return self._base.getvarl_s(*(self._path + tuple(key)))
839 else: 841 else:
840 return self._base.getvarl_s(*(self._path + (key, ))) 842 return self._base.getvarl_s(*(self._path + (key, )))
841 843
842 def __contains__(self, key): 844 def __contains__(self, key):
843 if isinstance(key, (tuple, list)): 845 if isinstance(key, tuple):
844 return (self._path + key) in self._base 846 return (self._path + key) in self._base
847 elif isinstance(key, list):
848 return (self._path + tuple(key)) in self._base
845 else: 849 else:
846 return (self._path + (key, )) in self._base 850 return (self._path + (key, )) in self._base
847 851
848 def getvarl(self, *path, **kwds): 852 def getvarl(self, *path, **kwds):
849 return self._base.getvarl(*(self._path + path), **kwds) 853 return self._base.getvarl(*(self._path + path), **kwds)