From a7455bcb428ebbab1b9e78ed1539695878cad63e Mon Sep 17 00:00:00 2001 From: GRcharles <115260549+GRcharles@users.noreply.github.com> Date: Wed, 14 Dec 2022 15:31:00 +0000 Subject: [PATCH] format dates as ISO8601 (#1057) * format dates as ISO8601 format dates as ISO8601 - currently works for datetimes, but not dates. Follow up to https://github.com/ipython/ipykernel/pull/18 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update test_jsonutil.py * Update jsonutil.py * Update test_jsonutil.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update test_jsonutil.py * fix date test Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- ipykernel/jsonutil.py | 4 ++-- ipykernel/tests/test_jsonutil.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) 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), ]