diff --git a/ipykernel/jsonutil.py b/ipykernel/jsonutil.py index a60032d30..41f63ac5b 100644 --- a/ipykernel/jsonutil.py +++ b/ipykernel/jsonutil.py @@ -8,7 +8,7 @@ import re import types from binascii import b2a_base64 -from datetime import datetime +from datetime import date, datetime from jupyter_client._version import version_info as jupyter_client_version @@ -155,7 +155,7 @@ def json_clean(obj): # pragma: no cover for k, v in obj.items(): out[str(k)] = json_clean(v) return out - if isinstance(obj, datetime): + if isinstance(obj, datetime) or isinstance(obj, date): return obj.strftime(ISO8601) # we don't understand it, it's probably an unserializable object diff --git a/ipykernel/tests/test_jsonutil.py b/ipykernel/tests/test_jsonutil.py index 8fdb35495..0189bc83b 100644 --- a/ipykernel/tests/test_jsonutil.py +++ b/ipykernel/tests/test_jsonutil.py @@ -6,7 +6,7 @@ import json import numbers from binascii import a2b_base64 -from datetime import datetime +from datetime import date, datetime import pytest from jupyter_client._version import version_info as jupyter_client_version @@ -54,6 +54,7 @@ def test(): ((x for x in range(3)), [0, 1, 2]), (iter([1, 2]), [1, 2]), (datetime(1991, 7, 3, 12, 00), "1991-07-03T12:00:00.000000"), + (date(1991, 7, 3), "1991-07-03T00:00:00.000000"), (MyFloat(), 3.14), (MyInt(), 389), ]