From 1278ce8686853ec67b1359435d9d2ae1981b5d54 Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 10 Oct 2016 16:12:23 +0200 Subject: encoding readline completer options in case Python2 unicode strings are involved --- ql/completer.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'ql/completer.py') diff --git a/ql/completer.py b/ql/completer.py index a9b7d8d..89920d4 100644 --- a/ql/completer.py +++ b/ql/completer.py @@ -1,4 +1,5 @@ import readline +import sys class Completer(object): @@ -10,8 +11,15 @@ class Completer(object): readline.set_completer_delims('') # allow options with whitespace readline.parse_and_bind('tab: complete') + def __encode_completion_string(self, s): + try: + return s.encode(sys.stdin.encoding) if isinstance(s, unicode) else s + except NameError: # Python 3.x does not have a 'unicode' type + pass + return s + def __init__(self, options): - self.options = options + self.options = [self.__encode_completion_string(s) for s in options] def complete(self, text, state): text = text.lower() -- cgit v1.2.3