comparison configmix/config.py @ 419:079a82129110

Allow the empty variable name to retrieve the root configuration object
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 02 Dec 2021 09:22:22 +0100
parents bb5f11abd12a
children 84d4f82ffe59
comparison
equal deleted inserted replaced
418:bb5f11abd12a 419:079a82129110
341 See also :meth:`~.quote`. 341 See also :meth:`~.quote`.
342 342
343 """ 343 """
344 varns, varname = self._split_ns(varname) 344 varns, varname = self._split_ns(varname)
345 if not varns: 345 if not varns:
346 varnameparts = [ 346 if varname:
347 self.unquote(vp) for vp in varname.split(self._HIER_SEPARATOR) 347 varnameparts = [
348 ] 348 self.unquote(vp)
349 for vp in varname.split(self._HIER_SEPARATOR)
350 ]
351 else:
352 varnameparts = tuple()
349 else: 353 else:
350 varnameparts = (varname,) 354 varnameparts = (varname,)
351 return self.getvarl(*varnameparts, namespace=varns, default=default) 355 return self.getvarl(*varnameparts, namespace=varns, default=default)
352 356
353 def getkeys(self, varname): 357 def getkeys(self, varname):
504 508
505 If no default is given an unexisting `path` raises a `KeyError` 509 If no default is given an unexisting `path` raises a `KeyError`
506 else `default` is returned. 510 else `default` is returned.
507 """ 511 """
508 default = kwds.pop("default", _MARKER) 512 default = kwds.pop("default", _MARKER)
513 if not path:
514 return self
509 try: 515 try:
510 v = self.expand_if_reference(self[path[0]]) 516 v = self.expand_if_reference(self[path[0]])
511 for p in path[1:]: 517 for p in path[1:]:
512 v = self.expand_if_reference(v[p]) 518 v = self.expand_if_reference(v[p])
513 except TypeError: 519 except TypeError: