From 817ab133d0c8d77186f6457d859903b0f107927a Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Sat, 10 Nov 2012 20:45:11 +0100 Subject: [PATCH] Fix the failing multibyte source test The optional source_encoding optional argument is added to jedi.api.Script.__init__. --- jedi/api.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jedi/api.py b/jedi/api.py index aba7fbee..2e0e3263 100644 --- a/jedi/api.py +++ b/jedi/api.py @@ -60,9 +60,17 @@ class Script(object): :type col: int :param source_path: The path in the os, the current module is in. :type source_path: string or None + :param source_encoding: encoding for decoding `source`, when it + is not a `unicode` object. + :type source_encoding: string """ - def __init__(self, source, line, column, source_path): - source = unicode(source) + def __init__(self, source, line, column, source_path, + source_encoding='utf-8'): + try: + source = unicode(source, source_encoding, 'replace') + # Use 'replace' over 'ignore' to hold code structure. + except TypeError: # `source` is already a unicode object + pass self.pos = line, column self.module = modules.ModuleWithCursor(source_path, source=source, position=self.pos)