Mercurial > hgrepos > Python > libs > ConfigMix
diff configmix/config.py @ 610:764d4185c76a
C-implementations of Configuration.getvarl_s() and Configuration.getvar()
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 12 Jan 2022 00:44:02 +0100 |
| parents | e55a42144ba9 |
| children | 4499e9b4855d |
line wrap: on
line diff
--- a/configmix/config.py Tue Jan 11 21:17:06 2022 +0100 +++ b/configmix/config.py Wed Jan 12 00:44:02 2022 +0100 @@ -33,7 +33,8 @@ try: from ._speedups import (fast_unquote, fast_quote, fast_pathstr2path, _fast_split_ns, _fast_split_filters, - _fast_getvarl, _fast_getvar_s, + _fast_getvarl, _fast_getvarl_s, + _fast_getvar, _fast_getvar_s, _fast_interpolate_variables, _sync_MISSING, _sync_MARKER) except ImportError: @@ -43,6 +44,8 @@ _fast_split_ns = None _fast_split_filters = None _fast_getvarl = None + _fast_getvarl_s = None + _fast_getvar = None _fast_getvar_s = None _fast_interpolate_variables = None _sync_MISSING = None @@ -607,7 +610,7 @@ else: return default - def getvar(self, varname, default=_MARKER): + def py_getvar(self, varname, default=_MARKER): """Get a variable of the form ``[ns:][[key1.]key2.]name`` - including variables from other namespaces. @@ -625,6 +628,17 @@ else: return self.getvarl(varname, namespace=varns, default=default) + if _fast_getvar: + + def fast_getvar(self, varname, default=_MARKER): + return _fast_getvar(self, varname, default); + + getvar = fast_getvar + + else: + + getvar = py_getvar + def getkeys(self, varname): """Yield all the keys of a variable value. @@ -656,7 +670,7 @@ else: return default - def getvarl_s(self, *path, **kwds): + def py_getvarl_s(self, *path, **kwds): """Get a variable - including variables from other namespaces. `path` and `namespace` are interpreted as in @@ -678,6 +692,17 @@ else: return default + if _fast_getvarl_s: + + def fast_getvarl_s(self, *path, **kwds): + return _fast_getvarl_s(self, path, **kwds) + + getvarl_s = fast_getvarl_s + + else: + + getvarl_s = py_getvarl_s + def getfirstvarl_s(self, *paths, **kwds): """A variant of :meth:`~.getfirstvarl` that does variable interpolation.
