replace pytz with datetime.timezone and zoneinfo

This commit is contained in:
Miroslav Šedivý 2022-11-30 20:21:04 +01:00
parent 53cb42117b
commit 5262d58a0b
3 changed files with 7 additions and 9 deletions

View File

@ -11,7 +11,6 @@ import string
import datetime import datetime
import collections import collections
from contextlib import closing from contextlib import closing
import pytz
import requests import requests
from requests.models import urlencode from requests.models import urlencode
import dateutil import dateutil
@ -3928,11 +3927,11 @@ class Mastodon:
""" """
date_time_utc = None date_time_utc = None
if date_time.tzinfo is None: if date_time.tzinfo is None:
date_time_utc = date_time.replace(tzinfo=pytz.utc) date_time_utc = date_time.replace(tzinfo=datetime.timezone.utc)
else: else:
date_time_utc = date_time.astimezone(pytz.utc) date_time_utc = date_time.astimezone(datetime.timezone.utc)
epoch_utc = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=pytz.utc) epoch_utc = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=datetime.timezone.utc)
return (date_time_utc - epoch_utc).total_seconds() return (date_time_utc - epoch_utc).total_seconds()
@ -3967,7 +3966,7 @@ class Mastodon:
if v is not None: if v is not None:
try: try:
if isinstance(v, int): if isinstance(v, int):
json_object[k] = datetime.datetime.fromtimestamp(v, pytz.utc) json_object[k] = datetime.datetime.fromtimestamp(v, datetime.timezone.utc)
else: else:
json_object[k] = dateutil.parser.parse(v) json_object[k] = dateutil.parser.parse(v)
except: except:
@ -4023,7 +4022,7 @@ class Mastodon:
every time instead of randomly doing different things on some systems every time instead of randomly doing different things on some systems
and also it represents that time as the equivalent UTC time. and also it represents that time as the equivalent UTC time.
""" """
isotime = datetime_val.astimezone(pytz.utc).strftime("%Y-%m-%dT%H:%M:%S%z") isotime = datetime_val.astimezone(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S%z")
if isotime[-2] != ":": if isotime[-2] != ":":
isotime = isotime[:-2] + ":" + isotime[-2:] isotime = isotime[:-2] + ":" + isotime[-2:]
return isotime return isotime

View File

@ -33,7 +33,6 @@ setup(name='Mastodon.py',
'requests>=2.4.2', 'requests>=2.4.2',
'python-dateutil', 'python-dateutil',
'six', 'six',
'pytz',
'python-magic', 'python-magic',
'decorator>=4.0.0', 'decorator>=4.0.0',
] + blurhash_deps, ] + blurhash_deps,

View File

@ -1,7 +1,7 @@
import pytest import pytest
from mastodon.Mastodon import MastodonAPIError, MastodonNotFoundError from mastodon.Mastodon import MastodonAPIError, MastodonNotFoundError
import datetime import datetime
import pytz import zoneinfo
import vcr import vcr
import time import time
import pickle import pickle
@ -154,7 +154,7 @@ def test_status_pin_unpin(status, api):
@pytest.mark.vcr(match_on=['path']) @pytest.mark.vcr(match_on=['path'])
def test_scheduled_status(api): def test_scheduled_status(api):
base_time = datetime.datetime(4000, 1, 1, 12, 13, 14, 0, pytz.timezone("Etc/GMT+2")) base_time = datetime.datetime(4000, 1, 1, 12, 13, 14, 0, zoneinfo.ZoneInfo("Etc/GMT+2"))
the_future = base_time + datetime.timedelta(minutes=20) the_future = base_time + datetime.timedelta(minutes=20)
scheduled_toot = api.status_post("please ensure adequate headroom", scheduled_at=the_future) scheduled_toot = api.status_post("please ensure adequate headroom", scheduled_at=the_future)
assert scheduled_toot assert scheduled_toot