convert: drop a duplicate implementation of `dateutil.makedate()`
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 11 Jul 2024 14:46:00 -0400
changeset 51684 20e2a20674dc
parent 51683 5f37c36f36b9
child 51685 0eb515c7bec8
convert: drop a duplicate implementation of `dateutil.makedate()` I noticed this because the signature generated by pytype recently changed to be less specific. When the method was introduced back in 337d728e644f, `util.makedate()` didn't take an optional timestamp arg. But now it does, and the methods are the same (except the `dateutil` version validates that the timestamp isn't a negative value). I left the old method in place in case anyone has custom convert code that monkey patches it.
hgext/convert/common.py
--- a/hgext/convert/common.py	Mon Jul 08 15:48:34 2024 +0200
+++ b/hgext/convert/common.py	Thu Jul 11 14:46:00 2024 -0400
@@ -6,7 +6,6 @@
 # GNU General Public License version 2 or any later version.
 
 import base64
-import datetime
 import os
 import pickle
 import re
@@ -22,7 +21,10 @@
     pycompat,
     util,
 )
-from mercurial.utils import procutil
+from mercurial.utils import (
+    dateutil,
+    procutil,
+)
 
 propertycache = util.propertycache
 
@@ -565,12 +567,5 @@
             self.fp = None
 
 
-def makedatetimestamp(t):
-    """Like dateutil.makedate() but for time t instead of current time"""
-    tz = round(
-        t
-        - datetime.datetime.fromtimestamp(t)
-        .replace(tzinfo=datetime.timezone.utc)
-        .timestamp()
-    )
-    return t, tz
+def makedatetimestamp(t: float) -> dateutil.hgdate:
+    return dateutil.makedate(t)