# HG changeset patch # User Matt Harbison # Date 2024-07-11 18:46:00 # Node ID 20e2a20674dc9a417f0d922b01986c7aa0903ac6 # Parent 5f37c36f36b904f3cc9eb8bda48d5868faa466bd 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. diff --git a/hgext/convert/common.py b/hgext/convert/common.py --- a/hgext/convert/common.py +++ b/hgext/convert/common.py @@ -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 @@ from mercurial import ( pycompat, util, ) -from mercurial.utils import procutil +from mercurial.utils import ( + dateutil, + procutil, +) propertycache = util.propertycache @@ -565,12 +567,5 @@ class mapfile(dict): 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)