From 5177e8c656480fcf12c22cc697c629e2c5ebd3f0 Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Thu, 18 Oct 2012 20:23:49 -0400 Subject: [PATCH] Catch unicode errors in contextualize_text and deal with them. --- common/lib/capa/capa/util.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/common/lib/capa/capa/util.py b/common/lib/capa/capa/util.py index 75bd9fb5bc..68cc23655a 100644 --- a/common/lib/capa/capa/util.py +++ b/common/lib/capa/capa/util.py @@ -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