From 1b035f97744e38f2bfd7654df91dfd464ec92b4c Mon Sep 17 00:00:00 2001 From: Robert Lechte Date: Wed, 28 Aug 2013 01:58:30 +1200 Subject: [PATCH 1/2] Changed yaml dumping to use safe_dump, for consistency with loading. --- tablib/formats/_yaml.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tablib/formats/_yaml.py b/tablib/formats/_yaml.py index 91a3baa..5c1d2dc 100644 --- a/tablib/formats/_yaml.py +++ b/tablib/formats/_yaml.py @@ -26,12 +26,12 @@ extensions = ('yaml', 'yml') def export_set(dataset): """Returns YAML representation of Dataset.""" - return yaml.dump(dataset._package(ordered=False)) + return yaml.safe_dump(dataset._package(ordered=False)) def export_book(databook): """Returns YAML representation of Databook.""" - return yaml.dump(databook._package()) + return yaml.safe_dump(databook._package(ordered=False)) def import_set(dset, in_stream): From 63f6cea1326c61dd8a7ac8d9ec38bf95e3e1accb Mon Sep 17 00:00:00 2001 From: Robert Lechte Date: Wed, 28 Aug 2013 02:07:06 +1200 Subject: [PATCH 2/2] Fixed tsv auto format detection. --- tablib/formats/_csv.py | 2 +- test_tablib.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tablib/formats/_csv.py b/tablib/formats/_csv.py index 3cda71b..c5d3202 100644 --- a/tablib/formats/_csv.py +++ b/tablib/formats/_csv.py @@ -49,7 +49,7 @@ def import_set(dset, in_stream, headers=True): def detect(stream): """Returns True if given stream is valid CSV.""" try: - csv.Sniffer().sniff(stream) + csv.Sniffer().sniff(stream, delimiters=',') return True except (csv.Error, TypeError): return False diff --git a/test_tablib.py b/test_tablib.py index b9464b4..98e83f4 100755 --- a/test_tablib.py +++ b/test_tablib.py @@ -494,10 +494,12 @@ class TablibTestCase(unittest.TestCase): _yaml = '- {age: 90, first_name: John, last_name: Adams}' _json = '[{"last_name": "Adams","age": 90,"first_name": "John"}]' _csv = '1,2,3\n4,5,6\n7,8,9\n' + _tsv = '1\t2\t3\n4\t5\t6\n7\t8\t9\n' _bunk = '¡¡¡¡¡¡---///\n\n\n¡¡£™∞¢£§∞§¶•¶ª∞¶•ªº••ª–º§•†•§º¶•†¥ª–º•§ƒø¥¨©πƒø†ˆ¥ç©¨√øˆ¥≈†ƒ¥ç©ø¨çˆ¥ƒçø¶' self.assertEqual(tablib.detect(_yaml)[0], tablib.formats.yaml) self.assertEqual(tablib.detect(_csv)[0], tablib.formats.csv) + self.assertEqual(tablib.detect(_tsv)[0], tablib.formats.tsv) self.assertEqual(tablib.detect(_json)[0], tablib.formats.json) self.assertEqual(tablib.detect(_bunk)[0], None)