From 9c4c7c251e9ec59b8210fca522a9584bf41d9385 Mon Sep 17 00:00:00 2001 From: Sidharth KV Date: Fri, 10 May 2019 12:55:58 -0700 Subject: [PATCH] Add a safe decode function around f If f is already a str object, then the UnicodeReader fails. To get around that, I have added a _safe_decode function that does not decode if f already contains str objects. --- unicodecsv/py3.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/unicodecsv/py3.py b/unicodecsv/py3.py index 13a8bf7..42cecce 100644 --- a/unicodecsv/py3.py +++ b/unicodecsv/py3.py @@ -48,7 +48,13 @@ def __init__(self, f, dialect=None, encoding='utf-8', errors='strict', for kwd_name in kwds.keys()]): dialect = csv.excel - f = (bs.decode(encoding, errors=errors) for bs in f) + def _safe_decode(bs): + if not isinstance(bs, str): + return bs.decode(encoding, errors=errors) + else: + return bs + + f = (_safe_decode(bs) for bs in f) self.reader = csv.reader(f, dialect, **kwds) def __next__(self):