Catch unicode errors in contextualize_text and deal with them.

This commit is contained in:
Victor Shnayder
2012-10-18 20:23:49 -04:00
parent 2e03a4846c
commit 5177e8c656

View File

@@ -28,7 +28,17 @@ def contextualize_text(text, context): # private
Does a substitution of those variables from the context '''
if not text: return text
for key in sorted(context, lambda x, y: cmp(len(y), len(x))):
text = text.replace('$' + key, str(context[key]))
# TODO (vshnayder): This whole replacement thing is a big hack
# right now--context contains not just just the vars defined
# in the program, but also e.g. a reference to the numpy
# module. Should be a separate dict of variables that are
# should be replaced.
if '$' + key in text:
try:
s = str(context[key])
except UnicodeEncodeError:
s = context[key].encode('utf8', errors='ignore')
text = text.replace('$' + key, s)
return text