mirror of
https://github.com/kennethreitz/tablib.git
synced 2026-06-05 23:10:17 +00:00
+16
-5
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user