summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Waygood <Alex.Waygood@Gmail.com>2022-12-22 21:57:18 (GMT)
committerGitHub <noreply@github.com>2022-12-22 21:57:18 (GMT)
commit9cdb6429971cd8b874ceaeeb04ae2ecdbba42bdb (patch)
tree255e47669a26bafdeea2dad4d38879e8ac12c191
parent09edde95f4841d5dffa584b1c963eb7ceab3f16a (diff)
downloadcpython-9cdb6429971cd8b874ceaeeb04ae2ecdbba42bdb.zip
cpython-9cdb6429971cd8b874ceaeeb04ae2ecdbba42bdb.tar.gz
cpython-9cdb6429971cd8b874ceaeeb04ae2ecdbba42bdb.tar.bz2
gh-85432: Harmonise parameter names between C and pure-Python implementations of `datetime.time.strftime`, `datetime.datetime.fromtimestamp` (#99993)
-rw-r--r--Lib/datetime.py9
-rw-r--r--Lib/test/datetimetester.py9
-rw-r--r--Misc/NEWS.d/next/Library/2022-12-04-16-12-04.gh-issue-85432.l_ehmI.rst5
3 files changed, 18 insertions, 5 deletions
diff --git a/Lib/datetime.py b/Lib/datetime.py
index 1b0c5cb..68746de 100644
--- a/Lib/datetime.py
+++ b/Lib/datetime.py
@@ -1553,8 +1553,7 @@ class time:
except Exception:
raise ValueError(f'Invalid isoformat string: {time_string!r}')
-
- def strftime(self, fmt):
+ def strftime(self, format):
"""Format using strftime(). The date part of the timestamp passed
to underlying strftime should not be used.
"""
@@ -1563,7 +1562,7 @@ class time:
timetuple = (1900, 1, 1,
self._hour, self._minute, self._second,
0, 1, -1)
- return _wrap_strftime(self, fmt, timetuple)
+ return _wrap_strftime(self, format, timetuple)
def __format__(self, fmt):
if not isinstance(fmt, str):
@@ -1787,14 +1786,14 @@ class datetime(date):
return result
@classmethod
- def fromtimestamp(cls, t, tz=None):
+ def fromtimestamp(cls, timestamp, tz=None):
"""Construct a datetime from a POSIX timestamp (like time.time()).
A timezone info object may be passed in as well.
"""
_check_tzinfo_arg(tz)
- return cls._fromtimestamp(t, tz is not None, tz)
+ return cls._fromtimestamp(timestamp, tz is not None, tz)
@classmethod
def utcfromtimestamp(cls, t):
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index 121d973..6a1df17 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -2426,6 +2426,12 @@ class TestDateTime(TestDate):
got = self.theclass.fromtimestamp(ts)
self.verify_field_equality(expected, got)
+ def test_fromtimestamp_keyword_arg(self):
+ import time
+
+ # gh-85432: The parameter was named "t" in the pure-Python impl.
+ self.theclass.fromtimestamp(timestamp=time.time())
+
def test_utcfromtimestamp(self):
import time
@@ -3528,6 +3534,9 @@ class TestTime(HarmlessMixedComparison, unittest.TestCase):
except UnicodeEncodeError:
pass
+ # gh-85432: The parameter was named "fmt" in the pure-Python impl.
+ t.strftime(format="%f")
+
def test_format(self):
t = self.theclass(1, 2, 3, 4)
self.assertEqual(t.__format__(''), str(t))
diff --git a/Misc/NEWS.d/next/Library/2022-12-04-16-12-04.gh-issue-85432.l_ehmI.rst b/Misc/NEWS.d/next/Library/2022-12-04-16-12-04.gh-issue-85432.l_ehmI.rst
new file mode 100644
index 0000000..68f5d7c
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-12-04-16-12-04.gh-issue-85432.l_ehmI.rst
@@ -0,0 +1,5 @@
+Rename the *fmt* parameter of the pure-Python implementation of
+:meth:`datetime.time.strftime` to *format*. Rename the *t* parameter of
+:meth:`datetime.datetime.fromtimestamp` to *timestamp*. These changes mean
+the parameter names in the pure-Python implementation now match the
+parameter names in the C implementation. Patch by Alex Waygood.