Mercurial > forks > mercurial
changeset 53190:8649f2139e03
pycompat: introduce a pycompat entry for utcnow
See inline comment for details.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 18 Apr 2025 22:03:07 +0200 |
parents | e667df349e5a |
children | b71ba9c6b5f8 |
files | mercurial/pycompat.py |
diffstat | 1 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/pycompat.py Fri Apr 18 20:38:30 2025 +0200 +++ b/mercurial/pycompat.py Fri Apr 18 22:03:07 2025 +0200 @@ -13,6 +13,7 @@ import builtins import codecs # noqa: F401 (ignore imported but not used) import concurrent.futures as futures # noqa: F401 (ignore imported but not used) +import datetime import getopt import http.client as httplib # noqa: F401 (ignore imported but not used) import http.cookiejar as cookielib # noqa: F401 (ignore imported but not used) @@ -528,3 +529,15 @@ return tempfile.NamedTemporaryFile( mode, bufsize, suffix=suffix, prefix=prefix, dir=dir, delete=delete ) + + +# datetime.datetime.utcnow is deprecated in Python3.12, but the replacement is +# introduced in Python3.11 +try: + datetime.UTC # Python >= 3.11 +except AttributeError: # Python <= 3.10 + utcnow = datetime.datetime.utcnow # pytype: disable=attribute-error +else: + + def utcnow(): + return datetime.datetime.now(datetime.UTC)