diff --git a/src/aleph/sdk/client/authenticated_http.py b/src/aleph/sdk/client/authenticated_http.py index 3635919d..da7f80f7 100644 --- a/src/aleph/sdk/client/authenticated_http.py +++ b/src/aleph/sdk/client/authenticated_http.py @@ -1,3 +1,4 @@ +import datetime import hashlib import json import logging @@ -50,6 +51,16 @@ magic = None # type:ignore +def extended_json_encoder(obj: Any) -> str: + if ( + isinstance(obj, datetime.datetime) + or isinstance(obj, datetime.date) + or isinstance(obj, datetime.time) + ): + return obj.isoformat() # or any other format you prefer + return pydantic_encoder(obj) + + class AuthenticatedAlephHttpClient(AlephHttpClient, AuthenticatedAlephClient): account: Account @@ -604,7 +615,7 @@ async def _prepare_aleph_message( # Use the Pydantic encoder to serialize types like UUID, datetimes, etc. item_content: str = json.dumps( - content, separators=(",", ":"), default=pydantic_encoder + content, separators=(",", ":"), default=extended_json_encoder ) if allow_inlining and (len(item_content) < settings.MAX_INLINE_SIZE):