Mercurial > hgrepos > Python > libs > ConfigMix
changeset 428:090a25f36a3d
FIX: Allow jailed configurations to use correctly use base configurations that use a different "default" marker object.
Jailed configurations assumed that their "default" marker object is
identical to the "default" marker object in the unjailed base
configuration. This is not always true, especially if
"_JailedConfiguration.rebind()" is used.
Removed the explicit "default" keyword argument and passed the complete
keywords argument dictionary to the base instead. This triggers correct
default handling in the base.
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Thu, 09 Dec 2021 13:02:17 +0100 |
| parents | 40be1d25ff1c |
| children | 5b928606fa00 |
| files | CHANGES.txt configmix/config.py |
| diffstat | 2 files changed, 14 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/CHANGES.txt Tue Dec 07 15:43:09 2021 +0100 +++ b/CHANGES.txt Thu Dec 09 13:02:17 2021 +0100 @@ -12,6 +12,16 @@ Pre-1.0 Series -------------- +n/a (not yet) +~~~~~~~~~~~~~ + +- **[bugfix]** + Jailed configurations assumed that their "default" marker object is + identical to the "default" marker object in the unjailed base + configuration. This is not always true, especially if + :py:meth:`~configmix.config._JailedConfiguration.rebind` is used. + + 0.18 (2021-12-02) ~~~~~~~~~~~~~~~~~
--- a/configmix/config.py Tue Dec 07 15:43:09 2021 +0100 +++ b/configmix/config.py Thu Dec 09 13:02:17 2021 +0100 @@ -842,8 +842,8 @@ raise TypeError("a paths item must be a list or tuple") return self._base.getfirstvarl_s(*real_paths, **kwds) - def getvar(self, varname, default=_MARKER): - return self._base.getvar(self._pathstr + varname, default=default) + def getvar(self, varname, **kwds): + return self._base.getvar(self._pathstr + varname, **kwds) def getkeys(self, varname): for k in self._base.getkeys(self._pathstr + varname): @@ -853,8 +853,8 @@ real_varnames = [self._pathstr + vn for vn in varnames] return self._base.getfirstvar(*real_varnames, **kwds) - def getvar_s(self, varname, default=_MARKER): - return self._base.getvar_s(self._pathstr + varname, default=default) + def getvar_s(self, varname, **kwds): + return self._base.getvar_s(self._pathstr + varname, **kwds) def getfirstvar_s(self, *varnames, **kwds): real_varnames = [self._pathstr + vn for vn in varnames]
