comparison configmix/config.py @ 349:83f76a41cf7c

Implement a special filter named "None" that suppresses "KeyErrors" from interpolation lookups and returns a Python "None" instead
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 24 Jun 2021 09:33:22 +0200
parents a04cd5dbcd2c
children 9d729c479dc2
comparison
equal deleted inserted replaced
348:396d8d9aaead 349:83f76a41cf7c
343 end = s.find(self._ENDTOK, start) 343 end = s.find(self._ENDTOK, start)
344 if end < 0: 344 if end < 0:
345 return s 345 return s
346 varname, filters = self._split_filters(s[start+2:end]) 346 varname, filters = self._split_filters(s[start+2:end])
347 try: 347 try:
348 varvalue = self._apply_filters(filters, self.getvar_s(varname)) 348 if "None" in filters:
349 varvalue = self._apply_filters(
350 filters, self.getvar_s(varname, default=None))
351 else:
352 varvalue = self._apply_filters(
353 filters, self.getvar_s(varname))
349 except KeyError: 354 except KeyError:
350 warnings.warn("Cannot expand variable %r in string " 355 warnings.warn("Cannot expand variable %r in string "
351 "%r" % (varname, s, ), 356 "%r" % (varname, s, ),
352 UserWarning, 357 UserWarning,
353 stacklevel=1) 358 stacklevel=1)