gh-132642: document how to render human-readable `timedelta` objects (GH-133825)
(cherry picked from commit
efcc42ba70fb09333a2be16401da731662e2984b)
Co-authored-by: Kentaro Jay Takahashi <64148935+KentaroJay@users.noreply.github.com>
>>> (d.days, d.seconds, d.microseconds)
(-1, 86399, 999999)
+ Since the string representation of :class:`!timedelta` objects can be confusing,
+ use the following recipe to produce a more readable format:
+
+ .. code-block:: pycon
+
+ >>> def pretty_timedelta(td):
+ ... if td.days >= 0:
+ ... return str(td)
+ ... return f'-({-td!s})'
+ ...
+ >>> d = timedelta(hours=-1)
+ >>> str(d) # not human-friendly
+ '-1 day, 23:00:00'
+ >>> pretty_timedelta(d)
+ '-(1:00:00)'
+
Class attributes:
microseconds=999999)),
"999999999 days, 23:59:59.999999")
+ # test the Doc/library/datetime.rst recipe
+ eq(f'-({-td(hours=-1)!s})', "-(1:00:00)")
+
def test_repr(self):
name = 'datetime.' + self.theclass.__name__
self.assertEqual(repr(self.theclass(1)),