replace "datetime.utcfromtimestamp" with custom helper to avoid deprecation warnings when using Python 3.12

This commit is contained in:
Felix Schwarz 2023-07-06 21:26:40 +02:00
parent e695683095
commit ae0b3d2fff
2 changed files with 14 additions and 11 deletions

View File

@ -6,7 +6,7 @@ import re
import sys
import textwrap
from collections import OrderedDict
from datetime import datetime
from datetime import datetime, timezone
import time
from setuptools import Command
@ -470,10 +470,8 @@ class build_man(Command):
self.write_heading(write, description, double_sided=True)
# man page metadata
write(":Author: The Borg Collective")
write(
":Date:",
datetime.utcfromtimestamp(int(os.environ.get("SOURCE_DATE_EPOCH", time.time()))).date().isoformat(),
)
source_date_epoch = int(os.environ.get("SOURCE_DATE_EPOCH", time.time()))
write(":Date:", datetime.fromtimestamp(source_date_epoch, timezone.utc).date().isoformat())
write(":Manual section: 1")
write(":Manual group: borg backup tool")
write()

View File

@ -1202,6 +1202,11 @@ def test_swidth_slice_mixed_characters():
assert swidth_slice(string, 6) == "나윤a"
def utcfromtimestamp(timestamp):
"""Returns a naive datetime instance representing the timestamp in the UTC timezone"""
return datetime.fromtimestamp(timestamp, timezone.utc).replace(tzinfo=None)
def test_safe_timestamps():
if SUPPORT_32BIT_PLATFORMS:
# ns fit into int64
@ -1213,9 +1218,9 @@ def test_safe_timestamps():
# datetime won't fall over its y10k problem
beyond_y10k = 2**100
with pytest.raises(OverflowError):
datetime.utcfromtimestamp(beyond_y10k)
assert datetime.utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2038, 1, 1)
assert datetime.utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2038, 1, 1)
utcfromtimestamp(beyond_y10k)
assert utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2038, 1, 1)
assert utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2038, 1, 1)
else:
# ns fit into int64
assert safe_ns(2**64) <= 2**63 - 1
@ -1226,9 +1231,9 @@ def test_safe_timestamps():
# datetime won't fall over its y10k problem
beyond_y10k = 2**100
with pytest.raises(OverflowError):
datetime.utcfromtimestamp(beyond_y10k)
assert datetime.utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2262, 1, 1)
assert datetime.utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2262, 1, 1)
utcfromtimestamp(beyond_y10k)
assert utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2262, 1, 1)
assert utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2262, 1, 1)
class TestPopenWithErrorHandling: