summaryrefslogtreecommitdiff
path: root/tablib
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.com>2011-05-22 19:52:24 -0400
committerKenneth Reitz <me@kennethreitz.com>2011-05-22 19:52:24 -0400
commit5ba56c2bb329c000b1565f7291df860dbb0dcb54 (patch)
tree5379bdfe71ecc1fb22b6b9e9f4ed4f81e67c2628 /tablib
parent36fbdda492695e8f7c09d88aa2cde91f7dbaffc6 (diff)
downloadtablib-5ba56c2bb329c000b1565f7291df860dbb0dcb54.tar.gz
Turn off OrderedDict for yaml.
Fixes #12.
Diffstat (limited to 'tablib')
-rw-r--r--tablib/core.py21
-rw-r--r--tablib/formats/_yaml.py7
2 files changed, 20 insertions, 8 deletions
diff --git a/tablib/core.py b/tablib/core.py
index 80857ca..c03956f 100644
--- a/tablib/core.py
+++ b/tablib/core.py
@@ -235,11 +235,16 @@ class Dataset(object):
return False
- def _package(self, dicts=True):
+ def _package(self, dicts=True, ordered=True):
"""Packages Dataset into lists of dictionaries for transmission."""
_data = list(self._data)
+ if ordered:
+ dict_pack = OrderedDict
+ else:
+ dict_pack = dict
+
# Execute formatters
if self._formatters:
for row_i, row in enumerate(_data):
@@ -256,7 +261,7 @@ class Dataset(object):
if self.headers:
if dicts:
- data = [OrderedDict(list(zip(self.headers, data_row))) for data_row in _data]
+ data = [dict_pack(list(zip(self.headers, data_row))) for data_row in _data]
else:
data = [list(self.headers)] + list(_data)
else:
@@ -786,13 +791,19 @@ class Databook(object):
raise InvalidDatasetType
- def _package(self):
+ def _package(self, ordered=True):
"""Packages :class:`Databook` for delivery."""
collector = []
+
+ if ordered:
+ dict_pack = OrderedDict
+ else:
+ dict_pack = dict
+
for dset in self._datasets:
- collector.append(OrderedDict(
+ collector.append(dict_pack(
title = dset.title,
- data = dset.dict
+ data = dset._package(ordered=ordered)
))
return collector
diff --git a/tablib/formats/_yaml.py b/tablib/formats/_yaml.py
index 66800a7..974228b 100644
--- a/tablib/formats/_yaml.py
+++ b/tablib/formats/_yaml.py
@@ -12,7 +12,7 @@ except ImportError:
import tablib.packages.yaml3 as yaml
else:
import tablib.packages.yaml as yaml
-
+
import tablib
@@ -25,7 +25,8 @@ extentions = ('yaml', 'yml')
def export_set(dataset):
"""Returns YAML representation of Dataset."""
- return yaml.dump(dataset.dict)
+
+ return yaml.dump(dataset._package(ordered=False))
def export_book(databook):
@@ -50,7 +51,7 @@ def import_book(dbook, in_stream):
data.title = sheet['title']
data.dict = sheet['data']
dbook.add_sheet(data)
-
+
def detect(stream):
"""Returns True if given stream is valid YAML."""
try: