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/tablib/formats/_yaml.py b/tablib/formats/_yaml.py index e2ccf46..0052b0f 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): diff --git a/test_tablib.py b/test_tablib.py index 526370a..70e6051 100755 --- a/test_tablib.py +++ b/test_tablib.py @@ -493,10 +493,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)