File size: 577 Bytes
42da440 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import string
class SafeFormatter(string.Formatter):
def get_value(self, key, args, kwargs):
if isinstance(key, str):
return kwargs.get(key, "{" + key + "}")
else:
return super().get_value(key, args, kwargs)
def parse(self, format_string):
try:
return super().parse(format_string)
except ValueError:
return [(format_string, None, None, None)]
def safe_format(format_string, *args, **kwargs):
formatter = SafeFormatter()
return formatter.format(format_string, *args, **kwargs)
|