[3.6] bpo-33812: Corrected astimezone for naive datetimes. (GH-7578) by miss-islington · Pull Request #7601 · python/cpython (original) (raw)

A datetime object d is aware if d.tzinfo is not None and
d.tzinfo.utcoffset(d) does not return None. If d.tzinfo is None,
or if d.tzinfo is not None but d.tzinfo.utcoffset(d) returns None,
d is naive.

This commit ensures that instances with non-None d.tzinfo, but
d.tzinfo.utcoffset(d) returning None are treated as naive.

In addition, C acceleration code will raise TypeError if
d.tzinfo.utcoffset(d) returns an object with the type other than
timedelta.

Assume that the term "naive" is defined elsewhere and remove the
not entirely correct clarification. Thanks, Tim.
(cherry picked from commit 877b232)

Co-authored-by: Alexander Belopolsky abalkin@users.noreply.github.com

https://bugs.python.org/issue33812