File: Drop-pytz.patch

package info (click to toggle)
python-wsme 0.12.1-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 636 kB
  • sloc: python: 6,069; makefile: 27; javascript: 8
file content (102 lines) | stat: -rw-r--r-- 3,679 bytes parent folder | download
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):