From 410dbb8f13ad2ea743ceefbb1916f8bf1d1812f6 Mon Sep 17 00:00:00 2001 From: "Leo C. Stein" Date: Wed, 25 Feb 2026 12:51:59 -0600 Subject: [PATCH] Encode the pandas NaT (not-a-time) singleton type (fixes #43) The pandas package has a singleton pandas.NaT of type pandas.api.typing.NaTType to represent an entry in a datetime field which is missing/broken/null. A reasonable encoding is pandas.NaT -> Indeterminate --- wolframclient/serializers/encoders/pandas.py | 5 +++++ wolframclient/utils/api.py | 1 + 2 files changed, 6 insertions(+) diff --git a/wolframclient/serializers/encoders/pandas.py b/wolframclient/serializers/encoders/pandas.py index a3874334..f33d0af9 100644 --- a/wolframclient/serializers/encoders/pandas.py +++ b/wolframclient/serializers/encoders/pandas.py @@ -183,3 +183,8 @@ def encoder_panda_dataframe(serializer, o): ", ".join(PANDAS_PROPERTIES["pandas_dataframe_head"]), head ) ) + + +@encoder.dispatch(pandas.NaT) +def encode_pandas_not_a_time(serializer, o): + return serializer.serialize_symbol(b"Indeterminate") diff --git a/wolframclient/utils/api.py b/wolframclient/utils/api.py index 19855896..8513f641 100644 --- a/wolframclient/utils/api.py +++ b/wolframclient/utils/api.py @@ -168,6 +168,7 @@ SparseSeries="pandas.SparseSeries", SparseArray="pandas.SparseArray", bdate_range="pandas.bdate_range", + NaT="pandas.api.typing.NaTType", ) aiohttp = API(