logo

searx

My custom branche(s) on searx, a meta-search engine
commit: 3d6c67951a22b1a0ad7b0e2fad877538f1a16169
parent: 9ab8536479f30960e79ed165369e97c635ed1be7
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Tue, 21 Nov 2017 16:49:28 +0100

[fix] resurrect csv output in py2

Diffstat:

Msearx/utils.py22+++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/searx/utils.py b/searx/utils.py @@ -29,6 +29,9 @@ except: if sys.version_info[0] == 3: unichr = chr unicode = str + IS_PY2 = False +else: + IS_PY2 = True logger = logger.getChild('utils') @@ -159,19 +162,20 @@ class UnicodeWriter: self.encoder = getincrementalencoder(encoding)() def writerow(self, row): - unicode_row = [] - for col in row: - if type(col) == str or type(col) == unicode: - unicode_row.append(col.encode('utf-8').strip()) - else: - unicode_row.append(col) - self.writer.writerow([x.decode('utf-8') if hasattr(x, 'decode') else x for x in unicode_row]) + if IS_PY2: + row = [s.encode("utf-8") if hasattr(s, 'encode') else s for s in row] + self.writer.writerow(row) # Fetch UTF-8 output from the queue ... - data = self.queue.getvalue().strip('\x00') + data = self.queue.getvalue() + if IS_PY2: + data = data.decode("utf-8") # ... and reencode it into the target encoding data = self.encoder.encode(data) # write to the target stream - self.stream.write(data.decode('utf-8')) + if IS_PY2: + self.stream.write(data) + else: + self.stream.write(data.decode("utf-8")) # empty queue self.queue.truncate(0)