# HG changeset patch # User Franz Glasner # Date 1640003951 -3600 # Node ID 54a8d020f5d527c781e8d8956d6751377732a5c6 # Parent 08924499db3c9d72883219f7f9c4b4e58f87e49d Apply None and Empty interpolation filters only on KeyErrors diff -r 08924499db3c -r 54a8d020f5d5 configmix/config.py --- 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