From f03d2eddd8d861a7cf43a0ef3d72f67aae571dd4 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Tue, 25 Jun 2019 21:18:35 -0700 Subject: [PATCH] Handle datetime.time correctly --- sqlite_utils/db.py | 2 ++ tests/test_create.py | 1 + 2 files changed, 3 insertions(+) diff --git a/sqlite_utils/db.py b/sqlite_utils/db.py index 1b58f94..414ec97 100644 --- a/sqlite_utils/db.py +++ b/sqlite_utils/db.py @@ -798,6 +798,8 @@ def chunks(sequence, size): def jsonify_if_needed(value): if isinstance(value, (dict, list, tuple)): return json.dumps(value) + elif isinstance(value, (datetime.time, datetime.date, datetime.datetime)): + return value.isoformat() else: return value diff --git a/tests/test_create.py b/tests/test_create.py index a275a7f..04b1fbf 100644 --- a/tests/test_create.py +++ b/tests/test_create.py @@ -111,6 +111,7 @@ def test_create_table_with_not_null(fresh_db): {"create": "Reserved word", "table": "Another"}, [{"name": "create", "type": "TEXT"}, {"name": "table", "type": "TEXT"}], ), + ({"day": datetime.time(11, 0)}, [{"name": "day", "type": "TEXT"}]), ), ) def test_create_table_from_example(fresh_db, example, expected_columns):