Commit 5177e8c6 by Victor Shnayder

Catch unicode errors in contextualize_text and deal with them.

parent 2e03a484
...@@ -28,7 +28,17 @@ def contextualize_text(text, context): # private ...@@ -28,7 +28,17 @@ def contextualize_text(text, context): # private
Does a substitution of those variables from the context ''' Does a substitution of those variables from the context '''
if not text: return text if not text: return text
for key in sorted(context, lambda x, y: cmp(len(y), len(x))): 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 return text
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment