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)