summaryrefslogtreecommitdiff
path: root/tablib/formats/_csv.py
diff options
context:
space:
mode:
Diffstat (limited to 'tablib/formats/_csv.py')
-rw-r--r--tablib/formats/_csv.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tablib/formats/_csv.py b/tablib/formats/_csv.py
new file mode 100644
index 0000000..8b19da7
--- /dev/null
+++ b/tablib/formats/_csv.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+
+""" Tablib - CSV Support.
+"""
+
+import cStringIO
+import csv
+import os
+
+import simplejson as json
+
+import tablib
+
+
+title = 'csv'
+extentions = ('csv',)
+
+
+
+def export_set(dataset):
+ """Returns CSV representation of Dataset."""
+ stream = cStringIO.StringIO()
+ _csv = csv.writer(stream)
+
+ for row in dataset._package(dicts=False):
+ _csv.writerow(row)
+
+ return stream.getvalue()
+
+
+def import_set(dset, in_stream, headers=True):
+ """Returns dataset from CSV stream."""
+
+ dset.wipe()
+
+ rows = csv.reader(in_stream.split())
+ for i, row in enumerate(rows):
+
+ if (i == 0) and (headers):
+ dset.headers = row
+ else:
+ dset.append(row)