From 8b2bf92f223c9036fee84e127f0eaf9573a9c2ee Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Mon, 4 Dec 2023 13:25:24 -0500 Subject: [PATCH] Update `TZDateTime` type decorator example to align with python docs This change updates the `TZDateTime` type decorator to use the timezone awareness checks described in the Python documentation located here: https://docs.python.org/3/library/datetime.html#determining-if-an-object-is-aware-or-naive The specific lines state: > A [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) object `d` is aware if both of the following hold: > > `d.tzinfo is not None` > > `d.tzinfo.utcoffset(d)` does not return `None` > > Otherwise, `d` is naive. Closes: #10719 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/10719 Pull-request-sha: bb30cb3cfe57f326addec21a6cae5f81184c2e74 Change-Id: I1ac51c1ec2820c3f224a79b7af5057fe2b3a55e2 (cherry picked from commit e1477c152c5a1e097399300883fcd6b23a6dfabf) --- doc/build/core/custom_types.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/build/core/custom_types.rst b/doc/build/core/custom_types.rst index 6ae9e066ac..b9d8953b4e 100644 --- a/doc/build/core/custom_types.rst +++ b/doc/build/core/custom_types.rst @@ -156,7 +156,7 @@ denormalize:: def process_bind_param(self, value, dialect): if value is not None: - if not value.tzinfo: + if not value.tzinfo or value.tzinfo.utcoffset(value) is None: raise TypeError("tzinfo is required") value = value.astimezone(datetime.timezone.utc).replace(tzinfo=None) return value -- 2.47.2