1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
Description: Drop pytz
It can be replaced by the built-in datetime module.
Author: Takashi Kajinami <kajinamit@oss.nttdata.com>
Date: Fri, 27 Sep 2024 23:19:44 +0900
Change-Id: Ib33163496fb8068b9578c4cb231bf6d070cc78b9
Origin: upstream, https://review.opendev.org/c/x/wsme/+/930708
Last-Update: 2025-11-26
diff --git a/requirements.txt b/requirements.txt
index 32aaeba..7c90092 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,5 @@
WebOb>=1.8.0
simplegeneric
-pytz
netaddr>=0.7.12
# TODO: Drop this when Python 3.10 is our minimum supported version
importlib_metadata>=4.4 # Apache-2.0
diff --git a/wsme/tests/test_utils.py b/wsme/tests/test_utils.py
index f9464c8..66d06c8 100644
--- a/wsme/tests/test_utils.py
+++ b/wsme/tests/test_utils.py
@@ -1,6 +1,5 @@
import datetime
import unittest
-import pytz
from wsme import utils
@@ -27,11 +26,14 @@
good_times = [
('12:03:54', datetime.time(12, 3, 54)),
('23:59:59.000004', datetime.time(23, 59, 59, 4)),
- ('01:02:03+00:00', datetime.time(1, 2, 3, 0, pytz.UTC)),
- ('01:02:03+23:59', datetime.time(1, 2, 3, 0,
- pytz.FixedOffset(1439))),
- ('01:02:03-23:59', datetime.time(1, 2, 3, 0,
- pytz.FixedOffset(-1439))),
+ ('01:02:03+00:00', datetime.time(
+ 1, 2, 3, 0, datetime.timezone.utc)),
+ ('01:02:03+23:59', datetime.time(
+ 1, 2, 3, 0,
+ datetime.timezone(datetime.timedelta(minutes=1439)))),
+ ('01:02:03-23:59', datetime.time(
+ 1, 2, 3, 0,
+ datetime.timezone(datetime.timedelta(minutes=-1439)))),
]
ill_formatted_times = [
'24-12-2004'
@@ -54,13 +56,16 @@
('2012-05-14T23:59:59.000004',
datetime.datetime(2012, 5, 14, 23, 59, 59, 4)),
('1856-07-10T01:02:03+00:00',
- datetime.datetime(1856, 7, 10, 1, 2, 3, 0, pytz.UTC)),
+ datetime.datetime(1856, 7, 10, 1, 2, 3, 0,
+ datetime.timezone.utc)),
('1856-07-10T01:02:03+23:59',
- datetime.datetime(1856, 7, 10, 1, 2, 3, 0,
- pytz.FixedOffset(1439))),
+ datetime.datetime(
+ 1856, 7, 10, 1, 2, 3, 0,
+ datetime.timezone(datetime.timedelta(minutes=1439)))),
('1856-07-10T01:02:03-23:59',
- datetime.datetime(1856, 7, 10, 1, 2, 3, 0,
- pytz.FixedOffset(-1439))),
+ datetime.datetime(
+ 1856, 7, 10, 1, 2, 3, 0,
+ datetime.timezone(datetime.timedelta(minutes=-1439)))),
]
ill_formatted_datetimes = [
'24-32-2004',
diff --git a/wsme/utils.py b/wsme/utils.py
index a8e2c8b..6eb6f54 100644
--- a/wsme/utils.py
+++ b/wsme/utils.py
@@ -2,7 +2,6 @@
import datetime
import decimal
from http import client as http_client
-import pytz
import re
try:
@@ -91,14 +90,15 @@
def _parse_tzparts(parts):
if 'tz_z' in parts and parts['tz_z'] == 'Z':
- return pytz.UTC
+ return datetime.timezone.utc
if 'tz_min' not in parts or not parts['tz_min']:
return None
tz_minute_offset = (int(parts['tz_hour']) * 60 + int(parts['tz_min']))
tz_multiplier = -1 if parts['tz_sign'] == '-' else 1
+ minutes = tz_multiplier * tz_minute_offset
- return pytz.FixedOffset(tz_multiplier * tz_minute_offset)
+ return datetime.timezone(datetime.timedelta(minutes=minutes))
def is_valid_code(code_value):
|