diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2011-05-22 19:52:24 -0400 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2011-05-22 19:52:24 -0400 |
| commit | 5ba56c2bb329c000b1565f7291df860dbb0dcb54 (patch) | |
| tree | 5379bdfe71ecc1fb22b6b9e9f4ed4f81e67c2628 /tablib | |
| parent | 36fbdda492695e8f7c09d88aa2cde91f7dbaffc6 (diff) | |
| download | tablib-5ba56c2bb329c000b1565f7291df860dbb0dcb54.tar.gz | |
Turn off OrderedDict for yaml.
Fixes #12.
Diffstat (limited to 'tablib')
| -rw-r--r-- | tablib/core.py | 21 | ||||
| -rw-r--r-- | tablib/formats/_yaml.py | 7 |
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: |
