From b6054acd2b599d059e13d2dce77de042385c3827 Mon Sep 17 00:00:00 2001 From: Ravi Kiran Adusumalli Date: Tue, 20 May 2025 12:00:27 -0500 Subject: [PATCH 1/2] Added encoding for datetime date type objects --- redis/_parsers/encoders.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/redis/_parsers/encoders.py b/redis/_parsers/encoders.py index 6fdf0ad882..b3a71fbb08 100644 --- a/redis/_parsers/encoders.py +++ b/redis/_parsers/encoders.py @@ -1,3 +1,5 @@ +from datetime import date + from ..exceptions import DataError @@ -30,8 +32,11 @@ def encode(self, value): f"Invalid input of type: '{typename}'. " f"Convert to a bytes, string, int or float first." ) + elif isinstance(value, date): + value = str(value).encode(self.encoding, self.encoding_errors) if isinstance(value, str): value = value.encode(self.encoding, self.encoding_errors) + return value def decode(self, value, force=False): From 2a58ccdf79b41021b8587f6b6b4e52de943a7c3d Mon Sep 17 00:00:00 2001 From: Ravi Kiran Adusumalli Date: Wed, 21 May 2025 17:14:14 -0500 Subject: [PATCH 2/2] Ravi - feature/DOPCTAR-12927 - move date encoding before str encoding --- redis/_parsers/encoders.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redis/_parsers/encoders.py b/redis/_parsers/encoders.py index b3a71fbb08..261bfeabb5 100644 --- a/redis/_parsers/encoders.py +++ b/redis/_parsers/encoders.py @@ -25,6 +25,8 @@ def encode(self, value): ) elif isinstance(value, (int, float)): value = repr(value).encode() + elif isinstance(value, date): + value = str(value).encode(self.encoding, self.encoding_errors) elif not isinstance(value, str): # a value we don't know how to deal with. throw an error typename = type(value).__name__ @@ -32,8 +34,6 @@ def encode(self, value): f"Invalid input of type: '{typename}'. " f"Convert to a bytes, string, int or float first." ) - elif isinstance(value, date): - value = str(value).encode(self.encoding, self.encoding_errors) if isinstance(value, str): value = value.encode(self.encoding, self.encoding_errors)