From: Kevin Kirsche Date: Mon, 4 Dec 2023 18:25:24 +0000 (-0500) Subject: Update `TZDateTime` type decorator example to align with python docs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1477c152c5a1e097399300883fcd6b23a6dfabf;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git 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 --- 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