Mercurial > hgrepos > Python > libs > ConfigMix
comparison configmix/config.py @ 439:bd27da55483a
Optimized __contains__() implementation for jailed and unjailed configurations
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 10 Dec 2021 02:15:00 +0100 |
| parents | 37424d1f8dcf |
| children | f297c23f78f0 |
comparison
equal
deleted
inserted
replaced
| 438:37424d1f8dcf | 439:bd27da55483a |
|---|---|
| 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 __contains__(self, key): | |
| 251 if isinstance(key, (tuple, list)): | |
| 252 # No namespace and quoting support here | |
| 253 try: | |
| 254 self._lookupvar(*key) | |
| 255 except KeyError: | |
| 256 return False | |
| 257 else: | |
| 258 return True | |
| 259 else: | |
| 260 return super(Configuration, self).__contains__(key) | |
| 249 | 261 |
| 250 def getvarl(self, *path, **kwds): | 262 def getvarl(self, *path, **kwds): |
| 251 """Get a variable where the hierarchy is given in `path` as sequence | 263 """Get a variable where the hierarchy is given in `path` as sequence |
| 252 and the namespace is given in the `namespace` keyword argument. | 264 and the namespace is given in the `namespace` keyword argument. |
| 253 | 265 |
| 825 if isinstance(key, (tuple, list)): | 837 if isinstance(key, (tuple, list)): |
| 826 return self.getvarl_s(*key) | 838 return self.getvarl_s(*key) |
| 827 else: | 839 else: |
| 828 return self.getvarl_s(key) | 840 return self.getvarl_s(key) |
| 829 | 841 |
| 842 def __contains__(self, key): | |
| 843 if isinstance(key, (tuple, list)): | |
| 844 return (self._path + key) in self._base | |
| 845 else: | |
| 846 return (self._path + (key, )) in self._base | |
| 847 | |
| 830 def getvarl(self, *path, **kwds): | 848 def getvarl(self, *path, **kwds): |
| 831 return self._base.getvarl(*(self._path + path), **kwds) | 849 return self._base.getvarl(*(self._path + path), **kwds) |
| 832 | 850 |
| 833 def getkeysl(self, *path, **kwds): | 851 def getkeysl(self, *path, **kwds): |
| 834 for k in self._base.getkeysl(*(self._path + path), **kwds): | 852 for k in self._base.getkeysl(*(self._path + path), **kwds): |
