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:
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)