Mercurial > hgrepos > Python > libs > ConfigMix
changeset 528:54a8d020f5d5
Apply None and Empty interpolation filters only on KeyErrors
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Mon, 20 Dec 2021 13:39:11 +0100 |
| parents | 08924499db3c |
| children | 9976ff66c439 |
| files | configmix/config.py |
| diffstat | 1 files changed, 16 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/configmix/config.py Mon Dec 20 13:12:14 2021 +0100 +++ b/configmix/config.py Mon Dec 20 13:39:11 2021 +0100 @@ -662,15 +662,12 @@ if sep: filters = filters.strip() if filters: - filters = filters.split(_FILTER_SEPARATOR) return (name.rstrip(), - filters, - NONE_FILTER in filters, - EMPTY_FILTER in filters) + filters.split(_FILTER_SEPARATOR)) else: - return (name.rstrip(), [], False, False) + return (name.rstrip(), []) else: - return (name, [], False, False) + return (name, []) def _lookupvar(self, *path): """Lookup a variable within a hierarchy. @@ -790,25 +787,22 @@ if end < 0: rest = start break - varname, filters, none_filter, empty_filter = self._split_filters( + varname, filters = self._split_filters( s[start+2:end]) try: - if none_filter: - varvalue = self._apply_filters( - filters, self.getvar_s(varname, default=None)) - elif empty_filter: - varvalue = self._apply_filters( - filters, self.getvar_s(varname, - default=_EMPTY_STR)) + varvalue = self.getvar_s(varname) + except KeyError: + if NONE_FILTER in filters: + varvalue = None + elif EMPTY_FILTER in filters: + varvalue = _EMPTY_STR else: - varvalue = self._apply_filters( - filters, self.getvar_s(varname)) - except KeyError: - warnings.warn("Cannot expand variable %r in string " - "%r" % (varname, s, ), - UserWarning, - stacklevel=1) - raise + warnings.warn("Cannot expand variable %r in string " + "%r" % (varname, s, ), + UserWarning, + stacklevel=1) + raise + varvalue = self._apply_filters(filters, varvalue) rest = end + 2 # # Dont apply and type conversions to the variable value if
