comparison configmix/config.py @ 25:baf862cb4860

Handle "None" variable values when substituting
author Franz Glasner <f.glasner@feldmann-mg.com>
date Thu, 10 Mar 2016 16:24:45 +0100
parents fa65adab0b71
children 17af7a78710c
comparison
equal deleted inserted replaced
24:fa65adab0b71 25:baf862cb4860
152 end = s.find(self._ENDTOK, start) 152 end = s.find(self._ENDTOK, start)
153 if end < 0: 153 if end < 0:
154 return s 154 return s
155 varname, filters = self._split_filters(s[start+2:end]) 155 varname, filters = self._split_filters(s[start+2:end])
156 varvalue = self._apply_filters(filters, self.getvar_s(varname)) 156 varvalue = self._apply_filters(filters, self.getvar_s(varname))
157 if varvalue is None:
158 varvalue = u("")
157 replaced = u(b"{0}{1}").format(s[:start], varvalue) 159 replaced = u(b"{0}{1}").format(s[:start], varvalue)
158 s = u(b"{0}{1}").format(replaced, s[end+2:]) 160 s = u(b"{0}{1}").format(replaced, s[end+2:])
159 # don't re-evaluate because `self.getvar_s()` expands already 161 # don't re-evaluate because `self.getvar_s()` expands already
160 start = s.find(self._STARTTOK, len(replaced)) 162 start = s.find(self._STARTTOK, len(replaced))
161 return s 163 return s