Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 21 additions & 8 deletions dataikuapi/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import itertools

if sys.version_info > (3,0):
import codecs

dku_basestring_type = str
dku_zip_longest = itertools.zip_longest
else:
Expand All @@ -31,7 +33,7 @@ def next(self):

def __iter__(self):
return self

def none_if_throws(f):
def aux(*args, **kargs):
try:
Expand All @@ -51,7 +53,10 @@ def __init__(self, schema, csv_stream):

def iter_rows(self):
def decode(x):
return unicode(x, "utf8")
if sys.version_info > (3,0):
return x
else:
return unicode(x, "utf8")

def parse_iso_date(s):
if s == "":
Expand Down Expand Up @@ -79,9 +84,17 @@ def str_to_bool(s):
CASTERS.get(col["type"], decode) for col in schema
]
with closing(self.csv_stream) as r:
for uncasted_tuple in csv.reader(r.raw,
delimiter='\t',
quotechar='"',
doublequote=True):
yield [none_if_throws(caster)(val)
for (caster, val) in dku_zip_longest(casters, uncasted_tuple)]
if sys.version_info > (3,0):
for uncasted_tuple in csv.reader(codecs.iterdecode(r.raw, 'utf-8'),
delimiter='\t',
quotechar='"',
doublequote=True):
yield [none_if_throws(caster)(val)
for (caster, val) in dku_zip_longest(casters, uncasted_tuple)]
else:
for uncasted_tuple in csv.reader(r.raw,
delimiter='\t',
quotechar='"',
doublequote=True):
yield [none_if_throws(caster)(val)
for (caster, val) in dku_zip_longest(casters, uncasted_tuple)]